YaDisk-async - это библиотека-клиент REST API Яндекс.Диска с поддержкой async/await.
Данная библиотека больше не поддерживается, используйте yadisk>=2.0.0 вместо неё, она также поддерживает асинхронный API.
Документация доступна на Read the Docs (RU) и Read the Docs (EN).
pip install yadisk-async
или
python setup.py install
import yadisk_async
y = yadisk_async.YaDisk(token="<token>")
# или
# y = yadisk_async.YaDisk("<id-приложения>", "<secret-приложения>", "<токен>")
# Проверяет, валиден ли токен
print(await y.check_token())
# Получает общую информацию о диске
print(await y.get_disk_info())
# Выводит содержимое "/some/path"
print([i async for i in await y.listdir("/some/path")])
# Загружает "file_to_upload.txt" в "/destination.txt"
await y.upload("file_to_upload.txt", "/destination.txt")
# То же самое
with open("file_to_upload.txt", "rb") as f:
await y.upload(f, "/destination.txt")
# То же самое, но с aiofiles
async with aiofiles.open("file_to_upload.txt", "rb") as f:
await y.upload(f, "/destination.txt")
# Скачивает "/some-file-to-download.txt" в "downloaded.txt"
await y.download("/some-file-to-download.txt", "downloaded.txt")
# То же самое, но с aiofiles
async with aiofiles.open("downloaded.txt", "wb") as f:
await y.download("/some-file-to-download.txt", f)
# Безвозвратно удаляет "/file-to-remove"
await y.remove("/file-to-remove", permanently=True)
# Создаёт новую папку "/test-dir"
print(await y.mkdir("/test-dir"))
# Всегда закрывайте все соединения или получите предупреждение
await y.close()
- Release 1.4.5 (2023-12-14)
- Добавлено предупреждение об устаревании при импорте
- Данная библиотека больше не поддерживается, используйте yadisk>=2.0.0 вместо неё, она также поддерживает асинхронный API
- Release 1.4.4 (2023-10-15)
- Методы
upload()
иdownload()
(и связянные с ними) теперь могут загружать/скачивать файлы, не поддерживающие операциюseek()
(например,stdin
иstdout
, при условии, что они открыты в режиме"rb"
или"wb"
), см. PR #31
- Методы
- Release 1.4.3 (2023-04-22)
- Пути вида
app:/
теперь работают правильно (см. issue #26)
- Пути вида
- Release 1.4.2 (2023-03-20)
- Исправлено issue #29: TypeError: 'type' object is not subscriptable
- Исправлена ошибка (Python <3.9): TypeError: Too many parameters for typing.AsyncIterable; actual 2, expected 1
- Release 1.4.1 (2023-02-28)
- Исправлено issue #28:
TypeError
при вызовеdownload_public()
с параметромpath
- Исправлено
AttributeError
при вызовеResourceLinkObject.public_listdir()
- Исправлено issue #28:
- Release 1.4.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
были заменены более конкретными подклассами TimeoutError
теперь тоже вызывает повторную попытку- Добавлена поддержка асинхронных файлов для
download()
иupload()
- По умолчанию используется библиотека
aiofiles
для открытия файлов
- Добавлены convenience-методы для объектов
- Release 1.3.6 (2023-01-20)
- Исправлено issue #26: символ ':' в именах файлов приводит к
BadRequestError
. Это поведение вызвано работой самого REST API Яндекс.Диска, но было исправлено на уровне библиотеки.
- Исправлено issue #26: символ ':' в именах файлов приводит к
- Release 1.3.5 (2022-11-10)
- Исправлен баг в
is_file()
иis_dir()
: из-за опечатки функции вызывали исключениеAttributeError
(PR #6).
- Исправлен баг в
- Release 1.3.4 (2022-08-17)
- Исправлен баг в
check_token()
: функция могла вызватьForbiddenError
, если у приложения недостатчно прав (issue #23).
- Исправлен баг в
- Release 1.3.3 (2021-12-31)
- Исправлено: не распознавались ссылки на асинхронные операции, если они
использовали
http://
(вместоhttps://
). Иногда Яндекс.Диск может вернутьhttp://
ссылку на асинхронную операцию. Теперь обе версии ссылок распознаются правильно, при этом, при получении информации об операции (черезget_operation_status()
) всегда используетсяhttps://
версия ссылки, даже если Яндекс.Диск вернулhttp://
.
- Исправлено: не распознавались ссылки на асинхронные операции, если они
использовали
- Release 1.3.2 (2021-07-10)
- Исправлено значение
__version__
- Исправлено значение
- Release 1.3.1 (2021-07-10)
- Исправлена ошибка
AttributeError
в объектеSessionWithHeaders
(PR #1) - Исправлены тесты корзины
- Исправлена ошибка
- Release 1.3.0 (2019-07-06)
- Реализована поддержка async/await
- Библиотека была переименована из yadisk в yadisk-async
Следующие релизы относятся к оригинальной библиотеке yadisk:
- 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
) - Другие изменения информации о пакете
- Изменена лицензия на LGPLv3 (см.
- 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)
- Первый релиз