paper-dynasty-card-creation/manual_pull_fielding.py
2024-07-14 13:22:22 -05:00

44 lines
1.5 KiB
Python

import asyncio
import sys
import batters.creation
import pitchers.creation
from creation_helpers import get_args, pd_players_df, pd_positions_df
from db_calls import db_get
from defenders import calcs_defense as cde
async def main(args):
arg_data = get_args(args)
cardset_name = arg_data['cardset_name']
print(f'Searching for cardset: {cardset_name}')
c_query = await db_get('cardsets', params=[('name', cardset_name)])
if c_query['count'] == 0:
print(f'I do not see a cardset named {cardset_name}')
return
cardset = c_query['cardsets'][0]
del c_query
if 'season' in arg_data:
season = arg_data['season']
else:
season = int(cardset['name'][:4])
post_batters = True if 'post_batters' not in arg_data or arg_data['post_batters'].lower() == 'true' else False
post_pitchers = True if 'post_pitchers' not in arg_data or arg_data['post_pitchers'].lower() == 'true' else False
post_players = True if 'post_players' not in arg_data or arg_data['post_players'].lower() == 'true' else False
season_pct = 1.0 if 'season_pct' not in arg_data else float(arg_data['season_pct'])
all_players = await pd_players_df(cardset['id'])
if post_batters:
await batters.creation.run_batter_fielding(season, all_players, season_pct, post_batters)
if post_pitchers:
df_p = cde.get_bbref_fielding_df('p', season)
await pitchers.creation.create_position(season_pct, all_players, post_pitchers, df_p)
if __name__ == '__main__':
asyncio.run(main(sys.argv[1:]))