Files
courses/py3interm/president.py
T
2025-05-20 11:57:43 -04:00

81 lines
1.9 KiB
Python

from datetime import date
class President():
def __init__(self, index):
self._get_data(index)
@staticmethod
def _mkdate(raw_date):
if raw_date != "NONE":
raw_year, raw_month, raw_day = raw_date.split('-')
d = date(int(raw_year), int(raw_month), int(raw_day))
else:
d = None
return d
def _get_data(self, index):
# Note: replace the following code to use the DB API to get
# data from the presidents.db database.
# You will probably need to access it as "DATA/presidents.db"
# You will no longer need the _mkdate() method
with open("DATA/presidents.txt") as pfile:
for line in pfile:
flds = line.split(":")
if int(flds[0]) == int(index):
self._lname = flds[1]
self._fname = flds[2]
self._bdate = self._mkdate(flds[3])
self._ddate = self._mkdate(flds[4])
self._bplace = flds[5]
self._bstate = flds[6]
self._ts_date = self._mkdate(flds[7])
self._te_date = self._mkdate(flds[8])
self._party = flds[9]
break
else:
raise ValueError("Invalid term number")
@property
def last_name(self):
return self._lname
@property
def first_name(self):
return self._fname
@property
def birth_date(self):
return self._bdate
@property
def death_date(self):
return self._ddate
@property
def birth_place(self):
return self._bplace
@property
def birth_state(self):
return self._bstate
@property
def term_start_date(self):
return self._ts_date
@property
def term_end_date(self):
return self._te_date
@property
def party(self):
return self._party