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.
ergast-py/ergast_py/models/constructor_standing.py

41 lines
1.2 KiB
Python
Raw Normal View History

""" ConstructorStanding class """
2022-06-01 15:31:52 +02:00
from dataclasses import dataclass
from ergast_py.models.constructor import Constructor
2022-06-01 15:31:52 +02:00
@dataclass
2022-06-06 13:20:48 +02:00
class ConstructorStanding():
2022-06-01 15:31:52 +02:00
"""
Representation of a Formula One Constructor's standing in a Season
2022-06-01 15:31:52 +02:00
Constructor Standings may contain:
position: Integer
position_text: String
2022-06-01 15:31:52 +02:00
points: Float
wins: Integer
constructor: Constructor
"""
def __init__(self, position: int, position_text: str, points: float, wins: int, #pylint: disable=too-many-arguments
constructor: Constructor) -> None:
2022-06-01 15:31:52 +02:00
self.position = position
self.position_text = position_text
2022-06-01 15:31:52 +02:00
self.points = points
self.wins = wins
self.constructor = constructor
2022-06-06 13:20:48 +02: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-10 00:19:28 +02:00
def __eq__(self, __o: object) -> bool:
return isinstance(__o, ConstructorStanding) and (
self.position == __o.position and
self.position_text == __o.position_text and
self.points == __o.points and
self.wins == __o.wins and
self.constructor == __o.constructor
)