diff --git a/yandex_music/account/account.py b/yandex_music/account/account.py index 93ef80d..2d543a7 100644 --- a/yandex_music/account/account.py +++ b/yandex_music/account/account.py @@ -62,8 +62,6 @@ class Account(YandexMusicObject): has_info_for_app_metrica: bool = False, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.now = now self.service_available = service_available @@ -85,6 +83,8 @@ class Account(YandexMusicObject): if self.uid: self._id_attrs = (self.uid,) + super().handle_unknown_kwargs(self, **kwargs) + def download_avatar(self, filename: str, format_: str = 'normal') -> None: """Загрузка изображения пользователя. diff --git a/yandex_music/account/auto_renewable.py b/yandex_music/account/auto_renewable.py index 2b0572b..067b3c0 100644 --- a/yandex_music/account/auto_renewable.py +++ b/yandex_music/account/auto_renewable.py @@ -41,8 +41,6 @@ class AutoRenewable(YandexMusicObject): order_id: Optional[int] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.expires = expires self.vendor = vendor self.vendor_help_url = vendor_help_url @@ -55,6 +53,8 @@ class AutoRenewable(YandexMusicObject): self.client = client self._id_attrs = (self.expires, self.vendor, self.vendor_help_url, self.product, self.finished) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['AutoRenewable']: """Десериализация объекта. diff --git a/yandex_music/account/passport_phone.py b/yandex_music/account/passport_phone.py index d6e5611..d049b68 100644 --- a/yandex_music/account/passport_phone.py +++ b/yandex_music/account/passport_phone.py @@ -23,13 +23,13 @@ class PassportPhone(YandexMusicObject): phone: str, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.phone = phone self.client = client self._id_attrs = (self.phone,) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['PassportPhone']: """Десериализация объекта. diff --git a/yandex_music/account/permissions.py b/yandex_music/account/permissions.py index a4b42d8..bf2a388 100644 --- a/yandex_music/account/permissions.py +++ b/yandex_music/account/permissions.py @@ -29,8 +29,6 @@ class Permissions(YandexMusicObject): default: List[str], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.until = until self.values = values self.default = default @@ -38,6 +36,8 @@ class Permissions(YandexMusicObject): self.client = client self._id_attrs = (self.until, self.values, self.default) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Permissions']: """Десериализация объекта. diff --git a/yandex_music/account/plus.py b/yandex_music/account/plus.py index e6e8312..c44a660 100644 --- a/yandex_music/account/plus.py +++ b/yandex_music/account/plus.py @@ -26,14 +26,14 @@ class Plus(YandexMusicObject): is_tutorial_completed: bool, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.has_plus = has_plus self.is_tutorial_completed = is_tutorial_completed self.client = client self._id_attrs = (self.has_plus, self.is_tutorial_completed) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Plus']: """Десериализация объекта. diff --git a/yandex_music/account/price.py b/yandex_music/account/price.py index d990c2f..7b1b90a 100644 --- a/yandex_music/account/price.py +++ b/yandex_music/account/price.py @@ -26,14 +26,14 @@ class Price(YandexMusicObject): currency: str, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.amount = amount self.currency = currency self.client = client self._id_attrs = (self.amount, self.currency) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Price']: """Десериализация объекта. diff --git a/yandex_music/account/product.py b/yandex_music/account/product.py index 678c2c5..ff4d9eb 100644 --- a/yandex_music/account/product.py +++ b/yandex_music/account/product.py @@ -71,8 +71,6 @@ class Product(YandexMusicObject): payment_method_types: List[str] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.product_id = product_id self.type = type_ self.common_period_duration = common_period_duration @@ -96,6 +94,8 @@ class Product(YandexMusicObject): self._id_attrs = (self.product_id, self.type, self.common_period_duration, self.duration, self.trial_duration, self.product_id, self.feature, self.debug) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Product']: """Десериализация объекта. diff --git a/yandex_music/account/renewable_remainder.py b/yandex_music/account/renewable_remainder.py index 3442524..570cd23 100644 --- a/yandex_music/account/renewable_remainder.py +++ b/yandex_music/account/renewable_remainder.py @@ -23,13 +23,13 @@ class RenewableRemainder(YandexMusicObject): days: int, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.days = days self.client = client self._id_attrs = (self.days,) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['RenewableRemainder']: """Десериализация объекта. diff --git a/yandex_music/account/status.py b/yandex_music/account/status.py index e5b5732..dbac36e 100644 --- a/yandex_music/account/status.py +++ b/yandex_music/account/status.py @@ -56,8 +56,6 @@ class Status(YandexMusicObject): premium_region: Optional[int] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.account = account self.permissions = permissions self.advertisement = advertisement @@ -75,6 +73,8 @@ class Status(YandexMusicObject): self.client = client self._id_attrs = (self.account, self.permissions, self.advertisement) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Status']: """Десериализация объекта. diff --git a/yandex_music/account/subscription.py b/yandex_music/account/subscription.py index d6bc9e3..a91c7c3 100644 --- a/yandex_music/account/subscription.py +++ b/yandex_music/account/subscription.py @@ -35,8 +35,6 @@ class Subscription(YandexMusicObject): end: Optional[str] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.non_auto_renewable_remainder = non_auto_renewable_remainder self.auto_renewable = auto_renewable self.can_start_trial = can_start_trial @@ -46,6 +44,8 @@ class Subscription(YandexMusicObject): self.client = client self._id_attrs = (self.non_auto_renewable_remainder, self.auto_renewable) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Subscription']: """Десериализация объекта. diff --git a/yandex_music/account/user_settings.py b/yandex_music/account/user_settings.py index d4da62e..6710f67 100644 --- a/yandex_music/account/user_settings.py +++ b/yandex_music/account/user_settings.py @@ -78,8 +78,6 @@ class UserSettings(YandexMusicObject): show_disk_tracks_in_library: Optional[bool] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.uid = uid self.last_fm_scrobbling_enabled = last_fm_scrobbling_enabled self.shuffle_enabled = shuffle_enabled @@ -105,6 +103,8 @@ class UserSettings(YandexMusicObject): self.promos_disabled, self.auto_play_radio, self.ads_disabled, self.disk_enabled, self.show_disk_tracks_in_library) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['UserSettings']: """Десериализация объекта. diff --git a/yandex_music/album/album.py b/yandex_music/album/album.py index 9809b58..b802057 100644 --- a/yandex_music/album/album.py +++ b/yandex_music/album/album.py @@ -106,8 +106,6 @@ class Album(YandexMusicObject): regions=None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.id = id_ self.error = error @@ -141,6 +139,8 @@ class Album(YandexMusicObject): self.client = client self._id_attrs = (self.id,) + super().handle_unknown_kwargs(self, **kwargs) + def with_tracks(self, *args, **kwargs) -> Optional['Album']: """Сокращение для:: diff --git a/yandex_music/album/label.py b/yandex_music/album/label.py index ca0700d..4fe5391 100644 --- a/yandex_music/album/label.py +++ b/yandex_music/album/label.py @@ -25,14 +25,14 @@ class Label(YandexMusicObject): name: str, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.id = id_ self.name = name self.client = client self._id_attrs = (self.id, self.name) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Label']: """Десериализация объекта. diff --git a/yandex_music/album/track_position.py b/yandex_music/album/track_position.py index b243ad2..43d43c3 100644 --- a/yandex_music/album/track_position.py +++ b/yandex_music/album/track_position.py @@ -31,14 +31,14 @@ class TrackPosition(YandexMusicObject): index: int, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.volume = volume self.index = index self.client = client self._id_attrs = (self.volume, self.index) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['TrackPosition']: """Десериализация объекта. diff --git a/yandex_music/artist/artist.py b/yandex_music/artist/artist.py index 35e22b1..a573238 100644 --- a/yandex_music/artist/artist.py +++ b/yandex_music/artist/artist.py @@ -101,8 +101,6 @@ class Artist(YandexMusicObject): end_date: Optional[str] = None, client: 'Client' = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.id = id_ self.reason = reason @@ -137,6 +135,8 @@ class Artist(YandexMusicObject): self.client = client self._id_attrs = (self.id, self.name, self.cover) + super().handle_unknown_kwargs(self, **kwargs) + def download_og_image(self, filename: str, size: str = '200x200') -> None: """Загрузка изображения для Open Graph. diff --git a/yandex_music/artist/artist_albums.py b/yandex_music/artist/artist_albums.py index a71cff8..3516818 100644 --- a/yandex_music/artist/artist_albums.py +++ b/yandex_music/artist/artist_albums.py @@ -26,14 +26,14 @@ class ArtistAlbums(YandexMusicObject): pager: Optional['Pager'], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.albums = albums self.pager = pager self.client = client self._id_attrs = (self.pager, self.albums) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['ArtistAlbums']: """Десериализация объекта. diff --git a/yandex_music/artist/artist_tracks.py b/yandex_music/artist/artist_tracks.py index ff8877e..6a10ab1 100644 --- a/yandex_music/artist/artist_tracks.py +++ b/yandex_music/artist/artist_tracks.py @@ -26,14 +26,14 @@ class ArtistTracks(YandexMusicObject): pager: Optional['Pager'], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.tracks = tracks self.pager = pager self.client = client self._id_attrs = (self.pager, self.tracks) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['ArtistTracks']: """Десериализация объекта. diff --git a/yandex_music/artist/brief_info.py b/yandex_music/artist/brief_info.py index 22f7082..392a73c 100644 --- a/yandex_music/artist/brief_info.py +++ b/yandex_music/artist/brief_info.py @@ -62,8 +62,6 @@ class BriefInfo(YandexMusicObject): tracks_in_chart: List['Chart'] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.artist = artist self.albums = albums self.playlists = playlists @@ -85,6 +83,8 @@ class BriefInfo(YandexMusicObject): self.popular_tracks, self.similar_artists, self.all_covers, self.concerts, self.videos, self.vinyls, self.has_promotions, self.playlist_ids) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['BriefInfo']: """Десериализация объекта. diff --git a/yandex_music/artist/counts.py b/yandex_music/artist/counts.py index 7b71cf4..203b6a8 100644 --- a/yandex_music/artist/counts.py +++ b/yandex_music/artist/counts.py @@ -36,8 +36,6 @@ class Counts(YandexMusicObject): also_tracks: int, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.tracks = tracks self.direct_albums = direct_albums self.also_albums = also_albums @@ -46,6 +44,8 @@ class Counts(YandexMusicObject): self.client = client self._id_attrs = (self.tracks, self.direct_albums, self.also_albums, self.also_tracks) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Counts']: """Десериализация объекта. diff --git a/yandex_music/artist/description.py b/yandex_music/artist/description.py index a3d4fb5..7accd30 100644 --- a/yandex_music/artist/description.py +++ b/yandex_music/artist/description.py @@ -30,8 +30,6 @@ class Description(YandexMusicObject): uri: str, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.text = text self.uri = uri @@ -39,6 +37,8 @@ class Description(YandexMusicObject): self.client = client self._id_attrs = (self.text, self.uri) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Description']: """Десериализация объекта. diff --git a/yandex_music/artist/link.py b/yandex_music/artist/link.py index 3370485..e88a80e 100644 --- a/yandex_music/artist/link.py +++ b/yandex_music/artist/link.py @@ -34,8 +34,6 @@ class Link(YandexMusicObject): social_network: Optional[str] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.title = title self.href = href self.type = type_ @@ -45,6 +43,8 @@ class Link(YandexMusicObject): self.client = client self._id_attrs = (self.title, self.href, self.type) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Link']: """Десериализация объекта. diff --git a/yandex_music/artist/ratings.py b/yandex_music/artist/ratings.py index cbc287f..6bf09ea 100644 --- a/yandex_music/artist/ratings.py +++ b/yandex_music/artist/ratings.py @@ -29,8 +29,6 @@ class Ratings(YandexMusicObject): day: Optional[int] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.week = week self.month = month @@ -39,6 +37,8 @@ class Ratings(YandexMusicObject): self.client = client self._id_attrs = (self.week, self.month) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Ratings']: """Десериализация объекта. diff --git a/yandex_music/artist/vinyl.py b/yandex_music/artist/vinyl.py index 84ab9f5..7540a62 100644 --- a/yandex_music/artist/vinyl.py +++ b/yandex_music/artist/vinyl.py @@ -44,8 +44,6 @@ class Vinyl(YandexMusicObject): picture: Optional[str] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.url = url self.picture = picture self.title = title @@ -59,6 +57,8 @@ class Vinyl(YandexMusicObject): self._id_attrs = (self.title, self.price, self.year, self.url, self.price, self.media, self.offer_id, self.artist_ids) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Vinyl']: """Десериализация объекта. diff --git a/yandex_music/base.py b/yandex_music/base.py index 06c305f..ed84454 100644 --- a/yandex_music/base.py +++ b/yandex_music/base.py @@ -35,7 +35,7 @@ class YandexMusicObject: @staticmethod def handle_unknown_kwargs(obj, **kwargs): - if kwargs: + if kwargs and obj.client.report_new_fields: logger.warning(f'Found unknown fields received from API! Please copy warn message ' f'and send to {new_issue_by_template_url} (github issue), thank you!') logger.warning(f'Type: {type(obj)}; kwargs: {kwargs}') diff --git a/yandex_music/client.py b/yandex_music/client.py index 02ff5f7..916166a 100644 --- a/yandex_music/client.py +++ b/yandex_music/client.py @@ -54,6 +54,7 @@ class Client(YandexMusicObject): base_url (:obj:`str`): Ссылка на API Yandex Music. oauth_url (:obj:`str`): Ссылка на OAuth Yandex Music. me (:obj:`yandex_music.Status`): Информация об аккаунте. + report_new_fields (:obj:`bool`): Включены ли сообщения о новых полях от API, которых нет в библиотеке. Args: token (:obj:`str`, optional): Уникальный ключ для аутентификации. @@ -62,10 +63,11 @@ class Client(YandexMusicObject): oauth_url (:obj:`str`, optional): Ссылка на OAuth Yandex Music. request (:obj:`yandex_music.utils.request.Request`, optional): Пре-инициализация :class:`yandex_music.utils.request.Request`. + report_new_fields (:obj:`bool`, optional): Включить сообщения о новых полях от API, которых нет в библиотеке. """ def __init__(self, token: str = None, fetch_account_status: bool = True, base_url: str = None, - oauth_url: str = None, request: Request = None) -> None: + oauth_url: str = None, request: Request = None, report_new_fields=False) -> None: self.logger = logging.getLogger(__name__) self.token = token @@ -87,6 +89,8 @@ class Client(YandexMusicObject): if fetch_account_status: self.me = self.account_status() + self.report_new_fields = report_new_fields + @classmethod def from_credentials(cls, username: str, password: str, x_captcha_answer: str = None, x_captcha_key: str = None, captcha_callback: Callable[[Captcha], str] = None, *args, **kwargs) -> 'Client': @@ -435,7 +439,7 @@ class Client(YandexMusicObject): url = f'{self.base_url}/landing3' - result = self._request.get(url, {'blocks': blocks}, timeout=timeout, *args, **kwargs) + result = self._request.get(url, {'blocks': blocks, 'eitherUserId': '10254713668400548221'}, timeout=timeout, *args, **kwargs) return Landing.de_json(result, self) diff --git a/yandex_music/cover.py b/yandex_music/cover.py index ac5f63c..739d787 100644 --- a/yandex_music/cover.py +++ b/yandex_music/cover.py @@ -47,8 +47,6 @@ class Cover(YandexMusicObject): error: Optional[str] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.type = type_ self.uri = uri self.items_uri = items_uri @@ -62,6 +60,8 @@ class Cover(YandexMusicObject): self.client = client self._id_attrs = (self.prefix, self.version, self.uri, self.items_uri) + super().handle_unknown_kwargs(self, **kwargs) + def download(self, filename: str, index: int = 0, size: str = '200x200') -> None: """Загрузка обложки. diff --git a/yandex_music/download_info.py b/yandex_music/download_info.py index 3e574fc..e093729 100644 --- a/yandex_music/download_info.py +++ b/yandex_music/download_info.py @@ -51,6 +51,8 @@ class DownloadInfo(YandexMusicObject): self.client = client self._id_attrs = (self.codec, self.bitrate_in_kbps, self.gain, self.preview, self.download_info_url) + super().handle_unknown_kwargs(self, **kwargs) + @staticmethod def _get_text_node_data(elements: 'NodeList') -> str: """:obj:`str`: Получение текстовой информации из узлов XML элемента.""" diff --git a/yandex_music/feed/album_event.py b/yandex_music/feed/album_event.py index 1a30448..d027a2f 100644 --- a/yandex_music/feed/album_event.py +++ b/yandex_music/feed/album_event.py @@ -26,14 +26,14 @@ class AlbumEvent(YandexMusicObject): tracks: List['Track'], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.album = album self.tracks = tracks self.client = client self._id_attrs = (self.album, self.tracks) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['AlbumEvent']: """Десериализация объекта. diff --git a/yandex_music/feed/artist_event.py b/yandex_music/feed/artist_event.py index 46fcad4..632eda4 100644 --- a/yandex_music/feed/artist_event.py +++ b/yandex_music/feed/artist_event.py @@ -29,8 +29,6 @@ class ArtistEvent(YandexMusicObject): similar_to_artists_from_history: List['Artist'], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.artist = artist self.tracks = tracks self.similar_to_artists_from_history = similar_to_artists_from_history @@ -38,6 +36,8 @@ class ArtistEvent(YandexMusicObject): self.client = client self._id_attrs = (self.artist, self.tracks, self.similar_to_artists_from_history) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['ArtistEvent']: """Десериализация объекта. diff --git a/yandex_music/feed/day.py b/yandex_music/feed/day.py index 51bda6a..95e4668 100644 --- a/yandex_music/feed/day.py +++ b/yandex_music/feed/day.py @@ -32,8 +32,6 @@ class Day(YandexMusicObject): tracks_to_play: List['Track'], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.day = day self.events = events self.tracks_to_play_with_ads = tracks_to_play_with_ads @@ -42,6 +40,8 @@ class Day(YandexMusicObject): self.client = client self._id_attrs = (self.day, self.events, self.tracks_to_play_with_ads, self.tracks_to_play) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Day']: """Десериализация объекта. diff --git a/yandex_music/feed/event.py b/yandex_music/feed/event.py index 42e0a10..3ee3ca8 100644 --- a/yandex_music/feed/event.py +++ b/yandex_music/feed/event.py @@ -60,8 +60,6 @@ class Event(YandexMusicObject): tracks_count: Optional[int] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.id = id_ self.type = type_ @@ -77,6 +75,8 @@ class Event(YandexMusicObject): self.client = client self._id_attrs = (self.id, self.type) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Event']: """Десериализация объекта. diff --git a/yandex_music/feed/feed.py b/yandex_music/feed/feed.py index c8f2a66..12d62b6 100644 --- a/yandex_music/feed/feed.py +++ b/yandex_music/feed/feed.py @@ -47,8 +47,6 @@ class Feed(YandexMusicObject): next_revision: Optional[str] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.can_get_more_events = can_get_more_events self.pumpkin = pumpkin self.is_wizard_passed = is_wizard_passed @@ -62,6 +60,8 @@ class Feed(YandexMusicObject): self.client = client self._id_attrs = (self.can_get_more_events, self.generated_playlists, self.headlines, self.today, self.days) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Feed']: """Десериализация объекта. diff --git a/yandex_music/feed/generated_playlist.py b/yandex_music/feed/generated_playlist.py index 466881b..daa0985 100644 --- a/yandex_music/feed/generated_playlist.py +++ b/yandex_music/feed/generated_playlist.py @@ -36,8 +36,6 @@ class GeneratedPlaylist(YandexMusicObject): data: Optional['Playlist'], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.type = type_ self.ready = ready self.notify = notify @@ -46,6 +44,8 @@ class GeneratedPlaylist(YandexMusicObject): self.client = client self._id_attrs = (self.type, self.ready, self.notify, self.data) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['GeneratedPlaylist']: """Десериализация объекта. diff --git a/yandex_music/feed/track_with_ads.py b/yandex_music/feed/track_with_ads.py index 3545186..bf92806 100644 --- a/yandex_music/feed/track_with_ads.py +++ b/yandex_music/feed/track_with_ads.py @@ -29,14 +29,14 @@ class TrackWithAds(YandexMusicObject): track: Optional['Track'], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.type = type_ self.track = track self.client = client self._id_attrs = (self.type, self.track) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['TrackWithAds']: """Десериализация объекта. diff --git a/yandex_music/genre/genre.py b/yandex_music/genre/genre.py index 6eba89e..680bdfd 100644 --- a/yandex_music/genre/genre.py +++ b/yandex_music/genre/genre.py @@ -59,8 +59,6 @@ class Genre(YandexMusicObject): hide_in_regions=None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.id = id_ self.weight = weight self.composer_top = composer_top @@ -79,6 +77,8 @@ class Genre(YandexMusicObject): self.client = client self._id_attrs = (self.id, self.weight, self.composer_top, self.title, self.images, self.show_in_menu) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Genre']: """Десериализация объекта. diff --git a/yandex_music/genre/images.py b/yandex_music/genre/images.py index fe7c3c4..833dd3b 100644 --- a/yandex_music/genre/images.py +++ b/yandex_music/genre/images.py @@ -26,13 +26,13 @@ class Images(YandexMusicObject): _300x300: Optional[str] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self._208x208 = _208x208 self._300x300 = _300x300 self.client = client + super().handle_unknown_kwargs(self, **kwargs) + def download_208x208(self, filename: str) -> None: """Загрузка изображения 208x208. diff --git a/yandex_music/genre/title.py b/yandex_music/genre/title.py index 6db0617..74e8cee 100644 --- a/yandex_music/genre/title.py +++ b/yandex_music/genre/title.py @@ -26,14 +26,14 @@ class Title(YandexMusicObject): full_title: Optional[str] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.title = title self.full_title = full_title self.client = client self._id_attrs = (self.title, self.full_title) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Title']: """Десериализация объекта. diff --git a/yandex_music/icon.py b/yandex_music/icon.py index b552f76..bca5c64 100644 --- a/yandex_music/icon.py +++ b/yandex_music/icon.py @@ -32,6 +32,8 @@ class Icon(YandexMusicObject): self.client = client self._id_attrs = (self.background_color, self.image_url) + super().handle_unknown_kwargs(self, **kwargs) + def download(self, filename: str, size: str = '200x200') -> None: """Загрузка иконки. diff --git a/yandex_music/invocation_info.py b/yandex_music/invocation_info.py index 4a22d25..3bea8c5 100644 --- a/yandex_music/invocation_info.py +++ b/yandex_music/invocation_info.py @@ -37,6 +37,8 @@ class InvocationInfo(YandexMusicObject): self.client = client self._id_attrs = (self.hostname, self.req_id) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['InvocationInfo']: """Десериализация объекта. diff --git a/yandex_music/landing/block.py b/yandex_music/landing/block.py index bab1205..6ab6f7b 100644 --- a/yandex_music/landing/block.py +++ b/yandex_music/landing/block.py @@ -46,8 +46,6 @@ class Block(YandexMusicObject): data: Optional[Union['PersonalPlaylistsData', 'PlayContextsData']] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.id = id_ self.type = type_ self.type_for_from = type_for_from @@ -60,6 +58,8 @@ class Block(YandexMusicObject): self.client = client self._id_attrs = (self.id, self.type, self.type_for_from, self.title, self.entities) + super().handle_unknown_kwargs(self, **kwargs) + def __getitem__(self, item: int) -> 'BlockEntity': return self.entities[item] diff --git a/yandex_music/landing/block_entity.py b/yandex_music/landing/block_entity.py index 1caec90..a51fc73 100644 --- a/yandex_music/landing/block_entity.py +++ b/yandex_music/landing/block_entity.py @@ -46,8 +46,6 @@ class BlockEntity(YandexMusicObject): 'Playlist', 'ChartItem', 'PlayContext', 'MixLink']], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.id = id_ self.type = type_ self.data = data @@ -55,6 +53,8 @@ class BlockEntity(YandexMusicObject): self.client = client self._id_attrs = (self.id, self.type, self.data) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['BlockEntity']: """Десериализация объекта. diff --git a/yandex_music/landing/chart.py b/yandex_music/landing/chart.py index 0285140..83f74bd 100644 --- a/yandex_music/landing/chart.py +++ b/yandex_music/landing/chart.py @@ -38,8 +38,6 @@ class Chart(YandexMusicObject): track_id: Optional['TrackId'] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.position = position self.progress = progress self.listeners = listeners @@ -50,6 +48,8 @@ class Chart(YandexMusicObject): self.client = client self._id_attrs = (self.position, self.progress, self.listeners, self.shift, self.track_id) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Chart']: """Десериализация объекта. diff --git a/yandex_music/landing/chart_info.py b/yandex_music/landing/chart_info.py index 2300bb4..8519818 100644 --- a/yandex_music/landing/chart_info.py +++ b/yandex_music/landing/chart_info.py @@ -38,7 +38,8 @@ class ChartInfo(YandexMusicObject): menu: Optional['ChartInfoMenu'], chart: Optional['Playlist'], chart_description: Optional[str] = None, - client: Optional['Client'] = None): + client: Optional['Client'] = None, + **kwargs): self.id = id_ self.type = type_ self.type_for_from = type_for_from @@ -51,6 +52,8 @@ class ChartInfo(YandexMusicObject): self.client = client self._id_attrs = (id_,) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['ChartInfo']: """Десериализация объекта. diff --git a/yandex_music/landing/chart_info_menu.py b/yandex_music/landing/chart_info_menu.py index f10c4f4..dda3e6b 100644 --- a/yandex_music/landing/chart_info_menu.py +++ b/yandex_music/landing/chart_info_menu.py @@ -18,12 +18,14 @@ class ChartInfoMenu(YandexMusicObject): client (:obj:`yandex_music.Client`, optional): Клиент Yandex Music. """ - def __init__(self, items: List['ChartInfoMenuItem'], client: Optional['Client'] = None): + def __init__(self, items: List['ChartInfoMenuItem'], client: Optional['Client'] = None, **kwargs): self.items = items self.client = client self._id_attrs = (self.items, ) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['ChartInfoMenu']: """Десериализация объекта. diff --git a/yandex_music/landing/chart_info_menu_item.py b/yandex_music/landing/chart_info_menu_item.py index cbc11f6..03f6d96 100644 --- a/yandex_music/landing/chart_info_menu_item.py +++ b/yandex_music/landing/chart_info_menu_item.py @@ -22,7 +22,11 @@ class ChartInfoMenuItem(YandexMusicObject): client (:obj:`yandex_music.Client`, optional): Клиент Yandex Music. """ - def __init__(self, title: str, url: str, selected: Optional[bool] = None, client: Optional['Client'] = None): + def __init__(self, title: str, + url: str, + selected: Optional[bool] = None, + client: Optional['Client'] = None, + **kwargs): self.title = title self.url = url self.selected = selected @@ -30,6 +34,8 @@ class ChartInfoMenuItem(YandexMusicObject): self.client = client self._id_attrs = (url, selected) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['ChartInfoMenuItem']: """Десериализация объекта. diff --git a/yandex_music/landing/chart_item.py b/yandex_music/landing/chart_item.py index afe582b..796c2a1 100644 --- a/yandex_music/landing/chart_item.py +++ b/yandex_music/landing/chart_item.py @@ -26,14 +26,14 @@ class ChartItem(YandexMusicObject): chart: Optional['Chart'], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.track = track self.chart = chart self.client = client self._id_attrs = (self.track, self.chart) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['ChartItem']: """Десериализация объекта. diff --git a/yandex_music/landing/landing.py b/yandex_music/landing/landing.py index c7e9dd0..09ea1e3 100644 --- a/yandex_music/landing/landing.py +++ b/yandex_music/landing/landing.py @@ -29,8 +29,6 @@ class Landing(YandexMusicObject): blocks: List['Block'], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.pumpkin = pumpkin self.content_id = content_id self.blocks = blocks @@ -38,6 +36,8 @@ class Landing(YandexMusicObject): self.client = client self._id_attrs = (self.content_id, self.blocks) + super().handle_unknown_kwargs(self, **kwargs) + def __getitem__(self, item): return self.blocks[item] diff --git a/yandex_music/landing/mix_link.py b/yandex_music/landing/mix_link.py index 994f086..1837b45 100644 --- a/yandex_music/landing/mix_link.py +++ b/yandex_music/landing/mix_link.py @@ -46,8 +46,6 @@ class MixLink(YandexMusicObject): cover_white: str, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.title = title self.url = url self.url_scheme = url_scheme @@ -60,6 +58,8 @@ class MixLink(YandexMusicObject): self._id_attrs = (self.url, self.title, self.url_scheme, self.text_color, self.background_color, self.background_image_uri, self.cover_white) + super().handle_unknown_kwargs(self, **kwargs) + def download_background_image(self, filename: str, size: str = '200x200') -> None: """Загрузка заднего фона. diff --git a/yandex_music/landing/personal_playlists_data.py b/yandex_music/landing/personal_playlists_data.py index 9857a91..5e25840 100644 --- a/yandex_music/landing/personal_playlists_data.py +++ b/yandex_music/landing/personal_playlists_data.py @@ -23,13 +23,13 @@ class PersonalPlaylistsData(YandexMusicObject): is_wizard_passed: bool, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.is_wizard_passed = is_wizard_passed self.client = client self._id_attrs = (self.is_wizard_passed,) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['PersonalPlaylistsData']: """Десериализация объекта. diff --git a/yandex_music/landing/play_context.py b/yandex_music/landing/play_context.py index 16846fe..4f3fb72 100644 --- a/yandex_music/landing/play_context.py +++ b/yandex_music/landing/play_context.py @@ -39,8 +39,6 @@ class PlayContext(YandexMusicObject): tracks: List['TrackShortOld'], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.client_ = client_ self.context = context self.context_item = context_item @@ -49,6 +47,8 @@ class PlayContext(YandexMusicObject): self.client = client self._id_attrs = (self.client_, self.context_item, self.context_item, self.tracks) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['PlayContext']: """Десериализация объекта. diff --git a/yandex_music/landing/play_contexts_data.py b/yandex_music/landing/play_contexts_data.py index 73bf47d..bb1a087 100644 --- a/yandex_music/landing/play_contexts_data.py +++ b/yandex_music/landing/play_contexts_data.py @@ -23,13 +23,13 @@ class PlayContextsData(YandexMusicObject): other_tracks: List['TrackShortOld'], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.other_tracks = other_tracks self.client = client self._id_attrs = (self.other_tracks,) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['PlayContextsData']: """Десериализация объекта. diff --git a/yandex_music/landing/promotion.py b/yandex_music/landing/promotion.py index 6e58e1f..238d6aa 100644 --- a/yandex_music/landing/promotion.py +++ b/yandex_music/landing/promotion.py @@ -52,8 +52,6 @@ class Promotion(YandexMusicObject): image: str, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.promo_id = promo_id self.title = title self.subtitle = subtitle @@ -68,6 +66,8 @@ class Promotion(YandexMusicObject): self._id_attrs = (self.promo_id, self.title, self.subtitle, self.heading, self.url, self.url_scheme, self.text_color, self.gradient, self.image) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Promotion']: """Десериализация объекта. diff --git a/yandex_music/landing/track_id.py b/yandex_music/landing/track_id.py index 50735a5..9af1132 100644 --- a/yandex_music/landing/track_id.py +++ b/yandex_music/landing/track_id.py @@ -26,14 +26,14 @@ class TrackId(YandexMusicObject): album_id: Optional[int] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.id = id_ self.album_id = album_id self.client = client self._id_attrs = (self.id, self.album_id) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['TrackId']: """Десериализация объекта. diff --git a/yandex_music/landing/track_short_old.py b/yandex_music/landing/track_short_old.py index 882e512..5596d57 100644 --- a/yandex_music/landing/track_short_old.py +++ b/yandex_music/landing/track_short_old.py @@ -31,14 +31,14 @@ class TrackShortOld(YandexMusicObject): timestamp: str, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.track_id = track_id self.timestamp = timestamp self.client = client self._id_attrs = (self.track_id,) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['TrackShortOld']: """Десериализация объекта. diff --git a/yandex_music/like.py b/yandex_music/like.py index 145b57e..8441204 100644 --- a/yandex_music/like.py +++ b/yandex_music/like.py @@ -47,8 +47,6 @@ class Like(YandexMusicObject): playlist: Optional['Playlist'] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.id = id_ self.type = type_ @@ -60,6 +58,8 @@ class Like(YandexMusicObject): self.client = client self._id_attrs = (self.id, self.type, self.timestamp, self.album, self.artist, self.playlist) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client', type_: str = None) -> Optional['Like']: """Десериализация объекта. diff --git a/yandex_music/pager.py b/yandex_music/pager.py index e9a0f55..dffc8ed 100644 --- a/yandex_music/pager.py +++ b/yandex_music/pager.py @@ -36,6 +36,8 @@ class Pager(YandexMusicObject): self.client = client self._id_attrs = (self.total, self.page, self.per_page) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Pager']: """Десериализация объекта. diff --git a/yandex_music/permission_alerts.py b/yandex_music/permission_alerts.py index 61e787d..a823214 100644 --- a/yandex_music/permission_alerts.py +++ b/yandex_music/permission_alerts.py @@ -27,6 +27,8 @@ class PermissionAlerts(YandexMusicObject): self.client = client + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['PermissionAlerts']: """Десериализация объекта. diff --git a/yandex_music/playlist/case_forms.py b/yandex_music/playlist/case_forms.py index aac36fb..8830d5a 100644 --- a/yandex_music/playlist/case_forms.py +++ b/yandex_music/playlist/case_forms.py @@ -38,8 +38,6 @@ class CaseForms(YandexMusicObject): prepositional: str, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.nominative = nominative self.genitive = genitive self.dative = dative @@ -51,6 +49,8 @@ class CaseForms(YandexMusicObject): self._id_attrs = (self.nominative, self.genitive, self.dative, self.accusative, self.instrumental, self.prepositional) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['CaseForms']: """Десериализация объекта. diff --git a/yandex_music/playlist/made_for.py b/yandex_music/playlist/made_for.py index 61201ce..4f55cca 100644 --- a/yandex_music/playlist/made_for.py +++ b/yandex_music/playlist/made_for.py @@ -26,14 +26,14 @@ class MadeFor(YandexMusicObject): case_forms: Optional['CaseForms'], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.user_info = user_info self.case_forms = case_forms self.client = client self._id_attrs = (self.user_info, self.case_forms) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['MadeFor']: """Десериализация объекта. diff --git a/yandex_music/playlist/play_counter.py b/yandex_music/playlist/play_counter.py index 718d3f9..3013912 100644 --- a/yandex_music/playlist/play_counter.py +++ b/yandex_music/playlist/play_counter.py @@ -33,8 +33,6 @@ class PlayCounter(YandexMusicObject): updated: bool, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.value = value self.description = description self.updated = updated @@ -42,6 +40,8 @@ class PlayCounter(YandexMusicObject): self.client = client self._id_attrs = (self.value, self.description, self.updated) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['PlayCounter']: """Десериализация объекта. diff --git a/yandex_music/playlist/playlist.py b/yandex_music/playlist/playlist.py index f090719..d5f7848 100644 --- a/yandex_music/playlist/playlist.py +++ b/yandex_music/playlist/playlist.py @@ -123,8 +123,6 @@ class Playlist(YandexMusicObject): regions=None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.owner = owner self.cover = cover self.made_for = made_for @@ -161,6 +159,8 @@ class Playlist(YandexMusicObject): self.client = client self._id_attrs = (self.uid, self.kind, self.title, self.playlist_absence) + super().handle_unknown_kwargs(self, **kwargs) + @property def is_mine(self) -> bool: return self.owner.uid == self.client.me.account.uid diff --git a/yandex_music/playlist/playlist_absence.py b/yandex_music/playlist/playlist_absence.py index 642b23d..5bfd041 100644 --- a/yandex_music/playlist/playlist_absence.py +++ b/yandex_music/playlist/playlist_absence.py @@ -26,14 +26,14 @@ class PlaylistAbsence(YandexMusicObject): reason: str, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.kind = kind self.reason = reason self.client = client self._id_attrs = (self.kind, self.reason) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['PlaylistAbsence']: """Десериализация объекта. diff --git a/yandex_music/playlist/playlist_id.py b/yandex_music/playlist/playlist_id.py index 754b56a..0cda191 100644 --- a/yandex_music/playlist/playlist_id.py +++ b/yandex_music/playlist/playlist_id.py @@ -26,14 +26,14 @@ class PlaylistId(YandexMusicObject): kind: int, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.uid = uid self.kind = kind self.client = client self._id_attrs = (self.uid, self.kind) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['PlaylistId']: """Десериализация объекта. diff --git a/yandex_music/playlist/playlist_recommendation.py b/yandex_music/playlist/playlist_recommendation.py index e6dffc7..c473c82 100644 --- a/yandex_music/playlist/playlist_recommendation.py +++ b/yandex_music/playlist/playlist_recommendation.py @@ -26,14 +26,14 @@ class PlaylistRecommendations(YandexMusicObject): batch_id: Optional[str] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.batch_id = batch_id self.tracks = tracks self.client = client self._id_attrs = (self.batch_id, self.tracks) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['PlaylistRecommendations']: """Десериализация объекта. diff --git a/yandex_music/playlist/tag.py b/yandex_music/playlist/tag.py index 63a3f5b..1da70ad 100644 --- a/yandex_music/playlist/tag.py +++ b/yandex_music/playlist/tag.py @@ -32,8 +32,6 @@ class Tag(YandexMusicObject): og_description: str, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.id = id_ self.value = value self.name = name @@ -42,6 +40,8 @@ class Tag(YandexMusicObject): self.client = client self._id_attrs = (self.id, ) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Tag']: """Десериализация объекта. diff --git a/yandex_music/playlist/tag_result.py b/yandex_music/playlist/tag_result.py index a2ed833..ef36906 100644 --- a/yandex_music/playlist/tag_result.py +++ b/yandex_music/playlist/tag_result.py @@ -26,14 +26,14 @@ class TagResult(YandexMusicObject): ids: List['PlaylistId'], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.tag = tag self.ids = ids self.client = client self._id_attrs = (self.tag, self.ids) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['TagResult']: """Десериализация объекта. diff --git a/yandex_music/playlist/user.py b/yandex_music/playlist/user.py index be3ba28..f327ce3 100644 --- a/yandex_music/playlist/user.py +++ b/yandex_music/playlist/user.py @@ -35,8 +35,6 @@ class User(YandexMusicObject): verified: bool, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.uid = uid self.login = login self.name = name @@ -46,6 +44,8 @@ class User(YandexMusicObject): self.client = client self._id_attrs = (self.uid, self.login) + super().handle_unknown_kwargs(self, **kwargs) + def download_avatar(self, filename: str, format_: str = 'normal') -> None: """Загрузка изображения пользователя. diff --git a/yandex_music/promo_code_status.py b/yandex_music/promo_code_status.py index f4bdca6..ecbe21b 100644 --- a/yandex_music/promo_code_status.py +++ b/yandex_music/promo_code_status.py @@ -36,6 +36,8 @@ class PromoCodeStatus(YandexMusicObject): self.client = client self._id_attrs = (self.status, self.status_desc, self.account_status) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['PromoCodeStatus']: """Десериализация объекта. diff --git a/yandex_music/rotor/ad_params.py b/yandex_music/rotor/ad_params.py index 88c920c..fb28abb 100644 --- a/yandex_music/rotor/ad_params.py +++ b/yandex_music/rotor/ad_params.py @@ -47,8 +47,6 @@ class AdParams(YandexMusicObject): genre_name: Optional[str] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.partner_id = partner_id self.category_id = category_id self.page_ref = page_ref @@ -63,6 +61,8 @@ class AdParams(YandexMusicObject): self._id_attrs = (self.partner_id, self.category_id, self.page_ref, self.target_ref, self.other_params, self.ad_volume) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['AdParams']: """Десериализация объекта. diff --git a/yandex_music/rotor/dashboard.py b/yandex_music/rotor/dashboard.py index a372ef8..84b5ea6 100644 --- a/yandex_music/rotor/dashboard.py +++ b/yandex_music/rotor/dashboard.py @@ -31,8 +31,6 @@ class Dashboard(YandexMusicObject): pumpkin: bool, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.dashboard_id = dashboard_id self.stations = stations self.pumpkin = pumpkin @@ -40,6 +38,8 @@ class Dashboard(YandexMusicObject): self.client = client self._id_attrs = (self.dashboard_id, self.stations, self.pumpkin) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Dashboard']: """Десериализация объекта. diff --git a/yandex_music/rotor/discrete_scale.py b/yandex_music/rotor/discrete_scale.py index 102705a..0987f2f 100644 --- a/yandex_music/rotor/discrete_scale.py +++ b/yandex_music/rotor/discrete_scale.py @@ -35,8 +35,6 @@ class DiscreteScale(YandexMusicObject): max_: Optional['Value'], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.type = type_ self.name = name self.min = min_ @@ -45,6 +43,8 @@ class DiscreteScale(YandexMusicObject): self.client = client self._id_attrs = (self.type, self.name, self.min, self.max) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['DiscreteScale']: """Десериализация объекта. diff --git a/yandex_music/rotor/enum.py b/yandex_music/rotor/enum.py index 3444eb8..a48dd0f 100644 --- a/yandex_music/rotor/enum.py +++ b/yandex_music/rotor/enum.py @@ -29,8 +29,6 @@ class Enum(YandexMusicObject): possible_values: List['Value'], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.type = type_ self.name = name self.possible_values = possible_values @@ -38,6 +36,8 @@ class Enum(YandexMusicObject): self.client = client self._id_attrs = (self.type, self.name, self.possible_values) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Enum']: """Десериализация объекта. diff --git a/yandex_music/rotor/id.py b/yandex_music/rotor/id.py index fb28531..fb9fea3 100644 --- a/yandex_music/rotor/id.py +++ b/yandex_music/rotor/id.py @@ -29,14 +29,14 @@ class Id(YandexMusicObject): tag: str, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.type = type_ self.tag = tag self.client = client self._id_attrs = (self.type, self.tag) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Id']: """Десериализация объекта. diff --git a/yandex_music/rotor/restrictions.py b/yandex_music/rotor/restrictions.py index 1bc62e7..5512203 100644 --- a/yandex_music/rotor/restrictions.py +++ b/yandex_music/rotor/restrictions.py @@ -40,8 +40,6 @@ class Restrictions(YandexMusicObject): mood_energy: Optional['Enum'] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.language = language self.diversity = diversity self.mood = mood @@ -51,6 +49,8 @@ class Restrictions(YandexMusicObject): self.client = client self._id_attrs = (self.language, self.diversity) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Restrictions']: """Десериализация объекта. diff --git a/yandex_music/rotor/rotor_settings.py b/yandex_music/rotor/rotor_settings.py index 4b538d4..c0b9f8f 100644 --- a/yandex_music/rotor/rotor_settings.py +++ b/yandex_music/rotor/rotor_settings.py @@ -44,8 +44,6 @@ class RotorSettings(YandexMusicObject): mood_energy: Optional[str] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.language = language self.diversity = diversity @@ -56,6 +54,8 @@ class RotorSettings(YandexMusicObject): self.client = client self._id_attrs = (self.language, self.diversity) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['RotorSettings']: """Десериализация объекта. diff --git a/yandex_music/rotor/sequence.py b/yandex_music/rotor/sequence.py index a862d37..93e733c 100644 --- a/yandex_music/rotor/sequence.py +++ b/yandex_music/rotor/sequence.py @@ -32,8 +32,6 @@ class Sequence(YandexMusicObject): liked: bool, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.type = type_ self.track = track self.liked = liked @@ -41,6 +39,8 @@ class Sequence(YandexMusicObject): self.client = client self._id_attrs = (self.type, self.track, self.liked) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Sequence']: """Десериализация объекта. diff --git a/yandex_music/rotor/station.py b/yandex_music/rotor/station.py index b483157..cad1e12 100644 --- a/yandex_music/rotor/station.py +++ b/yandex_music/rotor/station.py @@ -51,8 +51,6 @@ class Station(YandexMusicObject): parent_id: Optional['Id'] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.id = id_ self.name = name self.icon = icon @@ -68,6 +66,8 @@ class Station(YandexMusicObject): self._id_attrs = (self.id, self.name, self.icon, self.mts_icon, self.geocell_icon, self.id_for_from, self.restrictions, self.restrictions2) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Station']: """Десериализация объекта. diff --git a/yandex_music/rotor/station_result.py b/yandex_music/rotor/station_result.py index cb3fabe..2294435 100644 --- a/yandex_music/rotor/station_result.py +++ b/yandex_music/rotor/station_result.py @@ -38,8 +38,6 @@ class StationResult(YandexMusicObject): prerolls: Optional[list] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.station = station self.settings = settings self.settings2 = settings2 @@ -50,6 +48,8 @@ class StationResult(YandexMusicObject): self.client = client self._id_attrs = (self.station, self.settings, self.settings2, self.ad_params) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['StationResult']: """Десериализация объекта. diff --git a/yandex_music/rotor/station_tracks_result.py b/yandex_music/rotor/station_tracks_result.py index 5ae6d3a..9cdcdce 100644 --- a/yandex_music/rotor/station_tracks_result.py +++ b/yandex_music/rotor/station_tracks_result.py @@ -32,8 +32,6 @@ class StationTracksResult(YandexMusicObject): pumpkin: bool, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.id = id_ self.sequence = sequence self.batch_id = batch_id @@ -42,6 +40,8 @@ class StationTracksResult(YandexMusicObject): self.client = client self._id_attrs = (self.id, self.sequence, self.batch_id, self.pumpkin) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data, client) -> Optional['StationTracksResult']: """Десериализация объекта. diff --git a/yandex_music/rotor/value.py b/yandex_music/rotor/value.py index 7b07d4f..bb55f8a 100644 --- a/yandex_music/rotor/value.py +++ b/yandex_music/rotor/value.py @@ -26,14 +26,14 @@ class Value(YandexMusicObject): name: str, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.value = value self.name = name self.client = client self._id_attrs = (self.value, self.name) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Value']: """Десериализация объекта. diff --git a/yandex_music/search/best.py b/yandex_music/search/best.py index 094f854..e13e269 100644 --- a/yandex_music/search/best.py +++ b/yandex_music/search/best.py @@ -40,8 +40,6 @@ class Best(YandexMusicObject): text: Optional[str] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.type = type_ self.result = result @@ -50,6 +48,8 @@ class Best(YandexMusicObject): self.client = client self._id_attrs = (self.type, self.result) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Best']: """Десериализация объекта. diff --git a/yandex_music/search/search.py b/yandex_music/search/search.py index c33df2d..a5f4877 100644 --- a/yandex_music/search/search.py +++ b/yandex_music/search/search.py @@ -50,8 +50,6 @@ class Search(YandexMusicObject): nocorrect: Optional[bool] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.search_request_id = search_request_id self.text = text self.best = best @@ -68,6 +66,8 @@ class Search(YandexMusicObject): self._id_attrs = (self.search_request_id, self.text, self.best, self.albums, self.artists, self.playlists, self.tracks, self.videos) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Search']: """Десериализация объекта. diff --git a/yandex_music/search/search_result.py b/yandex_music/search/search_result.py index 8ecde83..5fca539 100644 --- a/yandex_music/search/search_result.py +++ b/yandex_music/search/search_result.py @@ -49,8 +49,6 @@ class SearchResult(YandexMusicObject): results: List[Union[Track, Artist, Album, Playlist, Video]], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.type = type_ self.total = total self.per_page = per_page @@ -60,6 +58,8 @@ class SearchResult(YandexMusicObject): self.client = client self._id_attrs = (self.total, self.per_page, self.order, self.results) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client', type_: str = None) -> Optional['SearchResult']: """Десериализация объекта. diff --git a/yandex_music/search/suggestions.py b/yandex_music/search/suggestions.py index d7f5393..f9cac3c 100644 --- a/yandex_music/search/suggestions.py +++ b/yandex_music/search/suggestions.py @@ -26,14 +26,14 @@ class Suggestions(YandexMusicObject): suggestions: List[str], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.best = best self.suggestions = suggestions self.client = client self._id_attrs = (self.best, self.suggestions) + super().handle_unknown_kwargs(self, **kwargs) + def __getitem__(self, item): return self.suggestions[item] diff --git a/yandex_music/settings.py b/yandex_music/settings.py index a77173d..dc9d0ea 100644 --- a/yandex_music/settings.py +++ b/yandex_music/settings.py @@ -44,6 +44,8 @@ class Settings(YandexMusicObject): self.client = client self._id_attrs = (self.in_app_products, self.native_products, self.web_payment_url, self.promo_codes_enabled) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Settings']: """Десериализация объекта. diff --git a/yandex_music/shot/shot.py b/yandex_music/shot/shot.py index 7395022..71d2f53 100644 --- a/yandex_music/shot/shot.py +++ b/yandex_music/shot/shot.py @@ -47,6 +47,8 @@ class Shot(YandexMusicObject): self.client = client self._id_attrs = (self.order, self.played, self.shot_data, self.shot_id, self.status) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Shot']: """Десериализация объекта. diff --git a/yandex_music/shot/shot_data.py b/yandex_music/shot/shot_data.py index f72b314..ca35049 100644 --- a/yandex_music/shot/shot_data.py +++ b/yandex_music/shot/shot_data.py @@ -40,6 +40,8 @@ class ShotData(YandexMusicObject): self.client = client self._id_attrs = (self.cover_uri, self.mds_url, self.shot_text, self.shot_type) + super().handle_unknown_kwargs(self, **kwargs) + def download_cover(self, filename: str, size: str = '200x200') -> None: """Загрузка обложки. diff --git a/yandex_music/shot/shot_event.py b/yandex_music/shot/shot_event.py index 3a011a4..1c26d95 100644 --- a/yandex_music/shot/shot_event.py +++ b/yandex_music/shot/shot_event.py @@ -32,6 +32,8 @@ class ShotEvent(YandexMusicObject): self.client = client self._id_attrs = (self.event_id, self.shots) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['ShotEvent']: """Десериализация объекта. diff --git a/yandex_music/shot/shot_type.py b/yandex_music/shot/shot_type.py index 83dbfa0..5dd090f 100644 --- a/yandex_music/shot/shot_type.py +++ b/yandex_music/shot/shot_type.py @@ -32,6 +32,8 @@ class ShotType(YandexMusicObject): self.client = client self._id_attrs = (self.id, self.title) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['ShotType']: """Десериализация объекта. diff --git a/yandex_music/supplement/lyrics.py b/yandex_music/supplement/lyrics.py index 58a6e09..77d1311 100644 --- a/yandex_music/supplement/lyrics.py +++ b/yandex_music/supplement/lyrics.py @@ -38,8 +38,6 @@ class Lyrics(YandexMusicObject): show_translation: bool, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.id = id_ self.lyrics = lyrics self.full_lyrics = full_lyrics @@ -51,6 +49,8 @@ class Lyrics(YandexMusicObject): self._id_attrs = (self.id, self.lyrics, self.full_lyrics, self.has_rights, self.text_language, self.show_translation) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Lyrics']: """Десериализация объекта. diff --git a/yandex_music/supplement/supplement.py b/yandex_music/supplement/supplement.py index c267069..004998d 100644 --- a/yandex_music/supplement/supplement.py +++ b/yandex_music/supplement/supplement.py @@ -32,8 +32,6 @@ class Supplement(YandexMusicObject): radio_is_available: bool, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.id = id_ self.lyrics = lyrics self.videos = videos @@ -42,6 +40,8 @@ class Supplement(YandexMusicObject): self.client = client self._id_attrs = (self.id, self.lyrics, self.videos, self.radio_is_available) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Supplement']: """Десериализация объекта. diff --git a/yandex_music/supplement/video_supplement.py b/yandex_music/supplement/video_supplement.py index cdb3979..4a87d94 100644 --- a/yandex_music/supplement/video_supplement.py +++ b/yandex_music/supplement/video_supplement.py @@ -41,8 +41,6 @@ class VideoSupplement(YandexMusicObject): embed: Optional[str] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.cover = cover self.title = title self.provider = provider @@ -55,6 +53,8 @@ class VideoSupplement(YandexMusicObject): self.client = client self._id_attrs = (self.cover, self.title, self.provider_video_id) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['VideoSupplement']: """Десериализация объекта. diff --git a/yandex_music/track/major.py b/yandex_music/track/major.py index 3b69a05..b07a278 100644 --- a/yandex_music/track/major.py +++ b/yandex_music/track/major.py @@ -26,14 +26,14 @@ class Major(YandexMusicObject): name: str, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.id = id_ self.name = name self.client = client self._id_attrs = (self.id, self.name) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Major']: """Десериализация объекта. diff --git a/yandex_music/track/normalization.py b/yandex_music/track/normalization.py index 4463637..b1d4f27 100644 --- a/yandex_music/track/normalization.py +++ b/yandex_music/track/normalization.py @@ -26,14 +26,14 @@ class Normalization(YandexMusicObject): peak: int, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.gain = gain self.peak = peak self.client = client self._id_attrs = (self.gain, self.peak) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Normalization']: """Десериализация объекта. diff --git a/yandex_music/track/track.py b/yandex_music/track/track.py index c0a0e84..ec2267e 100644 --- a/yandex_music/track/track.py +++ b/yandex_music/track/track.py @@ -105,8 +105,6 @@ class Track(YandexMusicObject): remember_position: Optional[bool] = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.id = id_ self.title = title @@ -140,6 +138,8 @@ class Track(YandexMusicObject): self.client = client self._id_attrs = (self.id,) + super().handle_unknown_kwargs(self, **kwargs) + def get_download_info(self, get_direct_links=False) -> List['DownloadInfo']: """Сокращение для:: diff --git a/yandex_music/track/tracks_similar.py b/yandex_music/track/tracks_similar.py index 58fc340..f87f89b 100644 --- a/yandex_music/track/tracks_similar.py +++ b/yandex_music/track/tracks_similar.py @@ -26,14 +26,14 @@ class SimilarTracks(YandexMusicObject): similar_tracks: List['Track'], client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.track = track self.similar_tracks = similar_tracks self.client = client self._id_attrs = (self.track, self.similar_tracks) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['SimilarTracks']: """Десериализация объекта. diff --git a/yandex_music/track_short.py b/yandex_music/track_short.py index e05d668..4f4551f 100644 --- a/yandex_music/track_short.py +++ b/yandex_music/track_short.py @@ -39,6 +39,8 @@ class TrackShort(YandexMusicObject): self.client = client self._id_attrs = (self.id, self.album_id) + super().handle_unknown_kwargs(self, **kwargs) + @property def track(self) -> 'Track': """:obj:`yandex_music.Track`: Полная версия трека.""" diff --git a/yandex_music/tracks_list.py b/yandex_music/tracks_list.py index f76f61e..ee9556a 100644 --- a/yandex_music/tracks_list.py +++ b/yandex_music/tracks_list.py @@ -36,6 +36,8 @@ class TracksList(YandexMusicObject): self.client = client self._id_attrs = (self.uid, self.tracks) + super().handle_unknown_kwargs(self, **kwargs) + def __getitem__(self, item) -> 'TrackShort': return self.tracks[item] diff --git a/yandex_music/utils/captcha_response.py b/yandex_music/utils/captcha_response.py index dbaf84e..5536ca4 100644 --- a/yandex_music/utils/captcha_response.py +++ b/yandex_music/utils/captcha_response.py @@ -32,8 +32,6 @@ class CaptchaResponse(YandexMusicObject): error, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.x_captcha_url = x_captcha_url self.x_captcha_key = x_captcha_key self.error_description = error_description @@ -42,6 +40,8 @@ class CaptchaResponse(YandexMusicObject): self.client = client self._id_attrs = (self.x_captcha_key, self.x_captcha_url) + super().handle_unknown_kwargs(self, **kwargs) + def download(self, filename=None): """Загрузка изображения с капчей. diff --git a/yandex_music/utils/response.py b/yandex_music/utils/response.py index db9e860..1199408 100644 --- a/yandex_music/utils/response.py +++ b/yandex_music/utils/response.py @@ -41,8 +41,6 @@ class Response(YandexMusicObject): error_description: str = None, client: Optional['Client'] = None, **kwargs) -> None: - super().handle_unknown_kwargs(self, **kwargs) - self.data = data self.invocation_info = invocation_info self._result = result @@ -51,6 +49,8 @@ class Response(YandexMusicObject): self.client = client + super().handle_unknown_kwargs(self, **kwargs) + @property def error(self) -> str: """:obj:`str`: Код ошибки вместе с описанием""" diff --git a/yandex_music/video.py b/yandex_music/video.py index 3772963..80afc40 100644 --- a/yandex_music/video.py +++ b/yandex_music/video.py @@ -72,6 +72,8 @@ class Video(YandexMusicObject): self.client = client self._id_attrs = (self.provider_video_id, self.youtube_url, self.title) + super().handle_unknown_kwargs(self, **kwargs) + @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Video']: """Десериализация объекта.