From be3152a7eed5157eb449ec817506b0335a3ddffb Mon Sep 17 00:00:00 2001 From: Gleb Liutsko Date: Tue, 19 Nov 2019 21:52:17 +0400 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=86=D0=B8=D1=8F=20=D0=97=D0=B0=D0=B4=D0=BE=D0=BA?= =?UTF-8?q?=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=20ArtistAlbums=20=D0=97?= =?UTF-8?q?=D0=B0=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4?= =?UTF-8?q?=20get=5Falbums=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=B0=20Artist?= =?UTF-8?q?=20=D0=97=D0=B0=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=20=D0=BC=D0=B5=D1=82=D0=BE?= =?UTF-8?q?=D0=B4=20artists=5Falbums=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81?= =?UTF-8?q?=D0=B0=20Client?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yandex_music/artist/artist.py | 4 ++++ yandex_music/artist/artist_albums.py | 26 ++++++++++++++++++++++++++ yandex_music/client.py | 16 ++++++++++++++++ 3 files changed, 46 insertions(+) diff --git a/yandex_music/artist/artist.py b/yandex_music/artist/artist.py index 3ac8ac6..5e3b838 100644 --- a/yandex_music/artist/artist.py +++ b/yandex_music/artist/artist.py @@ -96,6 +96,10 @@ class Artist(YandexMusicObject): 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): + """Сокращение для:: + + client.artists_albums(artist.id, page, page_size, sort_by, *args, **kwargs) + """ return self.client.artists_albums(self.id, page, page_size, sort_by, *args, **kwargs) @classmethod diff --git a/yandex_music/artist/artist_albums.py b/yandex_music/artist/artist_albums.py index dcffdfe..91e2ecb 100644 --- a/yandex_music/artist/artist_albums.py +++ b/yandex_music/artist/artist_albums.py @@ -2,6 +2,22 @@ from yandex_music import YandexMusicObject class ArtistAlbums(YandexMusicObject): + """Класс представляющий страницу списка альбомов артиста. + + Attributes: + albums (:obj:`list` из :obj:`yandex_music.Album`): Список альбомов артиста. + pager (:obj:`yandex_music.Pager`): Объект класса :class:`yandex_music.Pager` представляющий пагинатор. + client (:obj:`yandex_music.Client`): Объект класса :class:`yandex_music.Client` представляющий клиент Yandex + Music. + + Args: + albums (:obj:`list` из :obj:`yandex_music.Album`): Список альбомов артиста. + pager (:obj:`yandex_music.Pager`): Объект класса :class:`yandex_music.Pager` представляющий пагинатор. + client (:obj:`yandex_music.Client`, optional): Объект класса :class:`yandex_music.Client` представляющий клиент Yandex + Music. + **kwargs: Произвольные ключевые аргументы полученные от API. + """ + def __init__(self, albums, pager, @@ -15,6 +31,16 @@ class ArtistAlbums(YandexMusicObject): @classmethod def de_json(cls, data, client): + """Десериализация объекта. + + Args: + data (:obj:`dict`): Поля и значения десериализуемого объекта. + client (:obj:`yandex_music.Client`): Объект класса :class:`yandex_music.Client` представляющий клиент Yandex + Music. + + Returns: + :obj:`yandex_music.ArtistAlbums`: Объект класса :class:`yandex_music.ArtistAlbums`. + """ if not data: return None diff --git a/yandex_music/client.py b/yandex_music/client.py index e54e405..aaabde7 100644 --- a/yandex_music/client.py +++ b/yandex_music/client.py @@ -923,6 +923,22 @@ class Client(YandexMusicObject): @log def artists_albums(self, artist_id: str or int, page=0, page_size=20, sort_by='year', timeout=None, *args, **kwargs): + """Получение треков артиста. + + Args: + artist_id (:obj:`str` | :obj:`int`): Уникальный идентификатор артиста. + page (:obj:`int`, optional): Номер страницы. + page_size (:obj:`int`, optional): Количество треков на странице. + sort_by (:obj:`str`, optional): Параметр для сортирвки. + timeout (:obj:`int` | :obj:`float`, optional): Если это значение указано, используется как время ожидания + ответа от сервера вместо указанного при создании пула. + **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + + Returns: + :obj:`yandex_music.ArtistAlbums`: Объекта класса :class:`yandex_music.ArtistsTracks` + представляющий страницу списка альбомов артиста + """ + url = f'{self.base_url}/artists/{artist_id}/direct-albums' params = {