Skip to content

Commit 047f149

Browse files
committed
Refactor Date class initialization and update test cases for clarity and consistency
Issue #26
1 parent c950e3f commit 047f149

2 files changed

Lines changed: 17 additions & 20 deletions

File tree

bcb/utils.py

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
1-
from datetime import datetime, date
2-
1+
from datetime import date, datetime
2+
from typing import Union
33

44
BRAZILIAN_REGIONS = {
5-
"N": ["AC", "AP", "AM", "PA", "RO", "RR", "TO"],
6-
"NE": ["AL", "BA", "CE", "MA", "PB", "PE", "PI", "RN", "SE"],
7-
"CO": ["DF", "GO", "MT", "MS"],
8-
"SE": ["ES", "MG", "RJ", "SP"],
9-
"S": ["PR", "RS", "SC"]
5+
"N": ["AC", "AP", "AM", "PA", "RO", "RR", "TO"],
6+
"NE": ["AL", "BA", "CE", "MA", "PB", "PE", "PI", "RN", "SE"],
7+
"CO": ["DF", "GO", "MT", "MS"],
8+
"SE": ["ES", "MG", "RJ", "SP"],
9+
"S": ["PR", "RS", "SC"],
1010
}
1111
BRAZILIAN_STATES = []
1212
for state in BRAZILIAN_REGIONS.values():
1313
BRAZILIAN_STATES.extend(state)
1414

1515

1616
class Date:
17-
def __init__(self, d=None, format="%Y-%m-%d", mindate=date(1900, 1, 1)):
18-
d = d if d else mindate
17+
def __init__(self, d: Union[str, datetime, "Date", date], format: str = "%Y-%m-%d") -> None:
1918
if isinstance(d, str):
2019
if d == "now" or d == "today":
2120
d = date.today()
@@ -29,27 +28,27 @@ def __init__(self, d=None, format="%Y-%m-%d", mindate=date(1900, 1, 1)):
2928
pass
3029
else:
3130
raise ValueError()
32-
self.date = d
31+
self.date: date = d
3332

34-
def format(self, fmts="%Y-%m-%d"):
33+
def format(self, fmts: str = "%Y-%m-%d") -> str:
3534
return datetime.strftime(self.date, fmts)
3635

37-
def __gt__(self, other):
36+
def __gt__(self, other) -> bool:
3837
return self.date > other.date
3938

40-
def __ge__(self, other):
39+
def __ge__(self, other) -> bool:
4140
return self.date >= other.date
4241

43-
def __lt__(self, other):
42+
def __lt__(self, other) -> bool:
4443
return self.date < other.date
4544

46-
def __le__(self, other):
45+
def __le__(self, other) -> bool:
4746
return self.date <= other.date
4847

49-
def __eq__(self, other):
48+
def __eq__(self, other) -> bool:
5049
return self.date == other.date
5150

52-
def __repr__(self):
51+
def __repr__(self) -> str:
5352
return self.format()
5453

5554
__str__ = __repr__

tests/test_utils.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from datetime import datetime, date
1+
from datetime import date, datetime
22

33
from bcb import utils
44

@@ -12,8 +12,6 @@ def test_date():
1212
assert d.date == date(2020, 1, 1)
1313
d = utils.Date(datetime(2020, 1, 1))
1414
assert d.date == date(2020, 1, 1)
15-
d = utils.Date(None)
16-
assert d.date == date(1900, 1, 1)
1715
d = utils.Date("now")
1816
assert d.date == date.today()
1917
d = utils.Date("today")

0 commit comments

Comments
 (0)