diff --git a/README.md b/README.md index 9dd7f728..2d3c7ac9 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ [![Поддерживаемые Python версии](https://img.shields.io/badge/python-3.7+-blue.svg)](https://pypi.org/project/yandex-music/) [![Покрытие кода тестами](https://codecov.io/gh/MarshalX/yandex-music-api/branch/main/graph/badge.svg)](https://codecov.io/gh/MarshalX/yandex-music-api) [![Качество кода](https://api.codacy.com/project/badge/Grade/27011a5a8d9f4b278d1bfe2fe8725fed)](https://app.codacy.com/gh/MarshalX/yandex-music-api) -[![Статус тестов](https://github.com/MarshalX/yandex-music-api/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/MarshalX/yandex-music-api/actions/workflows/pytest_full.yml) +[![Статус тестов](https://github.com/MarshalX/yandex-music-api/actions/workflows/test.yml/badge.svg)](https://github.com/MarshalX/yandex-music-api/actions/workflows/test.yml) [![Статус документации](https://readthedocs.org/projects/yandex-music/badge/?version=latest)](https://yandex-music.readthedocs.io/en/latest/?badge=latest) [![Лицензия LGPLv3](https://img.shields.io/badge/license-LGPLv3-lightgrey.svg)](https://www.gnu.org/licenses/lgpl-3.0.html) diff --git a/docs/source/conf.py b/docs/source/conf.py index 314eddac..79a58fbb 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -1,15 +1,15 @@ -# Configuration file for the Sphinx documentation builder. -# -# This file only contains a selection of the most common options. For a full -# list see the documentation: -# http://www.sphinx-doc.org/en/master/config +"""Configuration file for the Sphinx documentation builder. -# -- Path setup -------------------------------------------------------------- +This file only contains a selection of the most common options. For a full +list see the documentation: +http://www.sphinx-doc.org/en/master/config -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# +-- Path setup -------------------------------------------------------------- + +If extensions (or modules to document with autodoc) are in another directory, +add these directories to sys.path here. If the directory is relative to the +documentation root, use os.path.abspath to make it absolute, like shown here. +""" import os import sys diff --git a/docs/source/readme.md b/docs/source/readme.md index 1918d1db..cac02f27 100644 --- a/docs/source/readme.md +++ b/docs/source/readme.md @@ -11,7 +11,7 @@ [![Поддерживаемые Python версии](https://img.shields.io/badge/python-3.7+-blue.svg)](https://pypi.org/project/yandex-music/) [![Покрытие кода тестами](https://codecov.io/gh/MarshalX/yandex-music-api/branch/main/graph/badge.svg)](https://codecov.io/gh/MarshalX/yandex-music-api) [![Качество кода](https://api.codacy.com/project/badge/Grade/27011a5a8d9f4b278d1bfe2fe8725fed)](https://app.codacy.com/gh/MarshalX/yandex-music-api) -[![Статус тестов](https://github.com/MarshalX/yandex-music-api/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/MarshalX/yandex-music-api/actions/workflows/pytest_full.yml) +[![Статус тестов](https://github.com/MarshalX/yandex-music-api/actions/workflows/test.yml/badge.svg)](https://github.com/MarshalX/yandex-music-api/actions/workflows/test.yml) [![Статус документации](https://readthedocs.org/projects/yandex-music/badge/?version=latest)](https://yandex-music.readthedocs.io/en/latest/?badge=latest) [![Лицензия LGPLv3](https://img.shields.io/badge/license-LGPLv3-lightgrey.svg)](https://www.gnu.org/licenses/lgpl-3.0.html) diff --git a/generate_async_version.py b/generate_async_version.py index f7795e3b..94dab0c6 100755 --- a/generate_async_version.py +++ b/generate_async_version.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +"""Generate async version of client.py and request.py.""" import subprocess DISCLAIMER = "# THIS IS AUTO GENERATED COPY OF client.py. DON'T EDIT IN BY HANDS #" @@ -8,6 +9,7 @@ def gen_request(output_request_filename: str) -> None: + """Generate async version of request.py.""" with open('yandex_music/utils/request.py', 'r', encoding='UTF-8') as f: code = f.read() @@ -48,6 +50,7 @@ def gen_request(output_request_filename: str) -> None: def gen_client(output_client_filename: str) -> None: + """Generate async version of client.py.""" with open('yandex_music/client.py', 'r', encoding='UTF-8') as f: code = f.read() diff --git a/generate_camel_case_aliases.py b/generate_camel_case_aliases.py index 4e346c12..f2967534 100755 --- a/generate_camel_case_aliases.py +++ b/generate_camel_case_aliases.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +"""Generate camel case aliases for snake case functions.""" import ast import os @@ -28,6 +29,7 @@ def _validate_function_name(function_name: str) -> bool: def convert_snake_case_to_camel_case(string: str) -> str: + """Convert snake case string to camel case string.""" camel_case = ''.join(word.title() for word in string.split('_')) return camel_case[0].lower() + camel_case[1:] @@ -86,6 +88,7 @@ def _process_file(file: str) -> None: def main() -> None: + """Generate camel case aliases for snake case functions.""" for root, _, files in os.walk(SOURCE_FOLDER): for file in files: if file.endswith('.py') and file != '__init__.py': diff --git a/ruff.toml b/ruff.toml index 7c96c3a7..dd7a3024 100644 --- a/ruff.toml +++ b/ruff.toml @@ -3,6 +3,7 @@ extend-select = [ "W", # pycodestyle warnings "F", # Pyflakes "I", # isort + "D", # pydocstyle "C90", # flake8-comprehensions "B", # flake8-bugbear "Q", # flake8-quotes @@ -29,22 +30,31 @@ extend-select = [ line-length = 120 target-version = "py37" ignore = [ + "ISC001", # conftlics with format "PGH004", # use specific rule code with noqa; works bad with JetBrains IDE Warnings "ANN002", # Missing type annotation for `*args` "ANN003", # Missing type annotation for `**kwargs` "ANN101", # Missing type annotation for `self` in method "ANN102", # Missing type annotation for `cls` in classmethod + "D203", # we are not using blank line before class + "D213", # we are using first line for summary + "D406", "D407", # we are using google style docstring ] [per-file-ignores] -"examples/*.py" = ["T201", "S311", "ERA001", "INP001", "S106", "BLE001", "S603", "ANN"] -"docs/source/conf.py" = ["INP001"] -"tests/*.py" = ["S101", "ANN"] # Use of assert -"tests/__init__.py" = ["F401"] # Unused import +"yandex_music/*.py" = [ + "D105", "D104", "D100", "D107", "D103", "D415", # missing docstring + "D400", # first line should end with a period. TODO(MarshalX): We are using strange docsting style for methods-shortcuts +] "yandex_music/__init__.py" = ["I001"] # Import sort "yandex_music/client*.py" = ["T201"] # print +"yandex_music/utils/request*.py" = ["ANN"] # TODO(MarshalX): annotate and remove this ignore +"tests/*.py" = ["S101", "ANN", "D"] +"tests/__init__.py" = ["F401"] # Unused import "test.py" = ["S101", "ERA001", "T201", "E501", "F401", "F841"] -"yandex_music/utils/request*.py" = ["ANN"] # TODO(MarshalX): annotate and remove this ignore +"docs/source/conf.py" = ["INP001"] +"examples/*.py" = ["T201", "S311", "ERA001", "INP001", "S106", "BLE001", "S603", "ANN", "D"] + [flake8-quotes] docstring-quotes = "double" diff --git a/setup.py b/setup.py index c4f0c44a..55149b66 100644 --- a/setup.py +++ b/setup.py @@ -1,3 +1,4 @@ +"""Setup script for yandex-music-api.""" import re import sys @@ -6,7 +7,10 @@ class PyTest(test): + """PyTest test runner.""" + def run_tests(self) -> None: + """Run tests.""" import pytest sys.exit(pytest.main(['tests'])) diff --git a/yandex_music/album/album.py b/yandex_music/album/album.py index bf371436..fd9fefe7 100644 --- a/yandex_music/album/album.py +++ b/yandex_music/album/album.py @@ -281,7 +281,6 @@ def artists_name(self) -> List[str]: Returns: :obj:`list` из :obj:`str`: Имена исполнителей. """ - return [i.name for i in self.artists] @classmethod diff --git a/yandex_music/album/deprecation.py b/yandex_music/album/deprecation.py index 7f9eb50b..e02c7660 100644 --- a/yandex_music/album/deprecation.py +++ b/yandex_music/album/deprecation.py @@ -33,6 +33,7 @@ def de_json(cls, data: dict, client: 'Client') -> Optional['Deprecation']: Args: data (:obj:`dict`): Поля и значения десериализуемого объекта. client (:obj:`yandex_music.Client`, optional): Клиент Yandex Music. + Returns: :obj:`yandex_music.Deprecation`: TODO. """ diff --git a/yandex_music/album/label.py b/yandex_music/album/label.py index 37f2b1c0..9fca72ab 100644 --- a/yandex_music/album/label.py +++ b/yandex_music/album/label.py @@ -31,6 +31,7 @@ def de_json(cls, data: dict, client: 'Client') -> Optional['Label']: Args: data (:obj:`dict`): Поля и значения десериализуемого объекта. client (:obj:`yandex_music.Client`, optional): Клиент Yandex Music. + Returns: :obj:`yandex_music.Label`: Лейбл. """ diff --git a/yandex_music/base.py b/yandex_music/base.py index 324853a7..d6e63ecc 100644 --- a/yandex_music/base.py +++ b/yandex_music/base.py @@ -22,6 +22,8 @@ class YandexMusicObject: + """Базовый класс для всех объектов библиотеки.""" + __metaclass__ = ABCMeta _id_attrs: tuple = () @@ -36,6 +38,7 @@ def __getitem__(self, item: str) -> Any: # noqa: ANN401 @staticmethod def report_unknown_fields_callback(cls: type, unknown_fields: dict) -> None: + """Обратный вызов для обработки неизвестных полей.""" logger.warning( f'Found unknown fields received from API! Please copy warn message ' f'and send to {new_issue_by_template_url} (github issue), thank you!' @@ -44,6 +47,15 @@ def report_unknown_fields_callback(cls: type, unknown_fields: dict) -> None: @staticmethod def is_valid_model_data(data: Any, *, array: bool = False) -> bool: # noqa: ANN401 + """Проверка на валидность данных. + + Args: + data (:obj:`Any`): Данные для проверки. + array (:obj:`bool`, optional): Является ли объект массивом. + + Returns: + :obj:`bool`: Валидны ли данные. + """ if array: return data and isinstance(data, list) and all(isinstance(item, dict) for item in data) diff --git a/yandex_music/client.py b/yandex_music/client.py index 61069221..3e570453 100644 --- a/yandex_music/client.py +++ b/yandex_music/client.py @@ -161,7 +161,8 @@ def account_status(self, *args, **kwargs) -> Optional[Status]: """Получение статуса аккаунта. Нет обязательных параметров. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Status` | :obj:`None`: Информация об аккаунте если он валиден, иначе :obj:`None`. @@ -169,7 +170,6 @@ def account_status(self, *args, **kwargs) -> Optional[Status]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/account/status' result = self._request.get(url, *args, **kwargs) @@ -181,7 +181,8 @@ def account_settings(self, *args, **kwargs) -> Optional[UserSettings]: """Получение настроек текущего пользователя. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.UserSettings` | :obj:`None`: Настройки пользователя если аккаунт валиден, @@ -190,7 +191,6 @@ def account_settings(self, *args, **kwargs) -> Optional[UserSettings]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/account/settings' result = self._request.get(url, *args, **kwargs) @@ -215,7 +215,8 @@ def account_settings_set( param (:obj:`str`): Название параметра для изменения. value (:obj:`str` | :obj:`int` | :obj:`bool`): Значение параметра. data (:obj:`dict`): Словарь параметров и значений для множественного изменения. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.UserSettings` | :obj:`None`: Настройки пользователя или :obj:`None`. @@ -223,7 +224,6 @@ def account_settings_set( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/account/settings' if not data: @@ -238,7 +238,8 @@ def settings(self, *args, **kwargs) -> Optional[Settings]: """Получение предложений по покупке. Нет обязательных параметров. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Settings` | :obj:`None`: Информацию о предлагаемых продуктах если аккаунт валиден @@ -247,7 +248,6 @@ def settings(self, *args, **kwargs) -> Optional[Settings]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/settings' result = self._request.get(url, *args, **kwargs) @@ -259,7 +259,8 @@ def permission_alerts(self, *args, **kwargs) -> Optional[PermissionAlerts]: """Получение оповещений. Нет обязательных параметров. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.PermissionAlerts` | :obj:`None`: Оповещения если аккаунт валиден или :obj:`None`. @@ -267,7 +268,6 @@ def permission_alerts(self, *args, **kwargs) -> Optional[PermissionAlerts]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/permission-alerts' result = self._request.get(url, *args, **kwargs) @@ -279,7 +279,8 @@ def account_experiments(self, *args, **kwargs) -> Optional[Experiments]: """Получение значений экспериментальных функций аккаунта. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Experiments` | :obj:`None`: Состояние экспериментальных функций или :obj:`None`. @@ -287,7 +288,6 @@ def account_experiments(self, *args, **kwargs) -> Optional[Experiments]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/account/experiments' result = self._request.get(url, *args, **kwargs) @@ -306,7 +306,8 @@ def consume_promo_code( Args: code (:obj:`str`): Промо-код. language (:obj:`str`, optional): Язык ответа API в ISO 639-1. По умолчанию язык клиента. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.PromoCodeStatus` | :obj:`None`: Информация об активации промо-кода или :obj:`None`. @@ -314,7 +315,6 @@ def consume_promo_code( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/account/consume-promo-code' if not language: @@ -329,7 +329,8 @@ def feed(self, *args, **kwargs) -> Optional[Feed]: """Получение потока информации (фида) подобранного под пользователя. Содержит умные плейлисты. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Feed` | :obj:`None`: Умные плейлисты пользователя или :obj:`None`. @@ -337,7 +338,6 @@ def feed(self, *args, **kwargs) -> Optional[Feed]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/feed' result = self._request.get(url, *args, **kwargs) @@ -346,6 +346,18 @@ def feed(self, *args, **kwargs) -> Optional[Feed]: @log def feed_wizard_is_passed(self, *args, **kwargs) -> bool: + """Получение информации о прохождении визарда. + + Note: + Временное событие на хэллоуин. + + Args: + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). + + Returns: + :obj:`bool`: Прошел ли пользователь визард или нет. + """ url = f'{self.base_url}/feed/wizard/is-passed' result = self._request.get(url, *args, **kwargs) @@ -362,7 +374,8 @@ def landing(self, blocks: Union[str, List[str]], *args, **kwargs) -> Optional[La Args: blocks (:obj:`str` | :obj:`list` из :obj:`str`): Блок или список блоков необходимых для выдачи. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Landing` | :obj:`None`: Лендинг-страница или :obj:`None`. @@ -370,7 +383,6 @@ def landing(self, blocks: Union[str, List[str]], *args, **kwargs) -> Optional[La Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/landing3' result = self._request.get(url, {'blocks': blocks, 'eitherUserId': '10254713668400548221'}, *args, **kwargs) @@ -389,7 +401,8 @@ def chart(self, chart_option: str = '', *args, **kwargs) -> Optional[ChartInfo]: Args: chart_option (:obj:`str` optional): Параметры чарта. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.ChartInfo`: Чарт. @@ -397,7 +410,6 @@ def chart(self, chart_option: str = '', *args, **kwargs) -> Optional[ChartInfo]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/landing3/chart' if chart_option: @@ -412,7 +424,8 @@ def new_releases(self, *args, **kwargs) -> Optional[LandingList]: """Получение полного списка всех новых релизов (альбомов). Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.LandingList`: Список новых альбомов. @@ -420,7 +433,6 @@ def new_releases(self, *args, **kwargs) -> Optional[LandingList]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/landing3/new-releases' result = self._request.get(url, *args, **kwargs) @@ -432,7 +444,8 @@ def new_playlists(self, *args, **kwargs) -> Optional[LandingList]: """Получение полного списка всех новых плейлистов. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.LandingList`: Список новых плейлистов. @@ -440,7 +453,6 @@ def new_playlists(self, *args, **kwargs) -> Optional[LandingList]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/landing3/new-playlists' result = self._request.get(url, *args, **kwargs) @@ -452,7 +464,8 @@ def podcasts(self, *args, **kwargs) -> Optional[LandingList]: """Получение подкастов с лендинга. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.LandingList`: Список подкастов. @@ -460,7 +473,6 @@ def podcasts(self, *args, **kwargs) -> Optional[LandingList]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/landing3/podcasts' result = self._request.get(url, *args, **kwargs) @@ -472,7 +484,8 @@ def genres(self, *args, **kwargs) -> List[Genre]: """Получение жанров музыки. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Genre` | :obj:`None`: Жанры музыки или :obj:`None`. @@ -480,7 +493,6 @@ def genres(self, *args, **kwargs) -> List[Genre]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/genres' result = self._request.get(url, *args, **kwargs) @@ -499,7 +511,8 @@ def tags(self, tag_id: str, *args, **kwargs) -> Optional[TagResult]: Args: tag_id (:obj:`str`): Уникальный идентификатор тега. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.TagResult`: Тег с плейлистами. @@ -507,7 +520,6 @@ def tags(self, tag_id: str, *args, **kwargs) -> Optional[TagResult]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/tags/{tag_id}/playlist-ids' result = self._request.get(url, *args, **kwargs) @@ -527,7 +539,8 @@ def tracks_download_info( Args: track_id (:obj:`str` | :obj:`list` из :obj:`str`): Уникальный идентификатор трека или треков. get_direct_links (:obj:`bool`, optional): Получить ли при вызове метода прямую ссылку на загрузку. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.DownloadInfo` | :obj:`None`: Варианты загрузки трека или :obj:`None`. @@ -535,7 +548,6 @@ def tracks_download_info( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/tracks/{track_id}/download-info' result = self._request.get(url, *args, **kwargs) @@ -552,7 +564,8 @@ def track_supplement(self, track_id: Union[str, int], *args, **kwargs) -> Option Args: track_id (:obj:`str` | :obj:`int`): Уникальный идентификатор трека. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Supplement`: Дополнительная информация о треке. @@ -560,7 +573,6 @@ def track_supplement(self, track_id: Union[str, int], *args, **kwargs) -> Option Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/tracks/{track_id}/supplement' result = self._request.get(url, *args, **kwargs) @@ -586,7 +598,8 @@ def tracks_lyrics( Args: track_id (:obj:`str` | :obj:`int`): Уникальный идентификатор трека. format (:obj:`str`): Формат текста. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.TrackLyrics` | :obj:`None`: Информация о тексте трека. @@ -596,7 +609,6 @@ def tracks_lyrics( :class:`yandex_music.exceptions.NotFoundError`: Текст у трека отсутствует. :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/tracks/{track_id}/lyrics' sign = get_sign_request(track_id) @@ -616,7 +628,8 @@ def tracks_similar(self, track_id: Union[str, int], *args, **kwargs) -> Optional Args: track_id (:obj:`str` | :obj:`int`): Уникальный идентификатор трека. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.SimilarTracks`: Похожие треки на другой трек. @@ -624,7 +637,6 @@ def tracks_similar(self, track_id: Union[str, int], *args, **kwargs) -> Optional Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/tracks/{track_id}/similar' result = self._request.get(url, *args, **kwargs) @@ -664,7 +676,8 @@ def play_audio( total_played_seconds (:obj:`int`, optional): Сколько было всего воспроизведено трека в секундах. end_position_seconds (:obj:`int`, optional): Окончательное значение воспроизведенных секунд. client_now (:obj:`str`, optional): Текущая дата и время клиента в ISO. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -672,7 +685,6 @@ def play_audio( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if uid is None and self.me is not None: uid = self.me.account.uid @@ -703,7 +715,8 @@ def albums_with_tracks(self, album_id: Union[str, int], *args, **kwargs) -> Opti Args: album_id (:obj:`str` | :obj:`int`): Уникальный идентификатор альбома. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Album` | :obj:`None`: Альбом или :obj:`None`. @@ -711,7 +724,6 @@ def albums_with_tracks(self, album_id: Union[str, int], *args, **kwargs) -> Opti Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/albums/{album_id}/with-tracks' result = self._request.get(url, *args, **kwargs) @@ -744,7 +756,8 @@ def search( type_ (:obj:`str`): Среди какого типа искать (трек, плейлист, альбом, исполнитель, пользователь, подкаст). page (:obj:`int`): Номер страницы. playlist_in_best (:obj:`bool`): Выдавать ли плейлисты лучшим вариантом поиска. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Search` | :obj:`None`: Результаты поиска или :obj:`None`. @@ -752,7 +765,6 @@ def search( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/search' params = { @@ -776,7 +788,8 @@ def search_suggest(self, part: str, *args, **kwargs) -> Optional[Suggestions]: Args: part (:obj:`str`): Часть поискового запроса. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Suggestions` | :obj:`None`: Подсказки для запроса или :obj:`None`. @@ -784,7 +797,6 @@ def search_suggest(self, part: str, *args, **kwargs) -> Optional[Suggestions]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/search/suggest' result = self._request.get(url, {'part': part}, *args, **kwargs) @@ -801,7 +813,8 @@ def users_settings(self, user_id: Union[str, int] = None, *args, **kwargs) -> Op Args: user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя чьи настройки хотим получить. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.UserSettings` | :obj:`None`: Настройки пользователя или :obj:`None`. @@ -809,7 +822,6 @@ def users_settings(self, user_id: Union[str, int] = None, *args, **kwargs) -> Op Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if user_id is None and self.me is not None: user_id = self.me.account.uid @@ -836,7 +848,8 @@ def users_playlists( kind (:obj:`str` | :obj:`int` | :obj:`list` из :obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста или их список. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя владеющим плейлистом. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Playlist` | :obj:`yandex_music.Playlist` | :obj:`None`: @@ -845,7 +858,6 @@ def users_playlists( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if user_id is None and self.me is not None: user_id = self.me.account.uid @@ -870,7 +882,8 @@ def users_playlists_recommendations( Args: kind (:obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста. user_id (:obj:`str` | :obj:`int`): Уникальный идентификатор пользователя владеющим плейлистом. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.PlaylistRecommendations` | :obj:`None`: Рекомендации для плейлиста или :obj:`None`. @@ -902,7 +915,8 @@ def users_playlists_create( title (:obj:`str`): Название. visibility (:obj:`str`, optional): Модификатор доступа. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя владеющим плейлистом. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Playlist` | :obj:`None`: Созданный плейлист или :obj:`None`. @@ -910,7 +924,6 @@ def users_playlists_create( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if user_id is None and self.me is not None: user_id = self.me.account.uid @@ -929,7 +942,8 @@ def users_playlists_delete(self, kind: Union[str, int], user_id: Union[str, int] Args: kind (:obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя владеющим плейлистом. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -937,7 +951,6 @@ def users_playlists_delete(self, kind: Union[str, int], user_id: Union[str, int] Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if user_id is None and self.me is not None: user_id = self.me.account.uid @@ -962,7 +975,8 @@ def users_playlists_name( kind (:obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста. name (:obj:`str`): Новое название. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя владеющим плейлистом. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Playlist` | :obj:`None`: Изменённый плейлист или :obj:`None`. @@ -970,7 +984,6 @@ def users_playlists_name( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if user_id is None and self.me is not None: user_id = self.me.account.uid @@ -998,7 +1011,8 @@ def users_playlists_visibility( kind (:obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста. visibility (:obj:`str`): Новое название. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя владеющим плейлистом. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Playlist` | :obj:`None`: Изменённый плейлист или :obj:`None`. @@ -1006,7 +1020,6 @@ def users_playlists_visibility( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if user_id is None and self.me is not None: user_id = self.me.account.uid @@ -1038,7 +1051,8 @@ def users_playlists_change( revision (:obj:`int`): TODO. diff (:obj:`str`): JSON представления отличий старого и нового плейлиста. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя владеющим плейлистом. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Playlist`: Изменённый плейлист или :obj:`None`. @@ -1046,7 +1060,6 @@ def users_playlists_change( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if user_id is None and self.me is not None: user_id = self.me.account.uid @@ -1082,7 +1095,8 @@ def users_playlists_insert_track( at (:obj:`int`): Индекс для вставки. revision (:obj:`int`): TODO. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя владеющим плейлистом. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Playlist`: Изменённый плейлист или :obj:`None`. @@ -1090,7 +1104,6 @@ def users_playlists_insert_track( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if user_id is None and self.me is not None: user_id = self.me.account.uid @@ -1120,7 +1133,8 @@ def users_playlists_delete_track( to (:obj:`int`): По какой индекс. revision (:obj:`int`): TODO. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя владеющим плейлистом. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Playlist` | :obj:`None`: Изменённый плейлист или :obj:`None`. @@ -1128,7 +1142,6 @@ def users_playlists_delete_track( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if user_id is None and self.me is not None: user_id = self.me.account.uid @@ -1144,7 +1157,8 @@ def rotor_account_status(self, *args, **kwargs) -> Optional[Status]: Данный статус отличается от обычного наличием дополнительных полей, например, `skips_per_hour`. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Status` | :obj:`None`: Статус пользователя с дополнительными полями от радио или @@ -1153,7 +1167,6 @@ def rotor_account_status(self, *args, **kwargs) -> Optional[Status]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/rotor/account/status' result = self._request.get(url, *args, **kwargs) @@ -1165,7 +1178,8 @@ def rotor_stations_dashboard(self, *args, **kwargs) -> Optional[Dashboard]: """Получение рекомендованных станций текущего пользователя. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Dashboard` | :obj:`None`: Рекомендованные станции или :obj:`None`. @@ -1173,7 +1187,6 @@ def rotor_stations_dashboard(self, *args, **kwargs) -> Optional[Dashboard]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/rotor/stations/dashboard' result = self._request.get(url, *args, **kwargs) @@ -1192,7 +1205,8 @@ def rotor_stations_list(self, language: Optional[str] = None, *args, **kwargs) - Args: language (:obj:`str`, optional): Язык, на котором будет информация о станциях. По умолчанию язык клиента. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.StationResult`: Список станций. @@ -1200,7 +1214,6 @@ def rotor_stations_list(self, language: Optional[str] = None, *args, **kwargs) - Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/rotor/stations/list' if not language: @@ -1242,7 +1255,8 @@ def rotor_station_feedback( total_played_seconds (:obj:`int` |:obj:`float`, optional): Сколько было проиграно секунд трека перед действием. track_id (:obj:`int` | :obj:`str`, optional): Уникальной идентификатор трека. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1250,7 +1264,6 @@ def rotor_station_feedback( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if timestamp is None: timestamp = datetime.now().timestamp() @@ -1388,7 +1401,8 @@ def rotor_station_info(self, station: str, *args, **kwargs) -> List[StationResul Args: station (:obj:`str`): Станция. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.StationResult` | :obj:`None`: Информация о станции или :obj:`None`. @@ -1396,7 +1410,6 @@ def rotor_station_info(self, station: str, *args, **kwargs) -> List[StationResul Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/rotor/station/{station}/info' result = self._request.get(url, *args, **kwargs) @@ -1432,7 +1445,8 @@ def rotor_station_settings2( diversity (:obj:`str`): Треки. language (:obj:`str`): Язык. type_ (:obj:`str`): Тип. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1440,7 +1454,6 @@ def rotor_station_settings2( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/rotor/station/{station}/settings3' data = {'moodEnergy': mood_energy, 'diversity': diversity, 'type': type_} @@ -1481,8 +1494,9 @@ def rotor_station_tracks( Args: station (:obj:`str`): Станция. settings2 (:obj:`bool`, optional): Использовать ли второй набор настроек. - queue (:obj:`str` | :obj:`int` , optional): Уникальной идентификатор трека, который только что был. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + queue (:obj:`str` | :obj:`int`, optional): Уникальной идентификатор трека, который только что был. + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.StationTracksResult` | :obj:`None`: Последовательность треков станции или :obj:`None`. @@ -1490,7 +1504,6 @@ def rotor_station_tracks( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/rotor/station/{station}/tracks' params = {} @@ -1510,7 +1523,8 @@ def artists_brief_info(self, artist_id: Union[str, int], *args, **kwargs) -> Opt Args: artist_id (:obj:`str` | :obj:`int`): Уникальный идентификатор исполнителя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.BriefInfo` | :obj:`None`: Информация об артисте или :obj:`None`. @@ -1539,7 +1553,8 @@ def artists_tracks( artist_id (:obj:`str` | :obj:`int`): Уникальный идентификатор артиста. page (:obj:`int`, optional): Номер страницы. page_size (:obj:`int`, optional): Количество треков на странице. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.ArtistsTracks` | :obj:`None`: Страница списка треков артиста или :obj:`None`. @@ -1547,7 +1562,6 @@ def artists_tracks( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/artists/{artist_id}/tracks' params = {'page': page, 'page-size': page_size} @@ -1576,7 +1590,8 @@ def artists_direct_albums( page (:obj:`int`, optional): Номер страницы. page_size (:obj:`int`, optional): Количество альбомов на странице. sort_by (:obj:`str`, optional): Параметр для сортировки. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.ArtistAlbums` | :obj:`None`: Страница списка альбомов артиста или :obj:`None`. @@ -1584,7 +1599,6 @@ def artists_direct_albums( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/artists/{artist_id}/direct-albums' params = {'sort-by': sort_by, 'page': page, 'page-size': page_size} @@ -1617,7 +1631,8 @@ def _like_action( remove (:obj:`bool`, optional): Если :obj:`True` то снимает отметку, иначе ставит. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1655,7 +1670,8 @@ def users_likes_tracks_add( идентификатор трека или треков. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1679,7 +1695,8 @@ def users_likes_tracks_remove( идентификатор трека или треков. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1703,7 +1720,8 @@ def users_likes_artists_add( идентификатор артиста или артистов. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1727,7 +1745,8 @@ def users_likes_artists_remove( идентификатор артиста или артистов. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1755,7 +1774,8 @@ def users_likes_playlists_add( идентификатор плейлиста или плейлистов. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1783,7 +1803,8 @@ def users_likes_playlists_remove( идентификатор плейлиста или плейлистов. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1807,7 +1828,8 @@ def users_likes_albums_add( идентификатор артиста или артистов. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1831,7 +1853,8 @@ def users_likes_albums_remove( идентификатор артиста или артистов. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1856,7 +1879,8 @@ def _get_list( ids (:obj:`str` | :obj:`int` | :obj:`list` из :obj:`str` | :obj:`list` из :obj:`int`): Уникальный идентификатор объекта или объектов. params (:obj:`dict`, optional): Параметры, которые будут переданы в запрос. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Artist` | :obj:`list` из :obj:`yandex_music.Album` | @@ -1883,7 +1907,8 @@ def artists(self, artist_ids: Union[List[Union[str, int]], int, str], *args, **k Args: artist_ids (:obj:`str` | :obj:`int` | :obj:`list` из :obj:`str` | :obj:`list` из :obj:`int`): Уникальный идентификатор исполнителя или исполнителей. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Artist`: Исполнитель или исполнители. @@ -1900,7 +1925,8 @@ def albums(self, album_ids: Union[List[Union[str, int]], int, str], *args, **kwa Args: album_ids (:obj:`str` | :obj:`int` | :obj:`list` из :obj:`str` | :obj:`list` из :obj:`int`): Уникальный идентификатор альбома или альбомов. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Album`: Альбом или альбомы. @@ -1924,7 +1950,8 @@ def tracks( track_ids (:obj:`str` | :obj:`int` | :obj:`list` из :obj:`str` | :obj:`list` из :obj:`int`): Уникальный идентификатор трека или треков. with_positions (:obj:`bool`, optional): С позициями TODO. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Track`: Трек или Треки. @@ -1952,7 +1979,8 @@ def playlists_list(self, playlist_ids: Union[List[Union[str, int]], int, str], * Args: playlist_ids (:obj:`str` | :obj:`int` | :obj:`list` из :obj:`str` | :obj:`list` из :obj:`int`): Уникальный идентификатор плейлиста или плейлистов. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Playlist`: Плейлист или плейлисты. @@ -1998,7 +2026,8 @@ def users_playlists_list(self, user_id: Union[str, int] = None, *args, **kwargs) Args: user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Playlist`: Плейлисты пользователя. @@ -2030,7 +2059,8 @@ def _get_likes( user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. params (:obj:`dict`, optional): Параметры, которые будут переданы в запрос. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Like` | :obj:`yandex_music.TracksList`: Объекты с отметкой "Мне нравится". @@ -2064,7 +2094,8 @@ def users_likes_tracks( user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. if_modified_since_revision (:obj:`int`, optional): TODO. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.TracksList`: Треки с отметкой "Мне нравится". @@ -2084,7 +2115,8 @@ def users_likes_albums(self, user_id: Union[str, int] = None, rich: bool = True, user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. rich (:obj:`bool`, optional): Если False, то приходит укороченная версия. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Like`: Альбомы с отметкой "Мне нравится". @@ -2108,7 +2140,8 @@ def users_likes_artists( user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. with_timestamps (:obj:`bool`, optional): С временными метками TODO. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Like`: Артисты с отметкой "Мне нравится". @@ -2125,7 +2158,8 @@ def users_likes_playlists(self, user_id: Union[str, int] = None, *args, **kwargs Args: user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Like`: Плейлисты с отметкой "Мне нравится". @@ -2149,7 +2183,8 @@ def users_dislikes_tracks( user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. if_modified_since_revision (:obj:`bool`, optional): TODO. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.TracksList`: Треки с отметкой "Не рекомендовать". @@ -2182,7 +2217,8 @@ def _dislike_action( remove (:obj:`bool`, optional): Если :obj:`True`, то снимает отметку, иначе ставит. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -2217,7 +2253,8 @@ def users_dislikes_tracks_add( идентификатор трека или треков. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -2241,7 +2278,8 @@ def users_dislikes_tracks_remove( идентификатор трека или треков. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -2284,7 +2322,8 @@ def after_track( context (:obj:`str`, optional): Место, откуда было вызвано получение. types (:obj:`str`, optional): Тип того, что вернуть после трека. from_ (:obj:`str`, optional): Место, с которого попали в контекст. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.ShotEvent`: Шот от Алисы или :obj:`None`. @@ -2292,7 +2331,6 @@ def after_track( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/after-track' params = { @@ -2322,7 +2360,8 @@ def queues_list(self, device: str = None, *args, **kwargs) -> List[QueueItem]: Args: device (:obj:`str`, optional): Содержит информацию об устройстве с которого выполняется запрос. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.QueueItem`: Элементы очереди всех устройств. @@ -2346,7 +2385,8 @@ def queue(self, queue_id: str, *args, **kwargs) -> Optional[Queue]: Args: queue_id (:obj:`str`): Уникальный идентификатор очереди. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Queue`: Очередь или :obj:`None`. @@ -2371,7 +2411,8 @@ def queue_update_position(self, queue_id: str, current_index: int, device: str = queue_id (:obj:`str`): Уникальный идентификатор очереди. current_index (:obj:`int`): Текущий индекс. device (:obj:`str`, optional): Содержит информацию об устройстве с которого выполняется запрос. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -2396,7 +2437,8 @@ def queue_create(self, queue: Union[Queue, str], device: str = None, *args, **kw Args: queue (:obj:`yandex_music.Queue` | :obj:`str`): Объект очереди или JSON строка с этим объектом. device (:obj:`str`, optional): Содержит информацию об устройстве с которого выполняется запрос. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`str`: Вернёт уникальный идентификатор созданной очереди, иначе :obj:`None`. diff --git a/yandex_music/client_async.py b/yandex_music/client_async.py index 6d880511..b0702110 100644 --- a/yandex_music/client_async.py +++ b/yandex_music/client_async.py @@ -165,7 +165,8 @@ async def account_status(self, *args, **kwargs) -> Optional[Status]: """Получение статуса аккаунта. Нет обязательных параметров. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Status` | :obj:`None`: Информация об аккаунте если он валиден, иначе :obj:`None`. @@ -173,7 +174,6 @@ async def account_status(self, *args, **kwargs) -> Optional[Status]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/account/status' result = await self._request.get(url, *args, **kwargs) @@ -185,7 +185,8 @@ async def account_settings(self, *args, **kwargs) -> Optional[UserSettings]: """Получение настроек текущего пользователя. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.UserSettings` | :obj:`None`: Настройки пользователя если аккаунт валиден, @@ -194,7 +195,6 @@ async def account_settings(self, *args, **kwargs) -> Optional[UserSettings]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/account/settings' result = await self._request.get(url, *args, **kwargs) @@ -219,7 +219,8 @@ async def account_settings_set( param (:obj:`str`): Название параметра для изменения. value (:obj:`str` | :obj:`int` | :obj:`bool`): Значение параметра. data (:obj:`dict`): Словарь параметров и значений для множественного изменения. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.UserSettings` | :obj:`None`: Настройки пользователя или :obj:`None`. @@ -227,7 +228,6 @@ async def account_settings_set( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/account/settings' if not data: @@ -242,7 +242,8 @@ async def settings(self, *args, **kwargs) -> Optional[Settings]: """Получение предложений по покупке. Нет обязательных параметров. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Settings` | :obj:`None`: Информацию о предлагаемых продуктах если аккаунт валиден @@ -251,7 +252,6 @@ async def settings(self, *args, **kwargs) -> Optional[Settings]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/settings' result = await self._request.get(url, *args, **kwargs) @@ -263,7 +263,8 @@ async def permission_alerts(self, *args, **kwargs) -> Optional[PermissionAlerts] """Получение оповещений. Нет обязательных параметров. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.PermissionAlerts` | :obj:`None`: Оповещения если аккаунт валиден или :obj:`None`. @@ -271,7 +272,6 @@ async def permission_alerts(self, *args, **kwargs) -> Optional[PermissionAlerts] Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/permission-alerts' result = await self._request.get(url, *args, **kwargs) @@ -283,7 +283,8 @@ async def account_experiments(self, *args, **kwargs) -> Optional[Experiments]: """Получение значений экспериментальных функций аккаунта. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Experiments` | :obj:`None`: Состояние экспериментальных функций или :obj:`None`. @@ -291,7 +292,6 @@ async def account_experiments(self, *args, **kwargs) -> Optional[Experiments]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/account/experiments' result = await self._request.get(url, *args, **kwargs) @@ -310,7 +310,8 @@ async def consume_promo_code( Args: code (:obj:`str`): Промо-код. language (:obj:`str`, optional): Язык ответа API в ISO 639-1. По умолчанию язык клиента. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.PromoCodeStatus` | :obj:`None`: Информация об активации промо-кода или :obj:`None`. @@ -318,7 +319,6 @@ async def consume_promo_code( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/account/consume-promo-code' if not language: @@ -333,7 +333,8 @@ async def feed(self, *args, **kwargs) -> Optional[Feed]: """Получение потока информации (фида) подобранного под пользователя. Содержит умные плейлисты. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Feed` | :obj:`None`: Умные плейлисты пользователя или :obj:`None`. @@ -341,7 +342,6 @@ async def feed(self, *args, **kwargs) -> Optional[Feed]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/feed' result = await self._request.get(url, *args, **kwargs) @@ -350,6 +350,18 @@ async def feed(self, *args, **kwargs) -> Optional[Feed]: @log async def feed_wizard_is_passed(self, *args, **kwargs) -> bool: + """Получение информации о прохождении визарда. + + Note: + Временное событие на хэллоуин. + + Args: + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). + + Returns: + :obj:`bool`: Прошел ли пользователь визард или нет. + """ url = f'{self.base_url}/feed/wizard/is-passed' result = await self._request.get(url, *args, **kwargs) @@ -366,7 +378,8 @@ async def landing(self, blocks: Union[str, List[str]], *args, **kwargs) -> Optio Args: blocks (:obj:`str` | :obj:`list` из :obj:`str`): Блок или список блоков необходимых для выдачи. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Landing` | :obj:`None`: Лендинг-страница или :obj:`None`. @@ -374,7 +387,6 @@ async def landing(self, blocks: Union[str, List[str]], *args, **kwargs) -> Optio Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/landing3' result = await self._request.get( @@ -395,7 +407,8 @@ async def chart(self, chart_option: str = '', *args, **kwargs) -> Optional[Chart Args: chart_option (:obj:`str` optional): Параметры чарта. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.ChartInfo`: Чарт. @@ -403,7 +416,6 @@ async def chart(self, chart_option: str = '', *args, **kwargs) -> Optional[Chart Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/landing3/chart' if chart_option: @@ -418,7 +430,8 @@ async def new_releases(self, *args, **kwargs) -> Optional[LandingList]: """Получение полного списка всех новых релизов (альбомов). Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.LandingList`: Список новых альбомов. @@ -426,7 +439,6 @@ async def new_releases(self, *args, **kwargs) -> Optional[LandingList]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/landing3/new-releases' result = await self._request.get(url, *args, **kwargs) @@ -438,7 +450,8 @@ async def new_playlists(self, *args, **kwargs) -> Optional[LandingList]: """Получение полного списка всех новых плейлистов. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.LandingList`: Список новых плейлистов. @@ -446,7 +459,6 @@ async def new_playlists(self, *args, **kwargs) -> Optional[LandingList]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/landing3/new-playlists' result = await self._request.get(url, *args, **kwargs) @@ -458,7 +470,8 @@ async def podcasts(self, *args, **kwargs) -> Optional[LandingList]: """Получение подкастов с лендинга. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.LandingList`: Список подкастов. @@ -466,7 +479,6 @@ async def podcasts(self, *args, **kwargs) -> Optional[LandingList]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/landing3/podcasts' result = await self._request.get(url, *args, **kwargs) @@ -478,7 +490,8 @@ async def genres(self, *args, **kwargs) -> List[Genre]: """Получение жанров музыки. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Genre` | :obj:`None`: Жанры музыки или :obj:`None`. @@ -486,7 +499,6 @@ async def genres(self, *args, **kwargs) -> List[Genre]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/genres' result = await self._request.get(url, *args, **kwargs) @@ -505,7 +517,8 @@ async def tags(self, tag_id: str, *args, **kwargs) -> Optional[TagResult]: Args: tag_id (:obj:`str`): Уникальный идентификатор тега. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.TagResult`: Тег с плейлистами. @@ -513,7 +526,6 @@ async def tags(self, tag_id: str, *args, **kwargs) -> Optional[TagResult]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/tags/{tag_id}/playlist-ids' result = await self._request.get(url, *args, **kwargs) @@ -533,7 +545,8 @@ async def tracks_download_info( Args: track_id (:obj:`str` | :obj:`list` из :obj:`str`): Уникальный идентификатор трека или треков. get_direct_links (:obj:`bool`, optional): Получить ли при вызове метода прямую ссылку на загрузку. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.DownloadInfo` | :obj:`None`: Варианты загрузки трека или :obj:`None`. @@ -541,7 +554,6 @@ async def tracks_download_info( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/tracks/{track_id}/download-info' result = await self._request.get(url, *args, **kwargs) @@ -558,7 +570,8 @@ async def track_supplement(self, track_id: Union[str, int], *args, **kwargs) -> Args: track_id (:obj:`str` | :obj:`int`): Уникальный идентификатор трека. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Supplement`: Дополнительная информация о треке. @@ -566,7 +579,6 @@ async def track_supplement(self, track_id: Union[str, int], *args, **kwargs) -> Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/tracks/{track_id}/supplement' result = await self._request.get(url, *args, **kwargs) @@ -592,7 +604,8 @@ async def tracks_lyrics( Args: track_id (:obj:`str` | :obj:`int`): Уникальный идентификатор трека. format (:obj:`str`): Формат текста. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.TrackLyrics` | :obj:`None`: Информация о тексте трека. @@ -602,7 +615,6 @@ async def tracks_lyrics( :class:`yandex_music.exceptions.NotFoundError`: Текст у трека отсутствует. :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/tracks/{track_id}/lyrics' sign = get_sign_request(track_id) @@ -622,7 +634,8 @@ async def tracks_similar(self, track_id: Union[str, int], *args, **kwargs) -> Op Args: track_id (:obj:`str` | :obj:`int`): Уникальный идентификатор трека. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.SimilarTracks`: Похожие треки на другой трек. @@ -630,7 +643,6 @@ async def tracks_similar(self, track_id: Union[str, int], *args, **kwargs) -> Op Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/tracks/{track_id}/similar' result = await self._request.get(url, *args, **kwargs) @@ -670,7 +682,8 @@ async def play_audio( total_played_seconds (:obj:`int`, optional): Сколько было всего воспроизведено трека в секундах. end_position_seconds (:obj:`int`, optional): Окончательное значение воспроизведенных секунд. client_now (:obj:`str`, optional): Текущая дата и время клиента в ISO. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -678,7 +691,6 @@ async def play_audio( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if uid is None and self.me is not None: uid = self.me.account.uid @@ -709,7 +721,8 @@ async def albums_with_tracks(self, album_id: Union[str, int], *args, **kwargs) - Args: album_id (:obj:`str` | :obj:`int`): Уникальный идентификатор альбома. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Album` | :obj:`None`: Альбом или :obj:`None`. @@ -717,7 +730,6 @@ async def albums_with_tracks(self, album_id: Union[str, int], *args, **kwargs) - Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/albums/{album_id}/with-tracks' result = await self._request.get(url, *args, **kwargs) @@ -750,7 +762,8 @@ async def search( type_ (:obj:`str`): Среди какого типа искать (трек, плейлист, альбом, исполнитель, пользователь, подкаст). page (:obj:`int`): Номер страницы. playlist_in_best (:obj:`bool`): Выдавать ли плейлисты лучшим вариантом поиска. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Search` | :obj:`None`: Результаты поиска или :obj:`None`. @@ -758,7 +771,6 @@ async def search( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/search' params = { @@ -782,7 +794,8 @@ async def search_suggest(self, part: str, *args, **kwargs) -> Optional[Suggestio Args: part (:obj:`str`): Часть поискового запроса. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Suggestions` | :obj:`None`: Подсказки для запроса или :obj:`None`. @@ -790,7 +803,6 @@ async def search_suggest(self, part: str, *args, **kwargs) -> Optional[Suggestio Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/search/suggest' result = await self._request.get(url, {'part': part}, *args, **kwargs) @@ -807,7 +819,8 @@ async def users_settings(self, user_id: Union[str, int] = None, *args, **kwargs) Args: user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя чьи настройки хотим получить. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.UserSettings` | :obj:`None`: Настройки пользователя или :obj:`None`. @@ -815,7 +828,6 @@ async def users_settings(self, user_id: Union[str, int] = None, *args, **kwargs) Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if user_id is None and self.me is not None: user_id = self.me.account.uid @@ -842,7 +854,8 @@ async def users_playlists( kind (:obj:`str` | :obj:`int` | :obj:`list` из :obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста или их список. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя владеющим плейлистом. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Playlist` | :obj:`yandex_music.Playlist` | :obj:`None`: @@ -851,7 +864,6 @@ async def users_playlists( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if user_id is None and self.me is not None: user_id = self.me.account.uid @@ -876,7 +888,8 @@ async def users_playlists_recommendations( Args: kind (:obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста. user_id (:obj:`str` | :obj:`int`): Уникальный идентификатор пользователя владеющим плейлистом. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.PlaylistRecommendations` | :obj:`None`: Рекомендации для плейлиста или :obj:`None`. @@ -908,7 +921,8 @@ async def users_playlists_create( title (:obj:`str`): Название. visibility (:obj:`str`, optional): Модификатор доступа. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя владеющим плейлистом. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Playlist` | :obj:`None`: Созданный плейлист или :obj:`None`. @@ -916,7 +930,6 @@ async def users_playlists_create( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if user_id is None and self.me is not None: user_id = self.me.account.uid @@ -937,7 +950,8 @@ async def users_playlists_delete( Args: kind (:obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя владеющим плейлистом. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -945,7 +959,6 @@ async def users_playlists_delete( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if user_id is None and self.me is not None: user_id = self.me.account.uid @@ -970,7 +983,8 @@ async def users_playlists_name( kind (:obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста. name (:obj:`str`): Новое название. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя владеющим плейлистом. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Playlist` | :obj:`None`: Изменённый плейлист или :obj:`None`. @@ -978,7 +992,6 @@ async def users_playlists_name( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if user_id is None and self.me is not None: user_id = self.me.account.uid @@ -1006,7 +1019,8 @@ async def users_playlists_visibility( kind (:obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста. visibility (:obj:`str`): Новое название. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя владеющим плейлистом. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Playlist` | :obj:`None`: Изменённый плейлист или :obj:`None`. @@ -1014,7 +1028,6 @@ async def users_playlists_visibility( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if user_id is None and self.me is not None: user_id = self.me.account.uid @@ -1046,7 +1059,8 @@ async def users_playlists_change( revision (:obj:`int`): TODO. diff (:obj:`str`): JSON представления отличий старого и нового плейлиста. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя владеющим плейлистом. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Playlist`: Изменённый плейлист или :obj:`None`. @@ -1054,7 +1068,6 @@ async def users_playlists_change( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if user_id is None and self.me is not None: user_id = self.me.account.uid @@ -1090,7 +1103,8 @@ async def users_playlists_insert_track( at (:obj:`int`): Индекс для вставки. revision (:obj:`int`): TODO. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя владеющим плейлистом. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Playlist`: Изменённый плейлист или :obj:`None`. @@ -1098,7 +1112,6 @@ async def users_playlists_insert_track( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if user_id is None and self.me is not None: user_id = self.me.account.uid @@ -1128,7 +1141,8 @@ async def users_playlists_delete_track( to (:obj:`int`): По какой индекс. revision (:obj:`int`): TODO. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя владеющим плейлистом. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Playlist` | :obj:`None`: Изменённый плейлист или :obj:`None`. @@ -1136,7 +1150,6 @@ async def users_playlists_delete_track( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if user_id is None and self.me is not None: user_id = self.me.account.uid @@ -1152,7 +1165,8 @@ async def rotor_account_status(self, *args, **kwargs) -> Optional[Status]: Данный статус отличается от обычного наличием дополнительных полей, например, `skips_per_hour`. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Status` | :obj:`None`: Статус пользователя с дополнительными полями от радио или @@ -1161,7 +1175,6 @@ async def rotor_account_status(self, *args, **kwargs) -> Optional[Status]: Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/rotor/account/status' result = await self._request.get(url, *args, **kwargs) @@ -1173,7 +1186,8 @@ async def rotor_stations_dashboard(self, *args, **kwargs) -> Optional[Dashboard] """Получение рекомендованных станций текущего пользователя. Args: - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Dashboard` | :obj:`None`: Рекомендованные станции или :obj:`None`. @@ -1181,7 +1195,6 @@ async def rotor_stations_dashboard(self, *args, **kwargs) -> Optional[Dashboard] Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/rotor/stations/dashboard' result = await self._request.get(url, *args, **kwargs) @@ -1200,7 +1213,8 @@ async def rotor_stations_list(self, language: Optional[str] = None, *args, **kwa Args: language (:obj:`str`, optional): Язык, на котором будет информация о станциях. По умолчанию язык клиента. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.StationResult`: Список станций. @@ -1208,7 +1222,6 @@ async def rotor_stations_list(self, language: Optional[str] = None, *args, **kwa Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/rotor/stations/list' if not language: @@ -1250,7 +1263,8 @@ async def rotor_station_feedback( total_played_seconds (:obj:`int` |:obj:`float`, optional): Сколько было проиграно секунд трека перед действием. track_id (:obj:`int` | :obj:`str`, optional): Уникальной идентификатор трека. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1258,7 +1272,6 @@ async def rotor_station_feedback( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - if timestamp is None: timestamp = datetime.now().timestamp() @@ -1398,7 +1411,8 @@ async def rotor_station_info(self, station: str, *args, **kwargs) -> List[Statio Args: station (:obj:`str`): Станция. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.StationResult` | :obj:`None`: Информация о станции или :obj:`None`. @@ -1406,7 +1420,6 @@ async def rotor_station_info(self, station: str, *args, **kwargs) -> List[Statio Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/rotor/station/{station}/info' result = await self._request.get(url, *args, **kwargs) @@ -1442,7 +1455,8 @@ async def rotor_station_settings2( diversity (:obj:`str`): Треки. language (:obj:`str`): Язык. type_ (:obj:`str`): Тип. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1450,7 +1464,6 @@ async def rotor_station_settings2( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/rotor/station/{station}/settings3' data = {'moodEnergy': mood_energy, 'diversity': diversity, 'type': type_} @@ -1491,8 +1504,9 @@ async def rotor_station_tracks( Args: station (:obj:`str`): Станция. settings2 (:obj:`bool`, optional): Использовать ли второй набор настроек. - queue (:obj:`str` | :obj:`int` , optional): Уникальной идентификатор трека, который только что был. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + queue (:obj:`str` | :obj:`int`, optional): Уникальной идентификатор трека, который только что был. + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.StationTracksResult` | :obj:`None`: Последовательность треков станции или :obj:`None`. @@ -1500,7 +1514,6 @@ async def rotor_station_tracks( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/rotor/station/{station}/tracks' params = {} @@ -1520,7 +1533,8 @@ async def artists_brief_info(self, artist_id: Union[str, int], *args, **kwargs) Args: artist_id (:obj:`str` | :obj:`int`): Уникальный идентификатор исполнителя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.BriefInfo` | :obj:`None`: Информация об артисте или :obj:`None`. @@ -1549,7 +1563,8 @@ async def artists_tracks( artist_id (:obj:`str` | :obj:`int`): Уникальный идентификатор артиста. page (:obj:`int`, optional): Номер страницы. page_size (:obj:`int`, optional): Количество треков на странице. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.ArtistsTracks` | :obj:`None`: Страница списка треков артиста или :obj:`None`. @@ -1557,7 +1572,6 @@ async def artists_tracks( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/artists/{artist_id}/tracks' params = {'page': page, 'page-size': page_size} @@ -1586,7 +1600,8 @@ async def artists_direct_albums( page (:obj:`int`, optional): Номер страницы. page_size (:obj:`int`, optional): Количество альбомов на странице. sort_by (:obj:`str`, optional): Параметр для сортировки. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.ArtistAlbums` | :obj:`None`: Страница списка альбомов артиста или :obj:`None`. @@ -1594,7 +1609,6 @@ async def artists_direct_albums( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/artists/{artist_id}/direct-albums' params = {'sort-by': sort_by, 'page': page, 'page-size': page_size} @@ -1627,7 +1641,8 @@ async def _like_action( remove (:obj:`bool`, optional): Если :obj:`True` то снимает отметку, иначе ставит. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1665,7 +1680,8 @@ async def users_likes_tracks_add( идентификатор трека или треков. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1689,7 +1705,8 @@ async def users_likes_tracks_remove( идентификатор трека или треков. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1713,7 +1730,8 @@ async def users_likes_artists_add( идентификатор артиста или артистов. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1737,7 +1755,8 @@ async def users_likes_artists_remove( идентификатор артиста или артистов. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1765,7 +1784,8 @@ async def users_likes_playlists_add( идентификатор плейлиста или плейлистов. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1793,7 +1813,8 @@ async def users_likes_playlists_remove( идентификатор плейлиста или плейлистов. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1817,7 +1838,8 @@ async def users_likes_albums_add( идентификатор артиста или артистов. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1841,7 +1863,8 @@ async def users_likes_albums_remove( идентификатор артиста или артистов. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -1866,7 +1889,8 @@ async def _get_list( ids (:obj:`str` | :obj:`int` | :obj:`list` из :obj:`str` | :obj:`list` из :obj:`int`): Уникальный идентификатор объекта или объектов. params (:obj:`dict`, optional): Параметры, которые будут переданы в запрос. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Artist` | :obj:`list` из :obj:`yandex_music.Album` | @@ -1893,7 +1917,8 @@ async def artists(self, artist_ids: Union[List[Union[str, int]], int, str], *arg Args: artist_ids (:obj:`str` | :obj:`int` | :obj:`list` из :obj:`str` | :obj:`list` из :obj:`int`): Уникальный идентификатор исполнителя или исполнителей. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Artist`: Исполнитель или исполнители. @@ -1910,7 +1935,8 @@ async def albums(self, album_ids: Union[List[Union[str, int]], int, str], *args, Args: album_ids (:obj:`str` | :obj:`int` | :obj:`list` из :obj:`str` | :obj:`list` из :obj:`int`): Уникальный идентификатор альбома или альбомов. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Album`: Альбом или альбомы. @@ -1934,7 +1960,8 @@ async def tracks( track_ids (:obj:`str` | :obj:`int` | :obj:`list` из :obj:`str` | :obj:`list` из :obj:`int`): Уникальный идентификатор трека или треков. with_positions (:obj:`bool`, optional): С позициями TODO. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Track`: Трек или Треки. @@ -1964,7 +1991,8 @@ async def playlists_list( Args: playlist_ids (:obj:`str` | :obj:`int` | :obj:`list` из :obj:`str` | :obj:`list` из :obj:`int`): Уникальный идентификатор плейлиста или плейлистов. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Playlist`: Плейлист или плейлисты. @@ -2010,7 +2038,8 @@ async def users_playlists_list(self, user_id: Union[str, int] = None, *args, **k Args: user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Playlist`: Плейлисты пользователя. @@ -2042,7 +2071,8 @@ async def _get_likes( user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. params (:obj:`dict`, optional): Параметры, которые будут переданы в запрос. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Like` | :obj:`yandex_music.TracksList`: Объекты с отметкой "Мне нравится". @@ -2076,7 +2106,8 @@ async def users_likes_tracks( user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. if_modified_since_revision (:obj:`int`, optional): TODO. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.TracksList`: Треки с отметкой "Мне нравится". @@ -2098,7 +2129,8 @@ async def users_likes_albums( user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. rich (:obj:`bool`, optional): Если False, то приходит укороченная версия. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Like`: Альбомы с отметкой "Мне нравится". @@ -2122,7 +2154,8 @@ async def users_likes_artists( user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. with_timestamps (:obj:`bool`, optional): С временными метками TODO. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Like`: Артисты с отметкой "Мне нравится". @@ -2139,7 +2172,8 @@ async def users_likes_playlists(self, user_id: Union[str, int] = None, *args, ** Args: user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.Like`: Плейлисты с отметкой "Мне нравится". @@ -2163,7 +2197,8 @@ async def users_dislikes_tracks( user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. if_modified_since_revision (:obj:`bool`, optional): TODO. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.TracksList`: Треки с отметкой "Не рекомендовать". @@ -2198,7 +2233,8 @@ async def _dislike_action( remove (:obj:`bool`, optional): Если :obj:`True`, то снимает отметку, иначе ставит. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -2233,7 +2269,8 @@ async def users_dislikes_tracks_add( идентификатор трека или треков. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -2257,7 +2294,8 @@ async def users_dislikes_tracks_remove( идентификатор трека или треков. user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя. Если не указан используется ID текущего пользователя. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -2300,7 +2338,8 @@ async def after_track( context (:obj:`str`, optional): Место, откуда было вызвано получение. types (:obj:`str`, optional): Тип того, что вернуть после трека. from_ (:obj:`str`, optional): Место, с которого попали в контекст. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.ShotEvent`: Шот от Алисы или :obj:`None`. @@ -2308,7 +2347,6 @@ async def after_track( Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - url = f'{self.base_url}/after-track' params = { @@ -2338,7 +2376,8 @@ async def queues_list(self, device: str = None, *args, **kwargs) -> List[QueueIt Args: device (:obj:`str`, optional): Содержит информацию об устройстве с которого выполняется запрос. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`list` из :obj:`yandex_music.QueueItem`: Элементы очереди всех устройств. @@ -2362,7 +2401,8 @@ async def queue(self, queue_id: str, *args, **kwargs) -> Optional[Queue]: Args: queue_id (:obj:`str`): Уникальный идентификатор очереди. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Queue`: Очередь или :obj:`None`. @@ -2387,7 +2427,8 @@ async def queue_update_position(self, queue_id: str, current_index: int, device: queue_id (:obj:`str`): Уникальный идентификатор очереди. current_index (:obj:`int`): Текущий индекс. device (:obj:`str`, optional): Содержит информацию об устройстве с которого выполняется запрос. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. @@ -2414,7 +2455,8 @@ async def queue_create(self, queue: Union[Queue, str], device: str = None, *args Args: queue (:obj:`yandex_music.Queue` | :obj:`str`): Объект очереди или JSON строка с этим объектом. device (:obj:`str`, optional): Содержит информацию об устройстве с которого выполняется запрос. - **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`str`: Вернёт уникальный идентификатор созданной очереди, иначе :obj:`None`. diff --git a/yandex_music/exceptions.py b/yandex_music/exceptions.py index 827310b6..64dee8de 100644 --- a/yandex_music/exceptions.py +++ b/yandex_music/exceptions.py @@ -3,23 +3,17 @@ class YandexMusicError(Exception): class UnauthorizedError(YandexMusicError): - """Класс исключения, вызываемого для случаев ошибок - аутентификации и авторизации. - """ + """Класс исключения, вызываемого для случаев ошибок аутентификации и авторизации.""" # TODO (MarshalX) На самом деле поиск еще происходит по кодеку # https://github.com/MarshalX/yandex-music-api/issues/552 class InvalidBitrateError(YandexMusicError): - """Класс исключения, вызываемого при попытке загрузки трека - с недоступным битрейтом. - """ + """Класс исключения, вызываемого при попытке загрузки трека с недоступным битрейтом.""" class NetworkError(YandexMusicError): - """Базовый класс исключений, вызываемых для ошибок, связанных с - запросами к серверу. - """ + """Базовый класс исключений, вызываемых для ошибок, связанных с запросами к серверу.""" class BadRequestError(NetworkError): diff --git a/yandex_music/landing/mix_link.py b/yandex_music/landing/mix_link.py index a0b3528a..33d6e753 100644 --- a/yandex_music/landing/mix_link.py +++ b/yandex_music/landing/mix_link.py @@ -69,7 +69,6 @@ def get_cover_white_url(self, size: str = '200x200') -> str: Returns: :obj:`str`: URL обложки. """ - if not self.cover_white: raise YandexMusicError("You can't get cover white because it's None.") diff --git a/yandex_music/playlist/playlist.py b/yandex_music/playlist/playlist.py index efc61fca..646e6e1f 100644 --- a/yandex_music/playlist/playlist.py +++ b/yandex_music/playlist/playlist.py @@ -165,10 +165,12 @@ def __post_init__(self) -> None: @property def is_mine(self) -> bool: + """Является ли плейлист моим.""" return self.owner.uid == self.client.me.account.uid @property def playlist_id(self) -> str: + """Полный ID плейлиста.""" return f'{self.owner.uid}:{self.kind}' def get_recommendations(self, *args, **kwargs) -> Optional['PlaylistRecommendations']: @@ -295,17 +297,25 @@ async def download_og_image_bytes_async(self, size: str = '200x200') -> bytes: """ return await self.client.request.retrieve(self.get_og_image_url(size)) - def rename(self, name: str) -> None: + def rename(self, name: str, *args, **kwargs) -> None: + """Сокращение для:: + + client.users_playlists_name(playlist.kind, name, *args, **kwargs) + """ client, kind = self.client, self.kind self.__dict__.clear() - self.__dict__.update(client.users_playlists_name(kind, name).__dict__) + self.__dict__.update(client.users_playlists_name(kind, name, *args, **kwargs).__dict__) - async def rename_async(self, name: str) -> None: + async def rename_async(self, name: str, *args, **kwargs) -> None: + """Сокращение для:: + + client.users_playlists_name(playlist.kind, name, *args, **kwargs) + """ client, kind = self.client, self.kind self.__dict__.clear() - self.__dict__.update((await client.users_playlists_name(kind, name)).__dict__) + self.__dict__.update((await client.users_playlists_name(kind, name, *args, **kwargs)).__dict__) def like(self, *args, **kwargs) -> bool: """Сокращение для:: diff --git a/yandex_music/playlist/playlist_id.py b/yandex_music/playlist/playlist_id.py index 8c46c3a4..4fa2c659 100644 --- a/yandex_music/playlist/playlist_id.py +++ b/yandex_music/playlist/playlist_id.py @@ -26,6 +26,7 @@ def __post_init__(self) -> None: @property def playlist_id(self) -> str: + """Полный ID плейлиста.""" return f'{self.uid}:{self.kind}' def fetch_playlist(self, *args, **kwargs) -> Union['Playlist', List['Playlist']]: diff --git a/yandex_music/search/search.py b/yandex_music/search/search.py index f56251f0..34b419dc 100644 --- a/yandex_music/search/search.py +++ b/yandex_music/search/search.py @@ -73,6 +73,8 @@ def get_page(self, page: int, *args, **kwargs) -> Optional['Search']: Args: page (:obj:`int`): Номер страницы. + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Search` | :obj:`None`: Страница результата поиска или :obj:`None`. @@ -84,6 +86,8 @@ async def get_page_async(self, page: int, *args, **kwargs) -> Optional['Search'] Args: page (:obj:`int`): Номер страницы. + *args: Произвольные аргументы (будут переданы в запрос). + **kwargs: Произвольные именованные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.Search` | :obj:`None`: Страница результата поиска или :obj:`None`. diff --git a/yandex_music/track/track.py b/yandex_music/track/track.py index d0a585bb..a40c747f 100644 --- a/yandex_music/track/track.py +++ b/yandex_music/track/track.py @@ -460,7 +460,6 @@ def artists_name(self) -> List[str]: Returns: :obj:`list` из :obj:`str`: Имена исполнителей. """ - return [i.name for i in self.artists] @property diff --git a/yandex_music/utils/request.py b/yandex_music/utils/request.py index 7dfd4944..10b70e18 100644 --- a/yandex_music/utils/request.py +++ b/yandex_music/utils/request.py @@ -37,8 +37,9 @@ class Request: - """Вспомогательный класс для yandex_music, представляющий методы для выполнения POST и GET запросов, скачивания - файлов. + """Вспомогательный класс для выполнения запросов. + + Предоставляет методы для выполнения POST и GET запросов, скачивания файлов. Args: client (:obj:`yandex_music.Client`, optional): Клиент Yandex Music. diff --git a/yandex_music/utils/request_async.py b/yandex_music/utils/request_async.py index ee37b5e7..ce00431c 100644 --- a/yandex_music/utils/request_async.py +++ b/yandex_music/utils/request_async.py @@ -43,8 +43,9 @@ class Request: - """Вспомогательный класс для yandex_music, представляющий методы для выполнения POST и GET запросов, скачивания - файлов. + """Вспомогательный класс для выполнения запросов. + + Предоставляет методы для выполнения POST и GET запросов, скачивания файлов. Args: client (:obj:`yandex_music.Client`, optional): Клиент Yandex Music.