This repository has been archived on 2022-08-24. You can view files and clone it, but cannot push or open issues or pull requests.

49 lines
1.5 KiB
Python
Raw Normal View History

""" Driver class """
2022-06-01 14:31:52 +01:00
import datetime
from dataclasses import dataclass
2022-06-01 14:31:52 +01:00
@dataclass
2022-06-06 12:20:48 +01:00
class Driver():
2022-06-01 14:31:52 +01:00
"""
Representation of a Formula One driver
2022-06-01 14:31:52 +01:00
Drivers may contain:
driver_id: String
permanent_number: Integer
2022-06-01 14:31:52 +01:00
code: String
url: String
given_name: String
family_name: String
date_of_birth: datetime.date
2022-06-01 14:31:52 +01:00
nationality: String
"""
def __init__(self, driver_id: str, code: str, url: str, given_name: str, family_name: str,
date_of_birth: datetime.date, nationality: str, permanent_number: int) -> None:
self.driver_id = driver_id
self.permanent_number = permanent_number
2022-06-01 14:31:52 +01:00
self.code = code
self.url = url
self.given_name = given_name
self.family_name = family_name
self.date_of_birth = date_of_birth
2022-06-01 14:31:52 +01:00
self.nationality = nationality
2022-06-06 12:20:48 +01:00
def __repr__(self) -> str:
members = ', '.join(f"{key}={value}" for key, value in self.__dict__.items())
return f"{type(self).__name__}({members})"
2022-06-09 23:19:28 +01:00
def __eq__(self, __o: object) -> bool:
return isinstance(__o, Driver) and (
self.driver_id == __o.driver_id and
self.permanent_number == __o.permanent_number and
self.code == __o.code and
self.url == __o.url and
self.given_name == __o.given_name and
self.family_name == __o.family_name and
self.date_of_birth == __o.date_of_birth and
self.nationality == __o.nationality
)