Beispiel #1
0
    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)
Beispiel #2
0
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
Beispiel #3
0
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
Beispiel #4
0
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]