Ejemplo n.º 1
0
def te():
    'Generates a base te configuration'

    return {
        'weeks': util.fantasy_full_weeks(),
        'position': 'TE',
        'cost_baseline': 8,
        'sortBy': 'receiving_yds',
        'sample_size': 20,
        'sample_trim': 20 * trim(),
        'calc_fantasy_stats': fantasy_pts.calc_pos_plyr,
        'generate_plyr_stats_dict': fantasy_pts.generate_pos_plyr_stats_dict,
        'generate_plyr_default_dict': fantasy_pts.generate_pos_plyr_default_dict
    }
Ejemplo n.º 2
0
def qb():
    'Generates a base qb configuration'

    return {
        'weeks': util.fantasy_full_weeks(),
        'position': 'QB',
        'cost_baseline': 14,
        'sortBy': 'passing_yds',
        'sample_size': 20,
        'sample_trim': 20 * trim(),
        'calc_fantasy_stats': fantasy_pts.calc_qb,
        'generate_plyr_stats_dict': fantasy_pts.generate_qb_plyr_stats_dict,
        'generate_plyr_default_dict': fantasy_pts.generate_qb_plyr_default_dict
    }
Ejemplo n.º 3
0
def rb():
    'Generates a base qb configuration'

    return {
        'weeks': util.fantasy_full_weeks(),
        'position': 'RB',
        'cost_baseline': 16,
        'sortBy': 'rushing_yds',
        'sample_size': 30,
        'sample_trim': 30 * trim(),
        'calc_fantasy_stats': fantasy_pts.calc_pos_plyr,
        'generate_plyr_stats_dict': fantasy_pts.generate_pos_plyr_stats_dict,
        'generate_plyr_default_dict': fantasy_pts.generate_pos_plyr_default_dict
    }
def generate_plyr_info(plyr, config):
    'Generates a player object and associated core stats'
    plyr_id = plyr.player_id

    # query player game weeks
    config['weeks'] = util.fantasy_full_weeks()
    full_games = query.aggregate_plyr_games(plyr_id, config)
    plyr_full_aggregate = query.aggregate_plyr_stats(plyr_id, config)
    if plyr_full_aggregate:
        plyr_full_dict = config['generate_plyr_stats_dict'](plyr_full_aggregate[0])
    else:
        plyr_full_dict = config['generate_plyr_default_dict']()

    # query player stats (weeks 1-8)
    config['weeks'] = util.fantasy_beg_weeks()
    beg_games = query.aggregate_plyr_games(plyr_id, config)
    plyr_beg_aggregate = query.aggregate_plyr_stats(plyr_id, config)
    if plyr_beg_aggregate:
        plyr_beg_dict = config['generate_plyr_stats_dict'](plyr_beg_aggregate[0])
    else:
        plyr_beg_dict = config['generate_plyr_default_dict']()

    # query player stats (weeks 8-16)
    config['weeks'] = util.fantasy_end_weeks()
    end_games = query.aggregate_plyr_games(plyr_id, config)
    plyr_end_aggregate = query.aggregate_plyr_stats(plyr_id, config)
    if plyr_end_aggregate:
        plyr_end_dict = config['generate_plyr_stats_dict'](plyr_end_aggregate[0])
    else:
        plyr_end_dict = config['generate_plyr_default_dict']()

    # calculate player fantasy points
    # TODO: better naming convention than config to indicate dynamic methods in object
    full_pts = config['calc_fantasy_stats'](plyr_full_dict)
    beg_pts = config['calc_fantasy_stats'](plyr_beg_dict)
    end_pts = config['calc_fantasy_stats'](plyr_end_dict)

    # total weeks, 1-8 weeks, 9-16 weeks played
    full_weeks = calc_plyr_weeks(full_games)
    full_weeks_played = len(full_weeks)
    beg_weeks = calc_plyr_weeks(beg_games)
    beg_weeks_played = len(beg_weeks)
    end_weeks = calc_plyr_weeks(end_games)
    end_weeks_played = len(end_weeks)

    full_avg_pts = (full_pts / full_weeks_played) if full_pts > 0 else 0
    beg_avg_pts = (beg_pts / beg_weeks_played) if beg_pts > 0 else 0
    end_avg_pts = (end_pts / end_weeks_played) if end_pts > 0 else 0
    availability = (full_weeks_played / 15) if full_weeks_played > 0 else 0

    print 'Name: %s, Pts %d %.1f' % (plyr.player, full_pts, full_avg_pts)

    return {
        'id': plyr_id,
        'name': plyr.player,
        'weeks': full_weeks_played,
        'pts': full_pts,
        'avg_pts': full_avg_pts,
        'beg_pts': beg_pts,
        'beg_avg_pts': beg_avg_pts,
        'end_pts': end_pts,
        'end_avg_pts': end_avg_pts,
        'availability': availability
    }