Skip to content

calendarEntry

CalendarEntry ¤

Bases: BaseModel

Calendar Entry Model

Attributes:

Name Type Description
name str

Event Name

tournament_id int

Tournament ID

tournament_url str

Tournament URL

start_time datetime

Event Start Time

Source code in sendou/models/calendarEntry.py
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
class CalendarEntry(BaseModel):
    """
    Calendar Entry Model

    Attributes:
        name (str): Event Name
        tournament_id (int): Tournament ID
        tournament_url (str): Tournament URL
        start_time (datetime): Event Start Time
    """
    name: str
    tournament_id: Optional[int]
    tournament_url: Optional[str]
    start_time: datetime

    def __init__(self, data: dict, request_client: RequestsClient):
        super().__init__(data, request_client)
        self.name = data.get("name", "")
        self.tournament_id = data.get("tournamentId", None)
        self.tournament_url = data.get("tournamentUrl", "")
        self.start_time = parser.parse(data.get("startTime", ""))

    @staticmethod
    def api_route(**kwargs) -> str:
        """
        API Route
        Args:
            year (int): Year
            week (int): week

        Returns:
            str: API Route
        """
        return f"api/calendar/{kwargs.get('year')}/{kwargs.get('week')}"

    async def get_tournament(self) -> Optional[Tournament]:
        """
        Get the tournament for the calendar entry
        Returns:
            (Optional[Tournament]): Tournament
        """
        if self.tournament_id is None:
            return None
        path = Tournament.api_route(tournament_id=self.tournament_id)
        data = await self._request_client.get_response(path)
        return Tournament(self.tournament_id, data, self._request_client)

    def __repr__(self):
        return f"<CalendarEntry name={self.name} | tournament_id={self.tournament_id} | start_time={self.start_time}>"

api_route(**kwargs) staticmethod ¤

API Route Args: year (int): Year week (int): week

Returns:

Name Type Description
str str

API Route

Source code in sendou/models/calendarEntry.py
32
33
34
35
36
37
38
39
40
41
42
43
@staticmethod
def api_route(**kwargs) -> str:
    """
    API Route
    Args:
        year (int): Year
        week (int): week

    Returns:
        str: API Route
    """
    return f"api/calendar/{kwargs.get('year')}/{kwargs.get('week')}"

get_tournament() async ¤

Get the tournament for the calendar entry Returns: (Optional[Tournament]): Tournament

Source code in sendou/models/calendarEntry.py
45
46
47
48
49
50
51
52
53
54
55
async def get_tournament(self) -> Optional[Tournament]:
    """
    Get the tournament for the calendar entry
    Returns:
        (Optional[Tournament]): Tournament
    """
    if self.tournament_id is None:
        return None
    path = Tournament.api_route(tournament_id=self.tournament_id)
    data = await self._request_client.get_response(path)
    return Tournament(self.tournament_id, data, self._request_client)