Browse Source

Fixes

pull/9685/head
Developer Anonymous 8 months ago
parent
commit
390e9ac561
  1. 22
      discord/scheduled_event.py

22
discord/scheduled_event.py

@ -29,8 +29,8 @@ from typing import (
TYPE_CHECKING, TYPE_CHECKING,
AsyncIterator, AsyncIterator,
Dict, Dict,
NamedTuple,
Optional, Optional,
Tuple,
Union, Union,
overload, overload,
Literal, Literal,
@ -69,6 +69,8 @@ if TYPE_CHECKING:
from .user import User from .user import User
GuildScheduledEventPayload = Union[BaseGuildScheduledEventPayload, GuildScheduledEventWithUserCountPayload] GuildScheduledEventPayload = Union[BaseGuildScheduledEventPayload, GuildScheduledEventWithUserCountPayload]
Week = Literal[1, 2, 3, 4, 5]
NWeekday = Tuple[Week, ScheduledEventRecurrenceWeekday]
# fmt: off # fmt: off
__all__ = ( __all__ = (
@ -78,10 +80,6 @@ __all__ = (
# fmt: on # fmt: on
class _NWeekday(NamedTuple):
week: Literal[1, 2, 3, 4, 5]
day: ScheduledEventRecurrenceWeekday
class ScheduledEventRecurrenceRule: class ScheduledEventRecurrenceRule:
"""The recurrence rule for a scheduled event. """The recurrence rule for a scheduled event.
@ -142,7 +140,7 @@ class ScheduledEventRecurrenceRule:
frequency: ScheduledEventRecurrenceFrequency, frequency: ScheduledEventRecurrenceFrequency,
interval: int, interval: int,
*, *,
n_weekdays: Optional[List[_NWeekday]], n_weekdays: Optional[List[NWeekday]],
) -> None: ) -> None:
... ...
@ -166,7 +164,7 @@ class ScheduledEventRecurrenceRule:
interval: int, interval: int,
*, *,
weekdays: Optional[List[ScheduledEventRecurrenceWeekday]] = MISSING, weekdays: Optional[List[ScheduledEventRecurrenceWeekday]] = MISSING,
n_weekdays: Optional[List[_NWeekday]] = MISSING, n_weekdays: Optional[List[NWeekday]] = MISSING,
month_days: Optional[List[date]] = MISSING, month_days: Optional[List[date]] = MISSING,
) -> None: ) -> None:
self.start: datetime = start self.start: datetime = start
@ -177,7 +175,7 @@ class ScheduledEventRecurrenceRule:
self._year_days: Optional[List[int]] = None self._year_days: Optional[List[int]] = None
# We will be keeping the MISSING values for future use in _to_dict() # We will be keeping the MISSING values for future use in _to_dict()
self._weekdays: Optional[List[ScheduledEventRecurrenceWeekday]] = weekdays self._weekdays: Optional[List[ScheduledEventRecurrenceWeekday]] = weekdays
self._n_weekdays: Optional[List[_NWeekday]] = n_weekdays self._n_weekdays: Optional[List[NWeekday]] = n_weekdays
self._month_days: Optional[List[date]] = month_days self._month_days: Optional[List[date]] = month_days
def __repr__(self) -> str: def __repr__(self) -> str:
@ -197,7 +195,7 @@ class ScheduledEventRecurrenceRule:
self._weekdays = new self._weekdays = new
@property @property
def n_weekdays(self) -> Optional[List[_NWeekday]]: def n_weekdays(self) -> Optional[List[NWeekday]]:
"""Optional[List[Tuple[:class:`int`, :class:`ScheduledEventRecurrenceWeekday`]]]: Returns a read-only """Optional[List[Tuple[:class:`int`, :class:`ScheduledEventRecurrenceWeekday`]]]: Returns a read-only
list of the N weekdays this event recurs on, or ``None``. list of the N weekdays this event recurs on, or ``None``.
""" """
@ -206,7 +204,7 @@ class ScheduledEventRecurrenceRule:
return self._n_weekdays.copy() return self._n_weekdays.copy()
@n_weekdays.setter @n_weekdays.setter
def n_weekdays(self, new: Optional[List[_NWeekday]]) -> None: def n_weekdays(self, new: Optional[List[NWeekday]]) -> None:
self._n_weekdays = new self._n_weekdays = new
@property @property
@ -249,7 +247,7 @@ class ScheduledEventRecurrenceRule:
self, self,
*, *,
weekdays: Optional[List[ScheduledEventRecurrenceWeekday]] = MISSING, weekdays: Optional[List[ScheduledEventRecurrenceWeekday]] = MISSING,
n_weekdays: Optional[List[_NWeekday]] = MISSING, n_weekdays: Optional[List[NWeekday]] = MISSING,
month_days: Optional[List[date]] = MISSING, month_days: Optional[List[date]] = MISSING,
) -> Self: ) -> Self:
"""Replaces and returns the recurrence rule with the same values except for the """Replaces and returns the recurrence rule with the same values except for the
@ -323,7 +321,7 @@ class ScheduledEventRecurrenceRule:
def _from_data(cls, data: ScheduledEventRecurrenceRulePayload, /) -> Self: def _from_data(cls, data: ScheduledEventRecurrenceRulePayload, /) -> Self:
self = cls( self = cls(
start=parse_time(data['start']), start=parse_time(data['start']),
frequency=data['frequency'], frequency=try_enum(ScheduledEventRecurrenceFrequency, data['frequency']),
interval=data['interval'], interval=data['interval'],
) # type: ignore ) # type: ignore
self._count = data.get('count') self._count = data.get('count')

Loading…
Cancel
Save