yandex_music.utils.request.Request

class yandex_music.utils.request.Request(client=None, headers=None, proxy_url=None)
Базовые классы: object

Вспомогательный класс для yandex_music, представляющий методы для выполнения POST и GET запросов, скачивания файлов.

Параметры:
  • client (yandex_music.Client, optional) – Клиент Yandex Music.
  • headers (dict, optional) – Заголовки передаваемые с каждым запросом.
  • proxy_url (str, optional) – Прокси.
static _convert_camel_to_snake(text: str) → str

Конвертация CamelCase в SnakeCase.

Параметры:text (str) – Название переменной в CamelCase.
Результат:Название переменной в SnakeCase.
Тип результата:str
static _object_hook(obj: dict) → dict

Нормализация имён переменных пришедших с API.

Примечание

В названии переменной заменяет «-» на «_», конвертирует в SnakeCase, если название является зарезервированным именем или «client» - добавляет «_» в конец. Если название переменной начинается с цифры - добавляет в начало «_».

Параметры:obj (dict) – Словарь, где ключ название переменной, а значение - содержимое.
Результат:Тот же словарь, что и на входе, но с нормализованными ключами.
Тип результата:dict
_parse(json_data: bytes) → Optional[yandex_music.utils.response.Response]

Разбор ответа от API.

Примечание

Если данные отсутствуют в result, то переформировывает ответ используя данные из корня.

Параметры:json_data (bytes) – Ответ от API.
Результат:Ответ API.
Тип результата:yandex_music.utils.response.Response
Raises:yandex_music.exceptions.YandexMusicError – Базовое исключение библиотеки.
_request_wrapper(*args, **kwargs)

Обёртка над запросом библиотеки requests.

Примечание

Добавляет необходимые заголовки для запроса, обрабатывает статус коды, следит за таймаутом, кидает необходимые исключения, возвращает ответ. Передаёт пользовательские аргументы в запрос.

Параметры:
  • *args – Произвольные аргументы для requests.request.
  • **kwargs – Произвольные ключевые аргументы для requests.request.
Результат:

Ответ API.

Тип результата:

yandex_music.utils.response.Response

Raises:
download(url, filename, timeout=5, *args, **kwargs)

Отправка запроса на получение содержимого и его запись в файл.

Параметры:
  • url (str) – Адрес для запроса.
  • filename (str) – Путь и(или) название файла вместе с расширением.
  • timeout (int | float) – Используется как время ожидания ответа от сервера вместо указанного при создании пула.
  • *args – Произвольные аргументы для requests.request.
  • **kwargs – Произвольные ключевые аргументы для requests.request.
Raises:

yandex_music.exceptions.YandexMusicError – Базовое исключение библиотеки.

get(url: str, params: dict = None, timeout: Union[int, float] = 5, *args, **kwargs)

Отправка GET запроса.

Параметры:
  • url (str) – Адрес для запроса.
  • params (str) – GET параметры для запроса.
  • timeout (int | float) – Используется как время ожидания ответа от сервера вместо указанного при создании пула.
  • *args – Произвольные аргументы для requests.request.
  • **kwargs – Произвольные ключевые аргументы для requests.request.
Результат:

Ответ API.

Тип результата:

yandex_music.utils.response.Response

Raises:

yandex_music.exceptions.YandexMusicError – Базовое исключение библиотеки.

post(url, data=None, timeout=5, *args, **kwargs)

Отправка POST запроса.

Параметры:
  • url (str) – Адрес для запроса.
  • data (str) – POST тело запроса.
  • timeout (int | float) – Используется как время ожидания ответа от сервера вместо указанного при создании пула.
  • *args – Произвольные аргументы для requests.request.
  • **kwargs – Произвольные ключевые аргументы для requests.request.
Результат:

Ответ API.

Тип результата:

yandex_music.utils.response.Response

Raises:

yandex_music.exceptions.YandexMusicError – Базовое исключение библиотеки.

retrieve(url, timeout=5, *args, **kwargs)

Отправка GET запроса и получение содержимого без обработки (парсинга).

Параметры:
  • url (str) – Адрес для запроса.
  • timeout (int | float) – Используется как время ожидания ответа от сервера вместо указанного при создании пула.
  • *args – Произвольные аргументы для requests.request.
  • **kwargs – Произвольные ключевые аргументы для requests.request.
Результат:

Экземляр объекта ответа библиотеки requests.

Тип результата:

Response

Raises:

yandex_music.exceptions.YandexMusicError – Базовое исключение библиотеки.

set_and_return_client(client) → Client

Принимает клиент и присваивает его текущему объекту. При наличии авторизации добавляет заголовок.

Параметры:client (yandex_music.Client) – Клиент Yandex Music.
Результат:Клиент Yandex Music.
Тип результата:yandex_music.Client
set_authorization(token: str) → None

Добавляет заголовок авторизации для каждого запроса.

Примечание

Используется при передаче своего экземпляра Request’a клиенту.

Параметры:token (str) – OAuth токен.
set_language(lang: str) → None

Добавляет заголовок языка для каждого запроса.

Примечание

Возможные значения lang: en/uz/uk/us/ru/kk/hy.

Параметры:lang (str) – Язык.