Интерфейс 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 клиент без изменений.Примечание
Это абстрактные метод, который необходимо реализовать.
- Параметры:
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
, объект ответа
- set_headers(headers: dict[str, str]) None [исходный код]
Обновляет заголовки сессии.
Примечание
Это абстрактные метод, который необходимо реализовать.
- Параметры:
headers – словарь заголовков, которые будут заданы
- set_token(token: str) None [исходный код]
Задаёт токен для сессии (заголовок Authorization).
- Параметры:
token – str, токен API
- class yadisk.Response[исходный код]
Представляет собой ответ HTTP.
В случае, если возникает ошибка, методы данного классы должны вызвать одно из исключений, основанных на
YaDiskError
.- Переменные:
status – int, HTTP код статуса
- close() None [исходный код]
Закрывает ответ и освобождает лежащее в основе соединение в пул
Примечание
Это абстрактные метод, который необходимо реализовать.
- download(consume_callback: Callable[[bytes], None]) None [исходный код]
Скачивает содержимое ответа.
Примечание
Это абстрактные метод, который необходимо реализовать.
- Параметры:
consume_callback – функция, принимает 1 параметр - фрагмент данных (bytes), потребляет этот фрагмент (например, записывает его в файл)
- get_exception() YaDiskError [исходный код]
Обёртка над
yadisk.utils.get_exception
для удобства.
Асинхронный
- 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 клиент без изменений.Примечание
Это абстрактные метод, который необходимо реализовать.
- Параметры:
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
, объект ответа
- set_headers(headers: dict[str, str]) None [исходный код]
Обновляет заголовки сессии.
Примечание
Это абстрактные метод, который необходимо реализовать.
- Параметры:
headers – словарь заголовков, которые будут заданы
- set_token(token: str) None [исходный код]
Задаёт токен для сессии (заголовок Authorization).
- Параметры:
token – str, токен API
- 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), потребляет этот фрагмент данных (например, записывает его в файл)
- async get_exception() YaDiskError [исходный код]
Обёртка над
yadisk.utils.get_exception
для удобства.