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()
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объектаYaDiskdownload()иupload()теперь возвращаютResourceLinkObjectДо этого возвращаемые объекты
LinkObjectбыли заменены более конкретными подклассамиTimeoutErrorтеперь тоже вызывает повторную попыткуДобавлена поддержка асинхронных файлов для
download()иupload()По умолчанию используется библиотека
aiofilesдля открытия файлов
Release 1.3.6 (2023-01-20)
Исправлено issue #26: символ ‘:’ в именах файлов приводит к
BadRequestError. Это поведение вызвано работой самого REST API Яндекс.Диска, но было исправлено на уровне библиотеки.
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)Другие изменения информации о пакете
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иGatewayTimeoutErrorlistdir()теперь вызывает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)
Первый релиз
Metadata
Release files for yadisk-async 1.4.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| yadisk-async-1.4.5.tar.gz | 58.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| yadisk_async-1.4.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 116.8 kB
Release files / yadisk-async-1.4.5.tar.gz
| Download URL | yadisk-async-1.4.5.tar.gz |
|---|---|
| Size | 58.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c7d7a431e32ba41d0926022419985787f49f0acdfa79f78b91f7b9d371a017a4
|
|
BLAKE2b-256 checksum How to use checksums |
44317725848e89d0ee8ec5e71ddce69eb64bc8806d70df27dd0ce612233d474c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.12.1
|
Release files / yadisk_async-1.4.5-py3-none-any.whl
| Download URL | yadisk_async-1.4.5-py3-none-any.whl |
|---|---|
| Size | 58.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3572893813a9104ca387f84e94224a023859230405b3661840b2c52941b3b049
|
|
BLAKE2b-256 checksum How to use checksums |
849c5b76937e086620c4da7b010b6db56534ca41e229b8573a11cdf53521a738
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.12.1
|