Reformat code to pythonic standards
This commit is contained in:
1 parent
ea62bdfc0b
commit
b1732c07c5
5 files changed
+123
-51
No files matched your search
+45
-21
@@ -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,
|
||||
)
|
||||
Reference in new issue
Block a user