30 lines
997 B
Python
30 lines
997 B
Python
"""
|
|
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')
|