aboutsummaryrefslogtreecommitdiff
path: root/dbinit/import.py
diff options
context:
space:
mode:
Diffstat (limited to 'dbinit/import.py')
-rwxr-xr-xdbinit/import.py89
1 files changed, 75 insertions, 14 deletions
diff --git a/dbinit/import.py b/dbinit/import.py
index fd87d9d..fb4c1e2 100755
--- a/dbinit/import.py
+++ b/dbinit/import.py
@@ -40,6 +40,13 @@ class F1Team():
calendar_id: int
number: int
+@dataclass
+class F1RaceDate():
+ calendar_id: int
+ race_type_id: int
+ week: int
+ date: datetime.datetime
+
def get_id_by_key_value(key, value):
if key not in id_key_map: id_key_map[key] = list()
if value in id_key_map[key]: return id_key_map[key].index(value) + 1
@@ -115,11 +122,9 @@ def export_specialposition():
def export_endposition():
return ""
-
def export_fastestlap():
return ""
-
def export_racetype():
out = "insert into `formula1`.`racetype` (`raceType`) values "
found_ids = set()
@@ -134,17 +139,24 @@ def export_racetype():
return out
def export_racedate():
- return ""
-
+ out = "insert into `formula1`.`racedate` (`calendarID`, `raceTypeID`, `week`, `date`) values "
+ found_ids = set()
+ for date in set_racedate:
+ id = get_id_by_key_value("racedate", date)
+ if id in found_ids: continue
+ found_ids.add(id)
+ out += f"({date.calendar_id}, {date.race_type_id}, {date.week}, \"{date.date.strftime('%Y-%m-%d')}\"),"
+ out = list(out)
+ out[-1] = ";" # replace comma
+ out = "".join(out)
+ return out
def export_race():
return ""
-
def export_endpositionrace():
return ""
-
def export_nationality():
out = "insert into `formula1`.`nationality` (`country`) values "
found_ids = set()
@@ -159,13 +171,17 @@ def export_nationality():
return out
def export_membernationality():
- return ""
-
+ out = "insert into `formula1`.`membernationality` (`memberID`, `nationalityID`) values "
+ for member in set_member:
+ out += f"({get_id_by_key_value('member', member.driver_id)}, {get_id_by_key_value('nationality', member.nationality)}),"
+ out = list(out)
+ out[-1] = ";" # replace comma
+ out = "".join(out)
+ return out
def export_racedatecircuit():
return ""
-
def export_teams():
out = "insert into `formula1`.`teams` (`calendarID`, `teamNumber`, `teamName`) values "
found_ids = set()
@@ -179,15 +195,12 @@ def export_teams():
out = "".join(out)
return out
-
def export_teamsmember():
return ""
-
def export_auditlog():
return ""
-
def export():
print(("\n").join([
export_nationality(),
@@ -218,8 +231,13 @@ def main(year):
set_specialposition.append("disqualified")
set_specialposition.append("dnf")
set_function.append("driver")
+ set_calendar.append(year)
+ # make id's accessible in following code
+ export_racetype()
+ export_specialposition()
+ export_function()
+ export_calendar()
for race in e.season(year).get_races():
- set_calendar.append(race.season)
set_race.append(race)
set_circuit.append(F1Circuit(
race.circuit.circuit_id,
@@ -237,9 +255,52 @@ def main(year):
1,
0
))
+
+ if race.first_practice != None:
+ set_racedate.append(F1RaceDate(
+ get_id_by_key_value("calendar", race.season),
+ get_id_by_key_value("racetype", "first_practice"),
+ race.first_practice.isocalendar()[1],
+ race.first_practice
+ ))
+ if race.second_practice != None:
+ set_racedate.append(F1RaceDate(
+ get_id_by_key_value("calendar", race.season),
+ get_id_by_key_value("racetype", "second_practice"),
+ race.second_practice.isocalendar()[1],
+ race.second_practice
+ ))
+ if race.third_practice != None:
+ set_racedate.append(F1RaceDate(
+ get_id_by_key_value("calendar", race.season),
+ get_id_by_key_value("racetype", "third_practice"),
+ race.third_practice.isocalendar()[1],
+ race.third_practice
+ ))
+ if race.sprint != None:
+ set_racedate.append(F1RaceDate(
+ get_id_by_key_value("calendar", race.season),
+ get_id_by_key_value("racetype", "sprint"),
+ race.sprint.isocalendar()[1],
+ race.sprint
+ ))
+ if race.qualifying != None:
+ set_racedate.append(F1RaceDate(
+ get_id_by_key_value("calendar", race.season),
+ get_id_by_key_value("racetype", "qualifying"),
+ race.qualifying.isocalendar()[1],
+ race.qualifying
+ ))
+ if race.date != None:
+ set_racedate.append(F1RaceDate(
+ get_id_by_key_value("calendar", race.season),
+ get_id_by_key_value("racetype", "normal"),
+ race.date.isocalendar()[1],
+ race.date
+ ))
break
- print(set_teams)
+ print(set_racedate)
export()