Update caching of pitcher and batter scouting

This commit is contained in:
Cal Corum 2025-02-23 23:23:59 -06:00
parent 9d831a9512
commit 61df90b2ea

View File

@ -272,12 +272,13 @@ async def get_batter_scouting_or_none(session: Session, card: Card, skip_cache:
logger.info(f'returning cached scouting')
return this_scouting
else:
logger.info(f'deleting cached scouting')
session.delete(this_scouting.battingcard)
session.delete(this_scouting.ratings_vl)
session.delete(this_scouting.ratings_vr)
session.delete(this_scouting)
session.commit()
logger.info(f'Refreshing cache')
# logger.info(f'deleting cached scouting')
# session.delete(this_scouting.battingcard)
# session.delete(this_scouting.ratings_vl)
# session.delete(this_scouting.ratings_vr)
# session.delete(this_scouting)
# session.commit()
def cache_scouting(batting_card: dict, ratings_vr: dict, ratings_vl: dict) -> BatterScouting:
valid_bc = BattingCardBase.model_validate(batting_card, from_attributes=True)
@ -289,11 +290,86 @@ async def get_batter_scouting_or_none(session: Session, card: Card, skip_cache:
valid_vr = BattingRatingsBase.model_validate(ratings_vr, from_attributes=True)
db_vr = BattingRatings.model_validate(valid_vr)
db_scouting = BatterScouting(
battingcard=db_bc,
ratings_vl=db_vl,
ratings_vr=db_vr
logger.info(f'Checking for existing battingcard ID: {db_bc.id}')
try:
this_card = session.exec(select(BattingCard).where(BattingCard.id == db_bc.id)).one()
logger.info(f'Found card: {this_card}\nUpdating with db card: {db_bc}')
for key, value in db_bc.model_dump(exclude_unset=True).items():
logger.info(f'Setting key ({key}) to value ({value})')
setattr(this_card, key, value)
logger.info(f'Set this_card to db_bc')
session.add(this_card)
# session.commit()
# logger.info(f'Refreshing this_card')
# session.refresh(this_card)
# return this_card
except:
logger.info(f'Card not found, adding to db')
this_card = db_bc
session.add(this_card)
# session.commit()
# session.refresh(db_card)
# return db_card
logger.info(f'Checking for existing vl ratings ID: {db_vl.id}')
try:
this_vl_rating = session.exec(select(BattingRatings).where(BattingRatings.id == db_vl.id)).one()
logger.info(f'Found ratings: {this_vl_rating}\nUpdating with db ratings: {db_vl}')
for key, value in db_vl.model_dump(exclude_unset=True).items():
logger.info(f'Setting key ({key}) to value ({value})')
setattr(this_vl_rating, key, value)
logger.info(f'Set this_vr_rating to db_vl')
session.add(this_vl_rating)
# session.commit()
# logger.info(f'Refreshing this_card')
# session.refresh(this_card)
# return this_card
except:
logger.info(f'Card not found, adding to db')
this_vl_rating = db_vl
session.add(this_vl_rating)
# session.commit()
# session.refresh(db_card)
# return db_card
logger.info(f'Checking for existing vr ratings ID: {db_vr.id}')
try:
this_vr_rating = session.exec(select(BattingRatings).where(BattingRatings.id == db_vr.id)).one()
logger.info(f'Found ratings: {this_vr_rating}\nUpdating with db ratings: {db_vr}')
for key, value in db_vr.model_dump(exclude_unset=True).items():
logger.info(f'Setting key ({key}) to value ({value})')
setattr(this_vr_rating, key, value)
logger.info(f'Set this_vr_rating to db_vl')
session.add(this_vr_rating)
# session.commit()
# logger.info(f'Refreshing this_card')
# session.refresh(this_card)
# return this_card
except:
logger.info(f'Card not found, adding to db')
this_vr_rating = db_vr
session.add(this_vr_rating)
# session.commit()
# session.refresh(db_card)
# return db_card
db_scouting = PitcherScouting(
pitchingcard=this_card,
ratings_vl=this_vl_rating,
ratings_vr=this_vr_rating
)
# db_scouting = BatterScouting(
# battingcard=db_bc,
# ratings_vl=db_vl,
# ratings_vr=db_vr
# )
session.add(db_scouting)
logger.info(f'caching scouting')
@ -331,12 +407,13 @@ async def get_pitcher_scouting_or_none(session: Session, card: Card, skip_cache:
return this_scouting
else:
logger.info(f'deleting cached scouting')
session.delete(this_scouting.pitchingcard)
session.delete(this_scouting.ratings_vl)
session.delete(this_scouting.ratings_vr)
session.delete(this_scouting)
session.commit()
logger.info(f'Refreshing cache')
# logger.info(f'deleting cached scouting')
# session.delete(this_scouting.pitchingcard)
# session.delete(this_scouting.ratings_vl)
# session.delete(this_scouting.ratings_vr)
# session.delete(this_scouting)
# session.commit()
def cache_scouting(pitching_card: dict, ratings_vr: dict, ratings_vl: dict) -> PitcherScouting:
valid_bc = PitchingCardBase.model_validate(pitching_card, from_attributes=True)
@ -348,10 +425,79 @@ async def get_pitcher_scouting_or_none(session: Session, card: Card, skip_cache:
valid_vr = PitchingRatingsBase.model_validate(ratings_vr, from_attributes=True)
db_vr = PitchingRatings.model_validate(valid_vr)
logger.info(f'Checking for existing battingcard ID: {db_bc.id}')
try:
this_card = session.exec(select(PitchingCard).where(PitchingCard.id == db_bc.id)).one()
logger.info(f'Found card: {this_card}\nUpdating with db card: {db_bc}')
for key, value in db_bc.model_dump(exclude_unset=True).items():
logger.info(f'Setting key ({key}) to value ({value})')
setattr(this_card, key, value)
logger.info(f'Set this_card to db_bc')
session.add(this_card)
# session.commit()
# logger.info(f'Refreshing this_card')
# session.refresh(this_card)
# return this_card
except:
logger.info(f'Card not found, adding to db')
this_card = db_bc
session.add(this_card)
# session.commit()
# session.refresh(db_card)
# return db_card
logger.info(f'Checking for existing vl ratings ID: {db_vl.id}')
try:
this_vl_rating = session.exec(select(PitchingRatings).where(PitchingRatings.id == db_vl.id)).one()
logger.info(f'Found ratings: {this_vl_rating}\nUpdating with db ratings: {db_vl}')
for key, value in db_vl.model_dump(exclude_unset=True).items():
logger.info(f'Setting key ({key}) to value ({value})')
setattr(this_vl_rating, key, value)
logger.info(f'Set this_vr_rating to db_vl')
session.add(this_vl_rating)
# session.commit()
# logger.info(f'Refreshing this_card')
# session.refresh(this_card)
# return this_card
except:
logger.info(f'Card not found, adding to db')
this_vl_rating = db_vl
session.add(this_vl_rating)
# session.commit()
# session.refresh(db_card)
# return db_card
logger.info(f'Checking for existing vr ratings ID: {db_vr.id}')
try:
this_vr_rating = session.exec(select(PitchingRatings).where(PitchingRatings.id == db_vr.id)).one()
logger.info(f'Found ratings: {this_vr_rating}\nUpdating with db ratings: {db_vr}')
for key, value in db_vr.model_dump(exclude_unset=True).items():
logger.info(f'Setting key ({key}) to value ({value})')
setattr(this_vr_rating, key, value)
logger.info(f'Set this_vr_rating to db_vl')
session.add(this_vr_rating)
# session.commit()
# logger.info(f'Refreshing this_card')
# session.refresh(this_card)
# return this_card
except:
logger.info(f'Card not found, adding to db')
this_vr_rating = db_vr
session.add(this_vr_rating)
# session.commit()
# session.refresh(db_card)
# return db_card
db_scouting = PitcherScouting(
pitchingcard=db_bc,
ratings_vl=db_vl,
ratings_vr=db_vr
pitchingcard=this_card,
ratings_vl=this_vl_rating,
ratings_vr=this_vr_rating
)
session.add(db_scouting)
@ -475,7 +621,7 @@ async def get_or_create_ai_card(session: Session, player: Player, team: Team, sk
valid_card = CardBase.model_validate(c_query['cards'][0], from_attributes=True)
db_card = Card.model_validate(valid_card)
logger.info(f'gameplay_queries - cache_team - db_card: {db_card}')
logger.info(f'Checking for existing team ID: {db_card.id}')
logger.info(f'Checking for existing card ID: {db_card.id}')
try:
this_card = session.exec(select(Card).where(Card.id == db_card.id)).one()