def _history(self): # get release dates, titles and successMetric from database self.ReleaseDates, self.successMetric, self.MovieTitles, self.budget, self.gross = \ mysqlfuncs.get_successMetric_history(self.name) # re-normalize successMetric self.profitMargin = self.successMetric self.successMetric = ((self.successMetric*self.gross) + self.budget)/self.budget # make an array of only the years of release self.ReleaseYears = [int(misc.getYear(RDate.strftime("%Y-%m-%d")))\ for RDate in self.ReleaseDates] # find the first and last years in which a release was made min_date = min(self.ReleaseDates).strftime("%Y-%m-%d") max_date = max(self.ReleaseDates).strftime("%Y-%m-%d") min_date = int(misc.getYear(min_date)) max_date = int(misc.getYear(max_date)) # the first active and last active year as attributes self.Year_of_FirstRelease = min_date self.Year_of_LastRelease = max_date+1 # get the dictionary of various participations # of given person partHist = \ mysqlfuncs.get_title_partType_byPart(self.name) self.InfluenceMultiplier = \ InfluenceMultiplier(partHist,self.MovieTitles)
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 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]