Тайп хинты для Label, TrackPosition, Artist, ArtistAlbums, ArtistTracks, BriefInfo, Counts, Description, Link, Ratings, Vinyl, AlbumEvent, ArtistEvent, Day, Event, GeneratedPlaylist, TrackWithAds, Genre, Images, Title
このコミットが含まれているのは:
コミット
510b37bb32
|
@ -17,13 +17,13 @@ class Label(YandexMusicObject):
|
|||
Args:
|
||||
id_ (:obj:`int`): Идентификатор альбома.
|
||||
name (:obj:`str`): Название альбома.
|
||||
client (:obj:`yandex_music.Client`, optional): Объект класса :class:`yandex_music.Client` представляющий клиент
|
||||
Yandex Music.
|
||||
client (:obj:`yandex_music.Client`, optional): Объект класса :class:`yandex_music.Client` представляющий
|
||||
клиент Yandex Music.
|
||||
**kwargs: Произвольные ключевые аргументы полученные от API.
|
||||
"""
|
||||
def __init__(self,
|
||||
id_,
|
||||
name,
|
||||
id_: int,
|
||||
name: str,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
self.id = id_
|
||||
|
@ -33,7 +33,7 @@ class Label(YandexMusicObject):
|
|||
self._id_attrs = (self.id, self.name)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Label']:
|
||||
"""Десериализация объекта.
|
||||
|
||||
Args:
|
||||
|
@ -51,13 +51,13 @@ class Label(YandexMusicObject):
|
|||
return cls(client=client, **data)
|
||||
|
||||
@classmethod
|
||||
def de_list(cls, data: dict, client: 'Client'):
|
||||
def de_list(cls, data: dict, client: 'Client') -> List['Label']:
|
||||
"""Десериализация списка объектов.
|
||||
|
||||
Args:
|
||||
data (:obj:`list`): Список словарей с полями и значениями десериализуемого объекта.
|
||||
client (:obj:`yandex_music.Client`): Объект класса :class:`yandex_music.Client` представляющий клиент Yandex
|
||||
Music.
|
||||
client (:obj:`yandex_music.Client`): Объект класса :class:`yandex_music.Client` представляющий клиент
|
||||
Yandex Music.
|
||||
Returns:
|
||||
:obj:`list` из :obj:`yandex_music.Label`: Список объектов класса :class:`yandex_music.Label`.
|
||||
"""
|
||||
|
|
|
@ -19,7 +19,7 @@ class TrackPosition(YandexMusicObject):
|
|||
self._id_attrs = (self.volume, self.index)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['TrackPosition']:
|
||||
if not data:
|
||||
return None
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from typing import TYPE_CHECKING, Optional, List
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from yandex_music import Client
|
||||
from yandex_music import Client, Cover, Ratings, Counts, Link, Track, Description, ArtistTracks, ArtistAlbums
|
||||
|
||||
from yandex_music import YandexMusicObject
|
||||
|
||||
|
@ -10,23 +10,23 @@ class Artist(YandexMusicObject):
|
|||
def __init__(self,
|
||||
id_,
|
||||
name,
|
||||
cover,
|
||||
cover: Optional['Cover'],
|
||||
various=None,
|
||||
composer=None,
|
||||
genres=None,
|
||||
op_image=None,
|
||||
no_pictures_from_search=None,
|
||||
counts=None,
|
||||
counts: Optional['Counts'] = None,
|
||||
available=None,
|
||||
ratings=None,
|
||||
links=None,
|
||||
ratings: Optional['Ratings'] = None,
|
||||
links: List['Link'] = None,
|
||||
tickets_available=None,
|
||||
likes_count=None,
|
||||
popular_tracks=None,
|
||||
popular_tracks: List['Track'] = None,
|
||||
regions=None,
|
||||
decomposed=None,
|
||||
full_names=None,
|
||||
description=None,
|
||||
description: Optional['Description'] = None,
|
||||
countries=None,
|
||||
en_wikipedia_link=None,
|
||||
db_aliases=None,
|
||||
|
@ -67,7 +67,7 @@ class Artist(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.id, self.name, self.cover)
|
||||
|
||||
def download_op_image(self, filename, size='200x200'):
|
||||
def download_op_image(self, filename: str, size: str = '200x200') -> None:
|
||||
"""Загрузка обложки.
|
||||
|
||||
Используйте это только когда нет self.cover!
|
||||
|
@ -79,28 +79,28 @@ class Artist(YandexMusicObject):
|
|||
|
||||
self.client.request.download(f'https://{self.op_image.replace("%%", size)}', filename)
|
||||
|
||||
def like(self, *args, **kwargs):
|
||||
def like(self, *args, **kwargs) -> bool:
|
||||
"""Сокращение для::
|
||||
|
||||
client.users_likes_artists_add(artist.id, user.id *args, **kwargs)
|
||||
"""
|
||||
return self.client.users_likes_artists_add(self.id, self.client.me.account.uid, *args, **kwargs)
|
||||
|
||||
def dislike(self, *args, **kwargs):
|
||||
def dislike(self, *args, **kwargs) -> bool:
|
||||
"""Сокращение для::
|
||||
|
||||
client.users_likes_artists_remove(artist.id, user.id *args, **kwargs)
|
||||
"""
|
||||
return self.client.users_likes_artists_remove(self.id, self.client.me.account.uid, *args, **kwargs)
|
||||
|
||||
def get_tracks(self, page=0, page_size=20, *args, **kwargs):
|
||||
def get_tracks(self, page=0, page_size=20, *args, **kwargs) -> Optional['ArtistTracks']:
|
||||
"""Сокращение для::
|
||||
|
||||
client.artists_tracks(artist.id, page, page_size, *args, **kwargs)
|
||||
"""
|
||||
return self.client.artists_tracks(self.id, page, page_size, *args, **kwargs)
|
||||
|
||||
def get_albums(self, page=0, page_size=20, sort_by='year', *args, **kwargs):
|
||||
def get_albums(self, page=0, page_size=20, sort_by='year', *args, **kwargs) -> Optional['ArtistAlbums']:
|
||||
"""Сокращение для::
|
||||
|
||||
client.artists_direct_albums(artist.id, page, page_size, sort_by, *args, **kwargs)
|
||||
|
@ -108,7 +108,7 @@ class Artist(YandexMusicObject):
|
|||
return self.client.artists_direct_albums(self.id, page, page_size, sort_by, *args, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Artist']:
|
||||
if not data:
|
||||
return None
|
||||
|
||||
|
@ -125,7 +125,7 @@ class Artist(YandexMusicObject):
|
|||
return cls(client=client, **data)
|
||||
|
||||
@classmethod
|
||||
def de_list(cls, data: dict, client: 'Client'):
|
||||
def de_list(cls, data: dict, client: 'Client') -> List['Artist']:
|
||||
if not data:
|
||||
return []
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from typing import TYPE_CHECKING, Optional, List
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from yandex_music import Client
|
||||
from yandex_music import Client, Album, Pager
|
||||
|
||||
from yandex_music import YandexMusicObject
|
||||
|
||||
|
@ -24,8 +24,8 @@ class ArtistAlbums(YandexMusicObject):
|
|||
"""
|
||||
|
||||
def __init__(self,
|
||||
albums,
|
||||
pager,
|
||||
albums: List['Album'],
|
||||
pager: Optional['Pager'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
self.albums = albums
|
||||
|
@ -35,7 +35,7 @@ class ArtistAlbums(YandexMusicObject):
|
|||
self._id_attrs = (self.pager, self.albums)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['ArtistAlbums']:
|
||||
"""Десериализация объекта.
|
||||
|
||||
Args:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from typing import TYPE_CHECKING, Optional, List
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from yandex_music import Client
|
||||
from yandex_music import Client, Track, Pager
|
||||
|
||||
from yandex_music import YandexMusicObject
|
||||
|
||||
|
@ -24,8 +24,8 @@ class ArtistTracks(YandexMusicObject):
|
|||
"""
|
||||
|
||||
def __init__(self,
|
||||
tracks,
|
||||
pager,
|
||||
tracks: List['Track'],
|
||||
pager: Optional['Pager'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
self.tracks = tracks
|
||||
|
@ -35,7 +35,7 @@ class ArtistTracks(YandexMusicObject):
|
|||
self._id_attrs = (self.pager, self.tracks)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['ArtistTracks']:
|
||||
"""Десериализация объекта.
|
||||
|
||||
Args:
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
from typing import TYPE_CHECKING, Optional, List
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from yandex_music import Client
|
||||
from yandex_music import Client, Artist, Track, Album, Cover, PlaylistId, Video, Chart, Vinyl
|
||||
|
||||
from yandex_music import YandexMusicObject
|
||||
|
||||
|
||||
class BriefInfo(YandexMusicObject):
|
||||
def __init__(self,
|
||||
artist,
|
||||
albums,
|
||||
also_albums,
|
||||
artist: Optional['Artist'],
|
||||
albums: List['Album'],
|
||||
also_albums: List['Album'],
|
||||
last_release_ids,
|
||||
popular_tracks,
|
||||
similar_artists,
|
||||
all_covers,
|
||||
popular_tracks: List['Track'],
|
||||
similar_artists: List['Artist'],
|
||||
all_covers: List['Cover'],
|
||||
concerts,
|
||||
videos,
|
||||
vinyls,
|
||||
videos: List['Video'],
|
||||
vinyls: List['Vinyl'],
|
||||
has_promotions,
|
||||
playlist_ids,
|
||||
tracks_in_chart=None,
|
||||
playlist_ids: List['PlaylistId'],
|
||||
tracks_in_chart: List['Chart'] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
self.artist = artist
|
||||
|
@ -44,7 +44,7 @@ class BriefInfo(YandexMusicObject):
|
|||
self.has_promotions, self.playlist_ids)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['BriefInfo']:
|
||||
"""Десериализация объекта.
|
||||
|
||||
Args:
|
||||
|
|
|
@ -23,7 +23,7 @@ class Counts(YandexMusicObject):
|
|||
self._id_attrs = (self.tracks, self.direct_albums, self.also_albums, self.also_tracks)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Counts']:
|
||||
if not data:
|
||||
return None
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ class Description(YandexMusicObject):
|
|||
self._id_attrs = (self.text, self.url)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Description']:
|
||||
"""Десериализация объекта.
|
||||
|
||||
Args:
|
||||
|
|
|
@ -24,7 +24,7 @@ class Link(YandexMusicObject):
|
|||
self._id_attrs = (self.title, self.href, self.type)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Link']:
|
||||
if not data:
|
||||
return None
|
||||
|
||||
|
@ -33,7 +33,7 @@ class Link(YandexMusicObject):
|
|||
return cls(client=client, **data)
|
||||
|
||||
@classmethod
|
||||
def de_list(cls, data: dict, client: 'Client'):
|
||||
def de_list(cls, data: dict, client: 'Client') -> List['Link']:
|
||||
if not data:
|
||||
return []
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ class Ratings(YandexMusicObject):
|
|||
self._id_attrs = (self.week, self.month)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Ratings']:
|
||||
if not data:
|
||||
return None
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ class Vinyl(YandexMusicObject):
|
|||
self._id_attrs = (self.title, self.price, self.year, self.url, self.price, self.media)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Vinyl']:
|
||||
"""Десериализация объекта.
|
||||
|
||||
Args:
|
||||
|
@ -47,7 +47,7 @@ class Vinyl(YandexMusicObject):
|
|||
return cls(client=client, **data)
|
||||
|
||||
@classmethod
|
||||
def de_list(cls, data: dict, client: 'Client'):
|
||||
def de_list(cls, data: dict, client: 'Client') -> List['Vinyl']:
|
||||
"""Десериализация списка объектов.
|
||||
|
||||
Args:
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
from typing import TYPE_CHECKING, Optional, List
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from yandex_music import Client
|
||||
from yandex_music import Client, Album, Track
|
||||
|
||||
from yandex_music import YandexMusicObject
|
||||
|
||||
|
||||
class AlbumEvent(YandexMusicObject):
|
||||
def __init__(self,
|
||||
album,
|
||||
tracks,
|
||||
album: Optional['Album'],
|
||||
tracks: List['Track'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
self.album = album
|
||||
|
@ -19,7 +19,7 @@ class AlbumEvent(YandexMusicObject):
|
|||
self._id_attrs = (self.album, self.tracks)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['AlbumEvent']:
|
||||
if not data:
|
||||
return None
|
||||
|
||||
|
@ -31,7 +31,7 @@ class AlbumEvent(YandexMusicObject):
|
|||
return cls(client=client, **data)
|
||||
|
||||
@classmethod
|
||||
def de_list(cls, data: dict, client: 'Client'):
|
||||
def de_list(cls, data: dict, client: 'Client') -> List['AlbumEvent']:
|
||||
if not data:
|
||||
return []
|
||||
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
from typing import TYPE_CHECKING, Optional, List
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from yandex_music import Client
|
||||
from yandex_music import Client, Artist, Track
|
||||
|
||||
from yandex_music import YandexMusicObject
|
||||
|
||||
|
||||
class ArtistEvent(YandexMusicObject):
|
||||
def __init__(self,
|
||||
artist,
|
||||
tracks,
|
||||
similar_to_artists_from_history,
|
||||
artist: Optional['Artist'],
|
||||
tracks: List['Track'],
|
||||
similar_to_artists_from_history: List['Artist'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
self.artist = artist
|
||||
|
@ -21,7 +21,7 @@ class ArtistEvent(YandexMusicObject):
|
|||
self._id_attrs = (self.artist, self.tracks, self.similar_to_artists_from_history)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['ArtistEvent']:
|
||||
if not data:
|
||||
return None
|
||||
|
||||
|
@ -34,7 +34,7 @@ class ArtistEvent(YandexMusicObject):
|
|||
return cls(client=client, **data)
|
||||
|
||||
@classmethod
|
||||
def de_list(cls, data: dict, client: 'Client'):
|
||||
def de_list(cls, data: dict, client: 'Client') -> List['ArtistEvent']:
|
||||
if not data:
|
||||
return []
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from typing import TYPE_CHECKING, Optional, List
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from yandex_music import Client
|
||||
from yandex_music import Client, Event, Track, TrackWithAds
|
||||
|
||||
from yandex_music import YandexMusicObject
|
||||
|
||||
|
@ -9,9 +9,9 @@ from yandex_music import YandexMusicObject
|
|||
class Day(YandexMusicObject):
|
||||
def __init__(self,
|
||||
day,
|
||||
events,
|
||||
tracks_to_play_with_ads,
|
||||
tracks_to_play,
|
||||
events: List['Event'],
|
||||
tracks_to_play_with_ads: List['TrackWithAds'],
|
||||
tracks_to_play: List['Track'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
self.day = day
|
||||
|
@ -23,7 +23,7 @@ class Day(YandexMusicObject):
|
|||
self._id_attrs = (self.day, self.events, self.tracks_to_play_with_ads, self.tracks_to_play)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Day']:
|
||||
if not data:
|
||||
return None
|
||||
|
||||
|
@ -36,7 +36,7 @@ class Day(YandexMusicObject):
|
|||
return cls(client=client, **data)
|
||||
|
||||
@classmethod
|
||||
def de_list(cls, data: dict, client: 'Client'):
|
||||
def de_list(cls, data: dict, client: 'Client') -> List['Day']:
|
||||
if not data:
|
||||
return []
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from typing import TYPE_CHECKING, Optional, List
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from yandex_music import Client
|
||||
from yandex_music import Client, Track, AlbumEvent, ArtistEvent
|
||||
|
||||
from yandex_music import YandexMusicObject
|
||||
|
||||
|
@ -12,9 +12,9 @@ class Event(YandexMusicObject):
|
|||
type_,
|
||||
type_for_from=None,
|
||||
title=None,
|
||||
tracks=None,
|
||||
artists=None,
|
||||
albums=None,
|
||||
tracks: List['Track'] = None,
|
||||
artists: List['ArtistEvent'] = None,
|
||||
albums: List['AlbumEvent'] = None,
|
||||
message=None,
|
||||
device=None,
|
||||
tracks_count=None,
|
||||
|
@ -36,7 +36,7 @@ class Event(YandexMusicObject):
|
|||
self._id_attrs = (self.id, self.type)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Event']:
|
||||
if not data:
|
||||
return None
|
||||
|
||||
|
@ -49,7 +49,7 @@ class Event(YandexMusicObject):
|
|||
return cls(client=client, **data)
|
||||
|
||||
@classmethod
|
||||
def de_list(cls, data: dict, client: 'Client'):
|
||||
def de_list(cls, data: dict, client: 'Client') -> List['Event']:
|
||||
if not data:
|
||||
return []
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from typing import TYPE_CHECKING, Optional, List
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from yandex_music import Client
|
||||
from yandex_music import Client, Playlist
|
||||
|
||||
from yandex_music import YandexMusicObject
|
||||
|
||||
|
@ -11,7 +11,7 @@ class GeneratedPlaylist(YandexMusicObject):
|
|||
type_,
|
||||
ready,
|
||||
notify,
|
||||
data,
|
||||
data: Optional['Playlist'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
self.type = type_
|
||||
|
@ -23,7 +23,7 @@ class GeneratedPlaylist(YandexMusicObject):
|
|||
self._id_attrs = (self.type, self.ready, self.notify, self.data)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['GeneratedPlaylist']:
|
||||
if not data:
|
||||
return None
|
||||
|
||||
|
@ -34,7 +34,7 @@ class GeneratedPlaylist(YandexMusicObject):
|
|||
return cls(client=client, **data)
|
||||
|
||||
@classmethod
|
||||
def de_list(cls, data: dict, client: 'Client'):
|
||||
def de_list(cls, data: dict, client: 'Client') -> List['GeneratedPlaylist']:
|
||||
if not data:
|
||||
return []
|
||||
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
from typing import TYPE_CHECKING, Optional, List
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from yandex_music import Client
|
||||
from yandex_music import Client, Track
|
||||
|
||||
from yandex_music import YandexMusicObject
|
||||
|
||||
|
||||
class TrackWithAds(YandexMusicObject):
|
||||
def __init__(self,
|
||||
type_,
|
||||
track,
|
||||
type_: str,
|
||||
track: Optional['Track'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
self.type = type_
|
||||
|
@ -19,7 +19,7 @@ class TrackWithAds(YandexMusicObject):
|
|||
self._id_attrs = (self.type, self.track)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['TrackWithAds']:
|
||||
if not data:
|
||||
return None
|
||||
|
||||
|
@ -30,7 +30,7 @@ class TrackWithAds(YandexMusicObject):
|
|||
return cls(client=client, **data)
|
||||
|
||||
@classmethod
|
||||
def de_list(cls, data: dict, client: 'Client'):
|
||||
def de_list(cls, data: dict, client: 'Client') -> List['TrackWithAds']:
|
||||
if not data:
|
||||
return []
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from typing import TYPE_CHECKING, Optional, List
|
||||
from typing import TYPE_CHECKING, Optional, List, Dict
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from yandex_music import Client
|
||||
from yandex_music import Client, Title, Icon, Images
|
||||
|
||||
from yandex_music import YandexMusicObject
|
||||
|
||||
|
@ -12,14 +12,14 @@ class Genre(YandexMusicObject):
|
|||
weight,
|
||||
composer_top,
|
||||
title,
|
||||
titles,
|
||||
images,
|
||||
titles: Dict[str, Optional['Title']],
|
||||
images: Optional['Images'],
|
||||
show_in_menu,
|
||||
full_title=None,
|
||||
url_part=None,
|
||||
color=None,
|
||||
radio_icon=None,
|
||||
sub_genres=None,
|
||||
radio_icon: Optional['Icon'] = None,
|
||||
sub_genres: List['Genre'] = None,
|
||||
hide_in_regions=None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
|
@ -42,7 +42,7 @@ class Genre(YandexMusicObject):
|
|||
self._id_attrs = (self.id, self.weight, self.composer_top, self.title, self.images, self.show_in_menu)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Genre']:
|
||||
if not data:
|
||||
return None
|
||||
|
||||
|
@ -56,7 +56,7 @@ class Genre(YandexMusicObject):
|
|||
return cls(client=client, **data)
|
||||
|
||||
@classmethod
|
||||
def de_list(cls, data: dict, client: 'Client'):
|
||||
def de_list(cls, data: dict, client: 'Client') -> List['Genre']:
|
||||
if not data:
|
||||
return []
|
||||
|
||||
|
|
|
@ -8,8 +8,8 @@ from yandex_music import YandexMusicObject
|
|||
|
||||
class Images(YandexMusicObject):
|
||||
def __init__(self,
|
||||
_208x208=None,
|
||||
_300x300=None,
|
||||
_208x208: Optional[str] = None,
|
||||
_300x300: Optional[str] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
self._208x208 = _208x208
|
||||
|
@ -17,7 +17,7 @@ class Images(YandexMusicObject):
|
|||
|
||||
self.client = client
|
||||
|
||||
def download_208x208(self, filename):
|
||||
def download_208x208(self, filename: str) -> None:
|
||||
"""Загрузка изображения 208x208.
|
||||
|
||||
Args:
|
||||
|
@ -26,7 +26,7 @@ class Images(YandexMusicObject):
|
|||
|
||||
self.client.request.download(self._208x208, filename)
|
||||
|
||||
def download_300x300(self, filename):
|
||||
def download_300x300(self, filename: str) -> None:
|
||||
"""Загрузка изображения 300x300.
|
||||
|
||||
Args:
|
||||
|
@ -36,7 +36,7 @@ class Images(YandexMusicObject):
|
|||
self.client.request.download(self._300x300, filename)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Images']:
|
||||
if not data:
|
||||
return None
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
from typing import TYPE_CHECKING, Optional
|
||||
from typing import TYPE_CHECKING, Optional, Dict
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from yandex_music import Client
|
||||
|
@ -19,7 +19,7 @@ class Title(YandexMusicObject):
|
|||
self._id_attrs = (self.title, self.full_title)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client'):
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Title']:
|
||||
if not data:
|
||||
return None
|
||||
|
||||
|
@ -28,7 +28,7 @@ class Title(YandexMusicObject):
|
|||
return cls(client=client, **data)
|
||||
|
||||
@classmethod
|
||||
def de_dict(cls, data, client):
|
||||
def de_dict(cls, data, client) -> Dict[str, Optional['Title']]:
|
||||
if not data:
|
||||
return {}
|
||||
|
||||
|
|
読み込み中…
新しいイシューから参照