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 = {