Интерфейс Session
Session и AsyncSession - абстрактные классы, которые работают в качестве адаптеров для нижележащих HTTP библиотек. Экземпляр сессии используется в Client или AsyncSession для выполнения всех HTTP запросов к API Яндекс.Диска.
Эти интерфейсы могут быть реализованы, чтобы добавить поддержку любой HTTP библиотеки. Для конкретного примера см. исходный код любой из существующих реализаций (например, HTTPXSession).
Синхронный
- class yadisk.Session[исходный код]
Класс HTTP сессии. Поддерживает открытые соединения, хранит заданные заголовки и некоторые другие параметры запросов.
Должен быть явным образом закрыт (может быть сделано с помощью конструкции with).
- close() None[исходный код]
Закрывает сессию.
Примечание
Это абстрактный метод, который необходимо реализовать.
- send_request(method: Literal['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS', 'HEAD', 'CONNECT', 'TRACE'], url: str, *, params: dict[str, Any] | None = None, data: bytes | Iterator[bytes] | BinaryIO | None = None, timeout: float | tuple[float | None, float | None] | None = Ellipsis, headers: Mapping[str, str] | None = None, stream: bool = False, **kwargs) Response[исходный код]
Отправляет HTTP запрос с указанными параметрами. В случае ошибки, метод должен вызвать одно из исключений, основанных на
YaDiskError. Могут быть указаны дополнительные keyword-аргументы, они могут быть напрямую переданы в нижележащий HTTP клиент без изменений.Примечание
Это абстрактный метод, который необходимо реализовать.
- Параметры:
method – str, HTTP метод
url – str, URL
params – dict, GET параметры
data – bytes, итератор или файл-подобный объект, данные, которые будут отправлены в теле запроса
headers – dict, дополнительные заголовки
timeout – таймаут запроса, tuple вида (read timeout, connect timeout), float или None (без таймаута)
stream – bool, если False, содержимое ответа будет сразу целиком скачано
- Результат:
Response, объект ответа
- class yadisk.Response[исходный код]
Представляет собой ответ HTTP.
В случае, если возникает ошибка, методы данного классы должны вызвать одно из исключений, основанных на
YaDiskError.- Переменные:
status – int, HTTP код статуса
- close() None[исходный код]
Закрывает ответ и освобождает лежащее в основе соединение в пул
Примечание
Это абстрактный метод, который необходимо реализовать.
- download(consume_callback: Callable[[bytes], None]) None[исходный код]
Скачивает содержимое ответа.
Примечание
Это абстрактный метод, который необходимо реализовать.
- Параметры:
consume_callback – функция, принимает 1 параметр - фрагмент данных (bytes), потребляет этот фрагмент (например, записывает его в файл)
- Исключение:
RequestError – не удалось получить тело ответа
- get_exception() YaDiskError[исходный код]
Обёртка над
yadisk.utils.get_exceptionдля удобства.- Результат:
- json() dict | list | str | int | float | None[исходный код]
Возвращает JSON, содержащийся в ответе (парсит JSON).
Примечание
Это абстрактный метод, который необходимо реализовать.
- Исключение:
RequestError – не удалось получить тело ответа
ValueError – не удалось обработать JSON
- Результат:
dict, list, str, int, float или None
Асинхронный
- class yadisk.AsyncSession[исходный код]
Класс HTTP сессии. Поддерживает открытые соединения, хранит заданные заголовки и некоторые другие параметры запросов.
Должен быть явным образом закрыт (может быть сделано с помощью конструкции with).
- async close() None[исходный код]
Закрывает сессию.
Примечание
Это абстрактный метод, который необходимо реализовать.
- async send_request(method: Literal['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS', 'HEAD', 'CONNECT', 'TRACE'], url: str, *, params: dict[str, Any] | None = None, data: bytes | Iterator[bytes] | AsyncIterator[bytes] | BinaryIO | BinaryAsyncFileLike | None = None, timeout: float | tuple[float | None, float | None] | None = Ellipsis, headers: Mapping[str, str] | None = None, stream: bool = False, **kwargs) AsyncResponse[исходный код]
Отправляет HTTP запрос с указанными параметрами. В случае ошибки, метод должен вызвать одно из исключений, основанных на
YaDiskError. Могут быть указаны дополнительные keyword-аргументы, они могут быть напрямую переданы в нижележащий HTTP клиент без изменений.Примечание
Это абстрактный метод, который необходимо реализовать.
- Параметры:
method – str, HTTP метод
url – str, URL
params – dict, GET параметры
data – bytes, итератор (возможно асинхронный) или файл-подобный объект (возможно асинхронный), данные, которые будут отправлены в теле запроса
headers – dict, дополнительные заголовки
timeout – таймаут запроса, tuple вида (read timeout, connect timeout), float или None (без таймаута)
stream – bool, если False, содержимое ответа будет сразу целиком скачано
- Результат:
Response, объект ответа
- class yadisk.AsyncResponse[исходный код]
Представляет собой ответ HTTP.
В случае, если возникает ошибка, методы данного классы должны вызвать одно из исключений, основанных на
YaDiskError.- Переменные:
status – int, HTTP код статуса
- async close() None[исходный код]
Закрывает запрос и освобождает лежащее в основе соединение в пул.
Примечание
Это абстрактный метод, который необходимо реализовать.
- async download(consume_callback: Callable[[bytes], None] | Callable[[bytes], Awaitable[None]]) None[исходный код]
Скачивает содержимое ответа.
Примечание
Это абстрактный метод, который необходимо реализовать.
- Параметры:
consume_callback – обычная или асинхронная функция, принимает 1 параметр - фрагмент данных (bytes), потребляет этот фрагмент данных (например, записывает его в файл)
- Исключение:
RequestError – не удалось получить тело ответа
- async get_exception() YaDiskError[исходный код]
Обёртка над
yadisk.utils.get_exceptionдля удобства.- Результат:
- async json() dict | list | str | int | float | None[исходный код]
Возвращает JSON, содержащийся в ответе (парсит JSON).
Примечание
Это абстрактный метод, который необходимо реализовать.
- Исключение:
RequestError – не удалось получить тело ответа
ValueError – не удалось обработать JSON
- Результат:
dict, list, str, int, float или None