Библиотека-клиент 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
объектаYaDisk
download()
и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
и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)
Первый релиз
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
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 |