Интерфейс Session

Session и AsyncSession - абстрактные классы, которые работают в качестве адаптеров для нижележащих HTTP библиотек. Экземпляр сессии используется в Client или AsyncSession для выполнения всех HTTP запросов к API Яндекс.Диска.

Эти интерфейсы могут быть реализованы, чтобы добавить поддержку любой HTTP библиотеки. Для конкретного примера см. исходный код любой из существующих реализаций (например, HTTPXSession).

Синхронный

class yadisk.Session[исходный код]

Класс HTTP сессии. Поддерживает открытые соединения, хранит заданные заголовки и некоторые другие параметры запросов.

Должен быть явным образом закрыт (может быть сделано с помощью конструкции with).

close() None[исходный код]

Закрывает сессию.

Примечание

Это абстрактные метод, который необходимо реализовать.

send_request(method: Literal['GET'] | Literal['POST'] | Literal['PUT'] | Literal['PATCH'] | Literal['DELETE'] | Literal['OPTIONS'] | Literal['HEAD'] | Literal['CONNECT'] | Literal['TRACE'], url: str, *, params: dict[str, Any] | None = None, data: bytes | Iterator[bytes] | None = None, timeout: float | tuple[float | None, float | None] | None = None, stream: bool = False, **kwargs) Response[исходный код]

Отправляет HTTP запрос с указанными параметрами. В случае ошибки, метод должен вызвать одно из исключений, основанных на YaDiskError. Могут быть указаны дополнительные keyword-аргументы, они могут быть напрямую переданы в нижележащий HTTP клиент без изменений.

Примечание

Это абстрактные метод, который необходимо реализовать.

Параметры:
  • methodstr, HTTP метод

  • urlstr, URL

  • paramsdict, GET параметры

  • databytes, итератор или файл-подобный объект, данные, которые будут отправлены в теле запроса

  • headersdict, дополнительные заголовки

  • timeout – таймаут запроса, tuple вида (read timeout, connect timeout), float или None (без таймаута)

  • streambool, если False, содержимое ответа будет сразу целиком скачано

Результат:

Response, объект ответа

set_headers(headers: dict[str, str]) None[исходный код]

Обновляет заголовки сессии.

Примечание

Это абстрактные метод, который необходимо реализовать.

Параметры:

headers – словарь заголовков, которые будут заданы

set_token(token: str) None[исходный код]

Задаёт токен для сессии (заголовок Authorization).

Параметры:

tokenstr, токен API

class yadisk.Response[исходный код]

Представляет собой ответ HTTP.

В случае, если возникает ошибка, методы данного классы должны вызвать одно из исключений, основанных на YaDiskError.

Переменные:

statusint, HTTP код статуса

close() None[исходный код]

Закрывает ответ и освобождает лежащее в основе соединение в пул

Примечание

Это абстрактные метод, который необходимо реализовать.

download(consume_callback: Callable[[bytes], None]) None[исходный код]

Скачивает содержимое ответа.

Примечание

Это абстрактные метод, который необходимо реализовать.

Параметры:

consume_callback – функция, принимает 1 параметр - фрагмент данных (bytes), потребляет этот фрагмент (например, записывает его в файл)

get_exception() YaDiskError[исходный код]

Обёртка над yadisk.utils.get_exception для удобства.

json() dict | list | str | int | float | None[исходный код]

Возвращает JSON, содержащийся в ответе (парсит JSON).

Примечание

Это абстрактные метод, который необходимо реализовать.

Результат:

dict, list, str, int, float или None

Асинхронный

class yadisk.AsyncSession[исходный код]

Класс HTTP сессии. Поддерживает открытые соединения, хранит заданные заголовки и некоторые другие параметры запросов.

Должен быть явным образом закрыт (может быть сделано с помощью конструкции with).

async close() None[исходный код]

Закрывает сессию.

Примечание

Это абстрактные метод, который необходимо реализовать.

async send_request(method: Literal['GET'] | Literal['POST'] | Literal['PUT'] | Literal['PATCH'] | Literal['DELETE'] | Literal['OPTIONS'] | Literal['HEAD'] | Literal['CONNECT'] | Literal['TRACE'], url: str, *, params: dict[str, Any] | None = None, data: bytes | Iterator[bytes] | AsyncIterator[bytes] | None = None, timeout: float | tuple[float | None, float | None] | None = None, stream: bool = False, **kwargs) AsyncResponse[исходный код]

Отправляет HTTP запрос с указанными параметрами. В случае ошибки, метод должен вызвать одно из исключений, основанных на YaDiskError. Могут быть указаны дополнительные keyword-аргументы, они могут быть напрямую переданы в нижележащий HTTP клиент без изменений.

Примечание

Это абстрактные метод, который необходимо реализовать.

Параметры:
  • methodstr, HTTP метод

  • urlstr, URL

  • paramsdict, GET параметры

  • databytes, итератор (возможно асинхронный) или файл-подобный объект (возможно асинхронный), данные, которые будут отправлены в теле запроса

  • headersdict, дополнительные заголовки

  • timeout – таймаут запроса, tuple вида (read timeout, connect timeout), float или None (без таймаута)

  • streambool, если False, содержимое ответа будет сразу целиком скачано

Результат:

Response, объект ответа

set_headers(headers: dict[str, str]) None[исходный код]

Обновляет заголовки сессии.

Примечание

Это абстрактные метод, который необходимо реализовать.

Параметры:

headers – словарь заголовков, которые будут заданы

set_token(token: str) None[исходный код]

Задаёт токен для сессии (заголовок Authorization).

Параметры:

tokenstr, токен API

class yadisk.AsyncResponse[исходный код]

Представляет собой ответ HTTP.

В случае, если возникает ошибка, методы данного классы должны вызвать одно из исключений, основанных на YaDiskError.

Переменные:

statusint, HTTP код статуса

async close() None[исходный код]

Закрывает запрос и освобождает лежащее в основе соединение в пул.

Примечание

Это абстрактные метод, который необходимо реализовать.

async download(consume_callback: Callable[[bytes], None] | Callable[[bytes], Awaitable[None]]) None[исходный код]

Скачивает содержимое ответа.

Примечание

Это абстрактные метод, который необходимо реализовать.

Параметры:

consume_callback – обычная или асинхронная функция, принимает 1 параметр - фрагмент данных (bytes), потребляет этот фрагмент данных (например, записывает его в файл)

async get_exception() YaDiskError[исходный код]

Обёртка над yadisk.utils.get_exception для удобства.

async json() dict | list | str | int | float | None[исходный код]

Возвращает JSON, содержащийся в ответе (парсит JSON).

Примечание

Это абстрактные метод, который необходимо реализовать.

Результат:

dict, list, str, int, float или None