From 67398fd041e416187d367c313eb7bd28a57abb74 Mon Sep 17 00:00:00 2001 From: Gleb Liutsko Date: Thu, 7 May 2020 11:21:35 +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=BA=20=D0=BA=D0=BB=D0=B0?= =?UTF-8?q?=D1=81=D1=81=D1=83=20PlaylistsRecommendations=20=D0=B8=20=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D0=BE=D0=B4=D1=83=20users=5Fplaylists=5Frecommenda?= =?UTF-8?q?tions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ic.playlists.playlists_recommendations.rst | 7 ++++++ yandex_music/client.py | 20 ++++++++++++--- .../playlist/playlists_recommendations.py | 25 ++++++++++++++++++- 3 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 docs/source/yandex_music.playlists.playlists_recommendations.rst diff --git a/docs/source/yandex_music.playlists.playlists_recommendations.rst b/docs/source/yandex_music.playlists.playlists_recommendations.rst new file mode 100644 index 0000000..1b0dd8f --- /dev/null +++ b/docs/source/yandex_music.playlists.playlists_recommendations.rst @@ -0,0 +1,7 @@ +yandex_music.PlaylistsRecommendations +================= + +.. autoclass:: yandex_music.PlaylistsRecommendations + :members: + :undoc-members: + :show-inheritance: diff --git a/yandex_music/client.py b/yandex_music/client.py index 30abb4a..7be9f12 100644 --- a/yandex_music/client.py +++ b/yandex_music/client.py @@ -765,9 +765,23 @@ class Client(YandexMusicObject): return Playlist.de_json(result, self) @log - def users_playlists_recommendations(self, kind: Union[List[Union[str, int]], str, int], - user_id: Union[str, int] = None, timeout: Union[int, float] = None, *args, - **kwargs): + def users_playlists_recommendations(self, kind: Union[str, int], user_id: Union[str, int] = None, + timeout: Union[int, float] = None, *args, **kwargs): + """Получение рекомендаций для плейлиста. + + Args: + kind (:obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста. + user_id (:obj:`str` | :obj:`int`): Уникальный идентификатор пользователя владеющим плейлистом. + timeout (:obj:`int` | :obj:`float`, optional): Если это значение указано, используется как время ожидания + ответа от сервера вместо указанного при создании пула. + **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + + Returns: + :obj:`yandex_music.PlaylistsRecommendations` | :obj:`None`: Рекомендации для плейлиста или :obj:`None`. + + Raises: + :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. + """ if user_id is None and self.me is not None: user_id = self.me.account.uid diff --git a/yandex_music/playlist/playlists_recommendations.py b/yandex_music/playlist/playlists_recommendations.py index f41d948..8a4c15a 100644 --- a/yandex_music/playlist/playlists_recommendations.py +++ b/yandex_music/playlist/playlists_recommendations.py @@ -7,9 +7,23 @@ if TYPE_CHECKING: class PlaylistsRecommendations(YandexMusicObject): + """Класс, представляющий рекомендации для плейлиста. + + Attributes: + tracks (:obj:`list` из :obj:`yandex_music.Track`): Список рекомендованных треков. + batch_id (:obj:`str`): TODO. + client (:obj:`yandex_music.Client`): Клиент Yandex Music. + + Args: + tracks (:obj:`list` из :obj:`yandex_music.Track`): Список рекомендованных треков. + batch_id (:obj:`str`, optional): TODO. + client (:obj:`yandex_music.Client`, optional): Клиент Yandex Music. + **kwargs: Произвольные ключевые аргументы полученные от API. + """ + def __init__(self, tracks: List['Track'], - batch_id: str = None, + batch_id: Optional[str] = None, client: Optional['Client'] = None, **kwargs) -> None: super().handle_unknown_kwargs(self, **kwargs) @@ -22,6 +36,15 @@ class PlaylistsRecommendations(YandexMusicObject): @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['PlaylistsRecommendations']: + """Десериализация объекта. + + Args: + data (:obj:`dict`): Поля и значения десериализуемого объекта. + client (:obj:`yandex_music.Client`, optional): Клиент Yandex Music. + + Returns: + :obj:`yandex_music.PlaylistsRecommendations`: Рекомендации для плейлиста. + """ if not data: return None