meta_data.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. from typing import TYPE_CHECKING, 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 MetaData(YandexMusicModel):
  8. """Класс, представляющий метаданные трека.
  9. Attributes:
  10. album (:obj:`str`, optional): Название альбома.
  11. volume (:obj:`int`, optional): Диск (раздел).
  12. year (:obj:`int`, optional): Год выхода.
  13. number (:obj:`int`, optional): Позиция в альбоме.
  14. genre (:obj:`str`, optional): Жанр.
  15. lyricist (:obj:`str`, optional): Текст песни. Есть только у пользовательских треков.
  16. version (:obj:`str`, optional): Версия TODO.
  17. composer (:obj:`str`, optional): Композитор TODO.
  18. client (:obj:`yandex_music.Client`, optional): Клиент Yandex Music.
  19. """
  20. album: Optional[str] = None
  21. volume: Optional[int] = None
  22. year: Optional[int] = None
  23. number: Optional[int] = None
  24. genre: Optional[str] = None
  25. lyricist: Optional[str] = None
  26. version: Optional[str] = None
  27. composer: Optional[str] = None
  28. client: Optional['ClientType'] = None
  29. def __post_init__(self) -> None:
  30. self._id_attrs = (self.album, self.volume, self.year)