""" collect.py Functions for collecting data for insertion into the databse or pulling data from the database for analysis """ from datetime import datetime from enum import Enum from time import sleep from sqlalchemy import func from sqlalchemy.exc import IntegrityError from data.database import Base, dal, MegaMillionsDraw, PowerballDraw, project_variables import util.drawing as drawutil import util.environment as envutil import util.scrape as scrapeutil project_variables = envutil.load_environment_variables() def get_record_count(table_name: str) -> str | None: """get the most recent draw record from the specified table""" if table_name in ['PowerballDraw', 'MegaMillionsDraw']: dal.connect() session = dal.Session() target_table = Base.registry._class_registry.get(table_name) return session.query(func.count(target_table.draw_date)).first()[0] else: raise ValueError('Valid values are PowerballDraw, MegaMillionsDraw')