Reformat code to pythonic standards

This commit is contained in:
chris committed 2026-05-27 08:20:30 -04:00
1 parent ea62bdfc0b
commit b1732c07c5
5 files changed
+123 -51

No files matched your search

+45 -21
View File
@@ -4,11 +4,12 @@
Utility functions for drawing data processing
"""
import os
from datetime import datetime, timedelta
from dotenv import load_dotenv
from data.database import PowerballDraw, MegaMillionsDraw, Table
from data.database import MegaMillionsDraw, PowerballDraw, Table
load_dotenv()
@@ -38,13 +39,17 @@ def check_table_name2(table_name: Table) -> dict | None:
return game_dict[table_name] if table_name in game_dict.keys() else None
def get_next_draw_date(game: str | None, from_date: str | None = None) -> str | None:
def get_next_draw_date(
game: str | None, from_date: str | None = None,
) -> str | None:
"""
Gets the next drawing date from the current or specified date for the given game
Gets the next drawing date from the current or specified date for the
given game
If the current date is the next drawing date, the current date is returned
:param game: megamillions or powerball
:param from_date: date to get next drawing date from, if omitted the current date is used
:param from_date: date to get next drawing date from, if omitted the
current date is used
:return: next drawing date
Examples:
@@ -55,7 +60,7 @@ def get_next_draw_date(game: str | None, from_date: str | None = None) -> str |
"""
target_days = {
"powerball": [0, 2, 5],
"mega-millions": [1, 4]
"mega-millions": [1, 4],
}
return_date = None
@@ -77,13 +82,18 @@ def get_next_draw_date(game: str | None, from_date: str | None = None) -> str |
return return_date.strftime(return_date_format)
def get_previous_draw_date(game: str | None, from_date: str | None = None) -> str | None:
def get_previous_draw_date(
game: str | None, from_date: str | None = None,
) -> str | None:
"""
Gets the previous drawing date from the current or specified date for the given game
If the current date is a drawing date, the next previous date will be returned
Gets the previous drawing date from the current or specified date for the
given game
If the current date is a drawing date, the next previous date will be
returned
:param game: megamillions or powerball
:param from_date: date to get previous drawing date from, if omitted the current date is used
:param from_date: date to get previous drawing date from, if omitted the
current date is used
:return: previous drawing date
Examples:
@@ -94,7 +104,7 @@ def get_previous_draw_date(game: str | None, from_date: str | None = None) -> st
"""
target_days = {
"powerball": [0, 2, 5],
"mega-millions": [1, 4]
"mega-millions": [1, 4],
}
return_date = None
@@ -110,7 +120,8 @@ def get_previous_draw_date(game: str | None, from_date: str | None = None) -> st
else:
return_date = datetime.strptime(from_date, return_date_format)
# to ensure the current date is not returned if it is a draw date, subtract a day first
# to ensure the current date is not returned if it is a draw date,
# subtract a day first
return_date -= timedelta(days=1)
while return_date.weekday() not in target_days[game]:
@@ -126,32 +137,45 @@ def get_powerball_object(draw_date: str, draw_result: dict) -> PowerballDraw:
:return: PowerballDraw object
Examples:
>>> get_powerball_object(draw_date='2026-02-28', draw_result={'main_balls': [6, 20, 35, 54, 65], 'powerball': 10, 'multiplier': 4})
PowerballDraw(draw_date=datetime(2026, 2, 28), main_ball1=6, main_ball2=20, main_ball3=35, main_ball4=54, main_ball5=65, powerball=10, power_play=4)
>>> get_powerball_object(draw_date='2026-02-28', draw_result={
'main_balls': [6, 20, 35, 54, 65], 'powerball': 10, 'multiplier': 4})
PowerballDraw(draw_date=datetime(2026, 2, 28), main_ball1=6,
main_ball2=20, main_ball3=35, main_ball4=54, main_ball5=65, powerball=10,
power_play=4)
"""
draw_date = datetime.strptime(draw_date, '%Y-%m-%d').date()
mb1, mb2, mb3, mb4, mb5 = draw_result['main_balls']
pb = draw_result['powerball']
power_play = draw_result['multiplier']
return PowerballDraw(draw_date=draw_date,main_ball1=mb1, main_ball2=mb2, main_ball3=mb3, main_ball4=mb4,
main_ball5=mb5, powerball=pb, power_play=power_play)
return PowerballDraw(
draw_date=draw_date, main_ball1=mb1, main_ball2=mb2, main_ball3=mb3,
main_ball4=mb4,
main_ball5=mb5, powerball=pb, power_play=power_play,
)
def get_mega_millions_object(draw_date: str, draw_result: dict) -> MegaMillionsDraw:
def get_mega_millions_object(
draw_date: str, draw_result: dict,
) -> MegaMillionsDraw:
"""
:param draw_date: date for the drawing data
:param draw_result: drawing results for the draw_date
:return: MegaMillionsDraw object
Examples:
>>> get_mega_millions_object(draw_date='2010-02-02', draw_result={'main_balls': [6, 7, 26, 27, 49], 'mega-ball': 9, 'megaplier': 4})
MegaMillionsDraw(draw_date=date, main_ball1=6, main_ball2=7, main_ball3=26, main_ball4=27, main_ball5=49, mega_ball=9, megaplier=4)
>>> get_mega_millions_object(draw_date='2010-02-02', draw_result={
'main_balls': [6, 7, 26, 27, 49], 'mega-ball': 9, 'megaplier': 4})
MegaMillionsDraw(draw_date=date, main_ball1=6, main_ball2=7,
main_ball3=26, main_ball4=27, main_ball5=49, mega_ball=9, megaplier=4)
"""
draw_date = datetime.strptime(draw_date, '%Y-%m-%d').date()
mb1, mb2, mb3, mb4, mb5 = draw_result['main_balls']
mega = draw_result['mega-ball']
megaplier = draw_result['multiplier']
return MegaMillionsDraw(draw_date=draw_date, main_ball1=mb1, main_ball2=mb2, main_ball3=mb3, main_ball4=mb4,
main_ball5=mb5, mega_ball=mega, megaplier=megaplier)
return MegaMillionsDraw(
draw_date=draw_date, main_ball1=mb1, main_ball2=mb2, main_ball3=mb3,
main_ball4=mb4,
main_ball5=mb5, mega_ball=mega, megaplier=megaplier,
)