История изменений
Release 2.1.0 (2024-01-03)
Исправлен баг, из-за которого параметры в теле POST-запроса неправильно кодировались
Исправлен баг в
PycURLSession.send_request()
, из-за которого переданные заголовки игнорировалисьRequestsSession.close()
теперь закрывает сессию для всех потоковВсе методы
Client
иAsyncClient
теперь используют существующую сессиюУдалены аттрибут
session_factory
и методmake_session()
классовClient
иAsyncClient
Класс сессии теперь может быть указан в качестве строки (см.
Client
/AsyncClient
)Добавлены методы
Client.get_device_code()
/AsyncClient.get_device_code()
Добавлены методы
Client.get_token_from_device_code()
/AsyncClient.get_token_from_device_code()
Добавлен недостающий параметр
redirect_uri
дляClient.get_auth_url()
/AsyncClient.get_auth_url()
иClient.get_code_url()
/AsyncClient.get_code_url()
Добавлена поддержка параметров PKCE для
Client.get_auth_url()
/AsyncClient.get_auth_url()
,Client.get_code_url()
/AsyncClient.get_code_url()
иClient.get_token()
/AsyncClient.get_token()
Добавлен аттрибут
scope
дляTokenObject
Добавлены новые классы исключений:
InvalidClientError
,InvalidGrantError
,AuthorizationPendingError
,BadVerificationCodeError
иUnsupportedTokenTypeError
Release 2.0.0 (2023-12-12)
Библиотека теперь предоставляет как синхронный, так и асинхронный API (см. Введение и Справочник API)
Теперь поддерживается несколько HTTP библиотек (см. Доступные реализации сессий для полного списка)
Теперь возможно добавить поддержку любой HTTP библиотеки (см. Интерфейс Session)
requests - теперь опциональная зависимость (хотя всё ещё используется по умолчанию для синхронного API)
Обратите внимание, что аргументы, специфичные для requests теперь передаются по другому (см. Доступные реализации сессий)
Предпочитаемые HTTP библиотеки теперь должны быть установлены явным образом (см. Введение)
Client.upload()
иClient.upload_by_link()
теперь могут принимать функцию, возвращающую итератор (или генератор) в качестве полезной нагрузки
Release 1.3.4 (2023-10-15)
Методы upload() и download() (и связянные с ними) теперь могут загружать/скачивать файлы, не поддерживающие операцию seek() (например, stdin и stdout, при условии, что они открыты в режиме «rb» или «wb»), см. PR #31
Release 1.3.3 (2023-04-22)
Пути вида app:/ теперь работают правильно (см. issue #26)
Release 1.3.2 (2023-03-20)
Исправлено issue #29: TypeError: „type“ object is not subscriptable
Release 1.3.1 (2023-02-28)
Исправлено issue #28: TypeError при вызове download_public() с параметром path
Исправлено AttributeError при вызове ResourceLinkObject.public_listdir()
Release 1.3.0 (2023-01-30)
Добавлены convenience-методы для объектов …Object (например, см. ResourceObject)
Добавлены подсказки типов (type hints)
Улучшены проверки ошибок и проверка ответа
Добавлены InvalidResponseError, PayloadTooLargeError, UploadTrafficLimitExceededError
Добавлено несколько недостающих полей объектов DiskInfoObject и SystemFoldersObject
Добавлены методы rename(), upload_by_link() и download_by_link()
Добавлен аттрибут default_args объекта YaDisk
download() и upload() теперь возвращают ResourceLinkObject
До этого возвращаемые объекты LinkObject были заменены более конкретными подклассами
ConnectionError
теперь тоже вызывает повторную попытку
Release 1.2.19 (2023-01-20)
Исправлено неправильное поведение фикса из 1.2.18 для путей disk: и trash:.
Release 1.2.18 (2023-01-20)
Исправлено issue #26: символ „:“ в именах файлов приводит к BadRequestError. Это поведение вызвано работой самого REST API Яндекс.Диска, но было исправлено на уровне библиотеки.
Release 1.2.17 (2022-12-11)
Исправлен баг, связанный с автоматическим закрытием сессии.Использование метода __del__() приводило в некоторых случаях к ошибке ReferenceError (ошибка игнорировалась, но сообщение выводилось).Баг проявляется по большей части в старых версиях Python (например 3.4).
Release 1.2.16 (2022-08-17)
Исправлен баг в check_token(): функция могла вызвать
ForbiddenError
, если у приложения недостатчно прав (issue #23).
Release 1.2.15 (2021-12-31)
Исправлено: не распознавались ссылки на асинхронные операции, если они использовали http:// (вместо https://). Иногда Яндекс.Диск может вернуть http:// ссылку на асинхронную операцию. Теперь обе версии ссылок распознаются правильно, при этом, при получении информации об операции (через get_operation_status()) всегда используется https:// версия ссылки, даже если Яндекс.Диск вернул http://.
Release 1.2.14 (2019-03-26)
Исправлена ошибка TypeError в функциях get_public_* при использовании с параметром path (issue #7)
Добавлен аттрибут unlimited_autoupload_enabled для DiskInfoObject
Release 1.2.13 (2019-02-23)
Добавлен параметр md5 для remove()
Добавлен UserPublicInfoObject
Добавлен аттрибут country для UserObject
Добавлен аттрибут photoslice_time для ResourceObject, PublicResourceObject и TrashResourceObject
Release 1.2.12 (2018-10-11)
Исправлен баг: не работает параметр fields в listdir() (issue #4)
Release 1.2.11 (2018-06-30)
Добавлен недостающий параметр sort для get_meta()
Добавлены аттрибуты file и antivirus_status для ResourceObject, PublicResourceObject и TrashResourceObject
Добавлен параметр headers
Исправлена опечатка в download() и download_public() (issue #2)
Убран параметр *args
Release 1.2.10 (2018-06-14)
Исправлено поведение timeout=None. None должен означать „без таймаута“, но в предыдущих версиях значение None было синонимично со стандартным таймаутом.
Release 1.2.9 (2018-04-28)
Изменена лицензия на LGPLv3 (см. COPYING и COPYING.lesser)
Другие изменения информации о пакете
Release 1.2.8 (2018-04-17)
Исправлено несколько опечаток: у PublicResourceListObject.items и TrashResourceListObject.items были неправильные типы данных
Псевдонимы полей в параметре fields заменяются при выполнении запросов API (например, embedded -> _embedded)
Release 1.2.7 (2018-04-15)
Исправлен баг перемотки файла при загрузке/скачивании после повторной попытки
Release 1.2.6 (2018-04-13)
Теперь объекты сессий requests кэшируются, чтобы их можно было переиспользовать (иногда может существенно ускорить выполнение запросов)
keep-alive отключается при загрузке/скачивании файлов по умолчанию
Release 1.2.5 (2018-03-31)
Исправлен баг (ошибка на единицу) в utils.auto_retry() (иногда мог вызвать AttributeError)
Повторные попытки применяются для upload(), download() и download_public() целиком
Задано stream=True для download() и download_public()
Другие мелкие исправления
Release 1.2.4 (2018-02-19)
Исправлена опечатка (TokenObject.exprires_in -> TokenObject.expires_in)
Release 1.2.3 (2018-01-20)
Исправлено TypeError при вызове WrongResourceTypeError
Release 1.2.2 (2018-01-19)
refresh_token() больше не требует валидный или пустой токен.
Release 1.2.1 (2018-01-14)
Исправлена неработоспособность повторных попыток.
Release 1.2.0 (2018-01-14)
Исправлено использование n_retries=0 в upload(), download() и download_public()
upload(), download() и download_public() больше не возвращают ничего (см. документацию)
Добавлен модуль utils (см. документацию)
Добавлены RetriableYaDiskError, WrongResourceTypeError, BadGatewayError и GatewayTimeoutError
listdir() теперь вызывает WrongResourceTypeError вместо NotADirectoryError
Release 1.1.1 (2017-12-29)
Исправлена обработка аргументов в upload(), download() и download_public(). До этого использование n_retries и retry_interval вызывало исключение (TypeError).
Release 1.1.0 (2017-12-27)
Усовершенствованные исключения (см. документацию)
Добавлена поддержка параметра force_async
Мелкие исправления багов
Release 1.0.8 (2017-11-29)
Исправлен ещё один баг в listdir()
Release 1.0.7 (2017-11-04)
Добавлен install_requires в setup.py
Release 1.0.6 (2017-11-04)
Некоторые функции теперь возвращают OperationLinkObject
Release 1.0.5 (2017-10-29)
Исправлен setup.py, теперь исключает тесты
Release 1.0.4 (2017-10-23)
Исправлены баги в upload, download и listdir
Значение по-умолчанию limit в listdir установлено в 10000
Release 1.0.3 (2017-10-22)
Добавлен модуль settings
Release 1.0.2 (2017-10-19)
Исправлена функция get_code_url (добавлены недостающие параметры)
Release 1.0.1 (2017-10-18)
Исправлен серьёзный баг в GetTokenRequest (добавлен недостающий параметр)
Release 1.0.0 (2017-10-18)
Первый релиз