vinyl.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. from typing import TYPE_CHECKING, List, Optional
  2. from yandex_music import YandexMusicModel
  3. from yandex_music.utils import model
  4. if TYPE_CHECKING:
  5. from yandex_music import ClientType
  6. @model
  7. class Vinyl(YandexMusicModel):
  8. """Класс, представляющий виниловую пластинку.
  9. Attributes:
  10. url (:obj:`str`): Ссылка на пластинку в магазине.
  11. title (:obj:`str`): Заголовок.
  12. year (:obj:`int`): Год выпуска.
  13. price (:obj:`int`): Цена.
  14. media (:obj:`str`): Средство распространения.
  15. offer_id (:obj:`int`): Уникальный идентификатор предложения.
  16. artist_ids (:obj:`list` из :obj:`int`): Перечень уникальный идентификаторов исполнителей.
  17. picture (:obj:`str`, optional): Ссылка на обложку.
  18. client (:obj:`yandex_music.Client`, optional): Клиент Yandex Music.
  19. **kwargs: Произвольные ключевые аргументы полученные от API.
  20. """
  21. url: str
  22. title: str
  23. year: int
  24. price: int
  25. media: str
  26. offer_id: int
  27. artist_ids: List[int]
  28. picture: Optional[str] = None
  29. client: Optional['ClientType'] = None
  30. def __post_init__(self) -> None:
  31. self._id_attrs = (
  32. self.title,
  33. self.price,
  34. self.year,
  35. self.url,
  36. self.price,
  37. self.media,
  38. self.offer_id,
  39. self.artist_ids,
  40. )