Добавлено выключение предупреждения о новом поле от API

このコミットが含まれているのは:
Il`ya Semyonov 2020-05-15 22:14:44 +03:00
コミット 4cc727211f
101個のファイルの変更213行の追加170行の削除

ファイルの表示

@ -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:
"""Загрузка изображения пользователя.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Сокращение для::

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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}')

ファイルの表示

@ -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)

ファイルの表示

@ -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:
"""Загрузка обложки.

ファイルの表示

@ -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 элемента."""

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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:
"""Загрузка иконки.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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]

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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]

ファイルの表示

@ -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:
"""Загрузка заднего фона.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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:
"""Загрузка изображения пользователя.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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]

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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:
"""Загрузка обложки.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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']:
"""Сокращение для::

ファイルの表示

@ -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']:
"""Десериализация объекта.

ファイルの表示

@ -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`: Полная версия трека."""

ファイルの表示

@ -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]

ファイルの表示

@ -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):
"""Загрузка изображения с капчей.

ファイルの表示

@ -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`: Код ошибки вместе с описанием"""

変更されたファイルが多すぎるため、一部のファイルは表示されません さらに表示