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