Библиотека-клиент REST API Яндекс.Диска с поддержкой async/await / Yandex.Disk REST API client library with async/await support
Project description
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)
Первый релиз
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yadisk-async-1.4.5.tar.gz.
File metadata
- Download URL: yadisk-async-1.4.5.tar.gz
- Upload date:
- Size: 58.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7d7a431e32ba41d0926022419985787f49f0acdfa79f78b91f7b9d371a017a4
|
|
| MD5 |
e564505bc2754ae79fbeab19403a37d5
|
|
| BLAKE2b-256 |
44317725848e89d0ee8ec5e71ddce69eb64bc8806d70df27dd0ce612233d474c
|
File details
Details for the file yadisk_async-1.4.5-py3-none-any.whl.
File metadata
- Download URL: yadisk_async-1.4.5-py3-none-any.whl
- Upload date:
- Size: 58.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3572893813a9104ca387f84e94224a023859230405b3661840b2c52941b3b049
|
|
| MD5 |
14747d911eb69f43764005eb029b254a
|
|
| BLAKE2b-256 |
849c5b76937e086620c4da7b010b6db56534ca41e229b8573a11cdf53521a738
|