def retriveResponse(year=DEFAULT_YearDivide,is_training=True): """ Given the year dividing training and test sets, return the list of all movies and the SuccessMetric """ if is_training: comp_symbol = '<' else: comp_symbol = '>' statement1 = 'select title,released,ifnull(totalgross,0),'+\ 'ifnull(budget,0)'+\ ' from boxoffice where boxoffice.released'+\ ' %s \"%s\" order by released asc;' % (comp_symbol,year) results = mysqlfuncs.db_execute_and_fetch(statement1) title = mysqlfuncs.results_to_list(results,index=0) released = mysqlfuncs.results_to_list(results,index=1) releaseYears = [long(misc.getYear(x.strftime("%Y-%m-%d"))) for x in released] totalGross = num.array(mysqlfuncs.results_to_list(results,index=2),\ dtype=float) budget = num.array(mysqlfuncs.results_to_list(results,index=3),dtype=float) SuccessMetric = misc.returnSuccessMetric(totalGross,budget) return releaseYears,title,SuccessMetric,budget,totalGross
def MovieComparison(movieName): """ Retrive actual movie gross, the predicted gross and budget for a given movie. """ # setup query statement statement1 = 'select year,predicted,actual ' statement1 += 'from Property001 where (title = \"%s\");' % movieName results = mysqlfuncs.db_execute_and_fetch(statement1) yearUnformatted = mysqlfuncs.results_to_list(results,index=0) year = [long(misc.getYear(x.strftime('%Y-%m-%d'))) for x in yearUnformatted] predictedFactor = mysqlfuncs.results_to_list(results,index=1) actualFactor = mysqlfuncs.results_to_list(results,index=2) Budget, ActualGross, PredictedGross = 0,0,0 try: Budget = MovieBudget(movieName,year[0]) ActualGross = 10**(actualFactor[0]) * Budget PredictedGross = 10**(predictedFactor[0]) * Budget except: pass # convert to currency string format for output to page # ActualGross = '{:20,.0f}'.format(10**(actualFactor[0]) * budget) # PredictedGross = '{:20,.0f}'.format(10**(predictedFactor[0]) * budget) # BudgetString = '{:20,.0f}'.format(budget) return ActualGross, PredictedGross, Budget
def compileMovieData(movieName): """ Compile printable JSON-like dictionary to print movie meta-data to webpage. """ # setup statements to get info about Directors, Actors, Writers and Genre # for a given movie. statementRoot = 'select distinct(part) from movie_meta where ' statement1 = statementRoot+'(partType = \"Director\" and title = \"%s\");'\ % (movieName) statement2 = statementRoot+'(partType = \"Actors\" and title = \"%s\");'\ % (movieName) statement3 = statementRoot+'(partType = \"Writer\" and title = \"%s\");'\ % (movieName) statement4 = statementRoot+'(partType = \"Genre\" and title = \"%s\");'\ % (movieName) # get results for query for directors, actors, writers and genre results1 = mysqlfuncs.db_execute_and_fetch(statement1) results2 = mysqlfuncs.db_execute_and_fetch(statement2) results3 = mysqlfuncs.db_execute_and_fetch(statement3) results4 = mysqlfuncs.db_execute_and_fetch(statement4) Directors = mysqlfuncs.results_to_list(results1,index=0) Actors = mysqlfuncs.results_to_list(results2,index=0) Writers = mysqlfuncs.results_to_list(results3,index=0) Genre = mysqlfuncs.results_to_list(results4,index=0) outDict = {'Director(s)':Directors,'Actor(s)':Actors,\ 'Writer(s)':Writers,'Genre':Genre} return outDict
def MovieBudget(movieName,movieYear): """ retrive the budget for a given movie, and the year of make """ statement1 = 'select released,title,budget from boxoffice' statement1 += ' where (title = \"%s\");' % movieName results = mysqlfuncs.db_execute_and_fetch(statement1) yearUnformatted = mysqlfuncs.results_to_list(results,index=0) yearReleased = num.array([long(misc.getYear(x.strftime("%Y-%m-%d"))) \ for x in yearUnformatted]) titles = mysqlfuncs.results_to_list(results,index=1) budgets = num.array(mysqlfuncs.results_to_list(results,index=2)) # remove title ambiguiities by matching the release year if len(yearReleased) > 1: idx = num.where(yearReleased = movieYear)[0] else: idx = 0 return budgets[idx]
def get_FeatureSet(partTypes=None): """ return a given FeatureSet/part(s) keyword option partTypes is either None or a list of partTypes """ if partTypes == None: appendStatement = '' else: appendStatement = 'where( ' appendStatement += \ ' or '.join(['partType = '+'\"'+x+'\"' for x in partTypes]) appendStatement += ')' statement1 = 'select distinct(part) from movie_meta ' statement1 += appendStatement statement1 += ' order by part asc;' results = mysqlfuncs.db_execute_and_fetch(statement1) FeatureSet = mysqlfuncs.results_to_list(results,index=0) return FeatureSet