tennis-front / app /reference.py
SlimG's picture
clean code
dbf2bcc
from enum import Enum
from typing import Optional
class EnumWithFrValue(Enum):
def __new__(cls, value, fr_value):
member = object.__new__(cls)
member._value_ = value
member._fr_value = fr_value
return member
@property
def fr_value(self):
return self._fr_value
@classmethod
def get_by_value(cls, value: Optional[str]) -> Optional[Enum]:
if value:
for member in cls:
if member.value == value:
return member
return None
@classmethod
def get_fr_value_from_value(cls, value: Optional[str]) -> str:
if value:
for member in cls:
if member.value == value:
return member.fr_value
return value
else:
return ""
class Round(EnumWithFrValue):
FIRST = ("1st Round", "1er Tour")
SECOND = ("2nd Round", "2e Tour")
THIRD = ("3rd Round", "3e Tour")
FOURTH = ("4th Round", "4e Tour")
QUARTER = ("Quarterfinals", "Quarts de Finale")
SEMI = ("Semifinals", "Demi-Finales")
FINAL = ("The Final", "La Finale")
ROUND_ROBIN = ("Round Robin", "Phase de Poules")
class Surfaces(EnumWithFrValue):
HARD = ("Hard", "Dur")
CLAY = ("Clay", "Terre Battue")
GRASS = ("Grass", "Gazon")
CARPET = ("Carpet", "Synthétique")
class Courts(EnumWithFrValue):
INDOOR = ("Indoor", "Intérieur")
OUTDOOR = ("Outdoor", "Extérieur")
class Series(EnumWithFrValue):
ATP250 = ("ATP250", "ATP 250")
ATP500 = ("ATP500", "ATP 500")
MASTERS = ("Masters", "Masters")
MASTERS_1000 = ("Masters 1000", "Masters 1000")
MASTERS_CUP = ("Masters Cup", "Masters Cup")
GRAND_SLAM = ("Grand Slam", "Grand Chelem")
INTERNATIONAL = ("International", "International")
INTERNATIONAL_GOLD = ("International Gold", "International Gold")