Руководство по миграции
Миграция с 2.x на 3.x
Ожидание завершения асинхронной операции
Начиная с версии 3.0.0, следующие методы автоматически ожидают завершения асинхронной операции:
Новое поведение контролируется параметром wait, который по умолчанию задан как True. Ожидание осуществляется за счёт периодической проверки статуса операции (см. Client.get_operation_status() и Client.wait_for_operation()) и вызова time.sleep / asyncio.sleep. Если этот параметр установлен в значение False, ожидание операции не будет выполнено, это соответствует старому поведению.
Примечание
Если wait=True, то существует вероятность получить AsyncOperationFailedError, хотя это маловероятно на практике.
См. документацию для вышеупомянутых методов для дополнительных подробностей.
Итерация по AsyncClient.listdir()
Итерация по результату AsyncClient.listdir() больше не требует дополнительного ключевого слова await:
async with yadisk.AsyncClient(token=...) as client:
# yadisk 3.x
async for resource in client.listdir():
do_something(resource)
# yadisk 2.x, no longer valid, will not work
async for resource in await client.listdir():
do_something(resource)
Изменения, касающиеся get_files()
До версии 3.0.0., Client.get_files() / AsyncClient.get_files() возвращал не более limit файлов, если limit != None, иначе метод возвращал все файлы.
Начиная с версии 3.0.0, для контроля числа возвращённых файлов доступен новый параметр max_items. limit влияет только на количество файлов, запрашиваемых одним запросом (запросы отправляются до тех пор, пока не получено max_items файлов или достигнут конец списка). Новое поведение соответствует Client.listdir() / AsyncClient.listdir().
get_last_uploaded() возвращает список вместо генератора
Начиная с версии 3.0.0, Client.get_last_uploaded() / AsyncClient.get_last_uploaded() возвращает список файлов вместо генератора.
Изменения интерфейса Session
В версии 3.0.0 были удалены следующие методы:
Session.set_token(),AsyncSession.set_token()Session.set_headers(),AsyncSession.set_headers().
Начиная с версии 3.0.0, все заголовки HTTP запросов (включая заголовок Authorization) передаются явным образом напрямую в Session.send_request() / AsyncSession.send_request().
Некоторые методы больше не принимают параметр fields
До версии 3.0.0, следующие методы принимали опциональный параметр fields:
Миграция с 1.x на 2.x
Слияние с yadisk-async
Начиная с версии 2.0.0, библиотека предоставляет как синхронный, так и асинхронный интерфейсы.
Изменения в обработке исключений
Начиная с версии 2.0.0, все исключения, вызванные Client и AsyncClient наследуются от YaDiskError. Исключения от нижележащих зависимостей (например, requests или aiohttp) преобразуются в RequestError. Частичный список возможных исключений приведён в документации для Client и AsyncClient. Дополнительные подробности доступны для каждого отдельного метода API.
requests и aiohttp - теперь опциональные зависимости
До версии 2.0.0, requests была указана в качестве обязательной зависимости (и aiohttp была указана как зависимость для yadisk-async). Библиотека requests всё ещё используется по умолчанию, но должна быть явным образом установлена. Что касается асинхронного API, по умолчанию теперь используется httpx, вместо aiohttp. Поддерживается несколько библиотек HTTP.
См. Доступные реализации сессий для полного списка поддерживаемых библиотек HTTP и Введение для инструкции по установке.