добавлены исключения при присутствии в моделях Album, Trak, Artist, Cover поля error (в данном случае сервер отдаёт 200 и от модели возвращается только поле ID)

このコミットが含まれているのは:
Il'ya (Marshal) 2022-02-20 22:44:00 +01:00
コミット 30a101d2f7
4個のファイルの変更18行の追加3行の削除

ファイルの表示

@ -1,6 +1,7 @@
from typing import Any, TYPE_CHECKING, Optional, List, Union
from yandex_music import YandexMusicObject
from yandex_music.exceptions import YandexMusicError
from yandex_music.utils import model
if TYPE_CHECKING:
@ -117,6 +118,9 @@ class Album(YandexMusicObject):
client: Optional['Client'] = None
def __post_init__(self):
if self.error:
raise YandexMusicError(self.error)
self._id_attrs = (self.id,)
def with_tracks(self, *args, **kwargs) -> Optional['Album']:

ファイルの表示

@ -1,6 +1,7 @@
from typing import Any, TYPE_CHECKING, Optional, List, Union
from yandex_music import YandexMusicObject
from yandex_music.exceptions import YandexMusicError
from yandex_music.utils import model
if TYPE_CHECKING:
@ -79,6 +80,9 @@ class Artist(YandexMusicObject):
client: 'Client' = None
def __post_init__(self):
if self.error:
raise YandexMusicError(self.error)
self._id_attrs = (self.id, self.name, self.cover)
def download_og_image(self, filename: str, size: str = '200x200') -> None:

ファイルの表示

@ -1,6 +1,7 @@
from typing import TYPE_CHECKING, Optional, List
from yandex_music import YandexMusicObject
from yandex_music.exceptions import YandexMusicError
from yandex_music.utils import model
if TYPE_CHECKING:
@ -40,6 +41,9 @@ class Cover(YandexMusicObject):
client: Optional['Client'] = None
def __post_init__(self):
if self.error:
raise YandexMusicError(self.error)
self._id_attrs = (self.prefix, self.version, self.uri, self.items_uri)
def download(self, filename: str, index: int = 0, size: str = '200x200') -> None:

ファイルの表示

@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Optional, List, Union
from yandex_music import YandexMusicObject
from yandex_music.utils import model
from yandex_music.exceptions import InvalidBitrateError
from yandex_music.exceptions import InvalidBitrateError, YandexMusicError
if TYPE_CHECKING:
from yandex_music import (
@ -70,10 +70,10 @@ class Track(YandexMusicObject):
preview_duration_ms (:obj:`int`, optional): TODO.
available_full_without_permission (:obj:`bool`, optional): Доступен ли без подписки.
version (:obj:`str`, optional): Версия.
remember_position (:obj:`bool`, optional): Если :obj:`True`, то запоминатся последняя позиция прослушивания,
remember_position (:obj:`bool`, optional): Если :obj:`True`, то запоминается последняя позиция прослушивания,
иначе позиция не запоминается.
background_video_uri (:obj:`str`, optional): Ссылка на видеошот.
short_description (:obj:`str`, optional): Краткое опсание эпизода подкаста.
short_description (:obj:`str`, optional): Краткое описание эпизода подкаста.
is_suitable_for_children (:obj:`bool`, optional): Подходит ли для детей TODO.
client (:obj:`yandex_music.Client`): Клиент Yandex Music.
"""
@ -119,6 +119,9 @@ class Track(YandexMusicObject):
client: Optional['Client'] = None
def __post_init__(self):
if self.error:
raise YandexMusicError(self.error)
self.download_info = None
self._id_attrs = (self.id,)