YaDisk-async
============
.. image:: https://img.shields.io/readthedocs/yadisk-async.svg
:alt: Read the Docs
:target: https://yadisk-async.readthedocs.io/en/latest/
.. image:: https://img.shields.io/pypi/v/yadisk-async.svg
:alt: PyPI
:target: https://pypi.org/project/yadisk-async
YaDisk-async - это библиотека-клиент REST API Яндекс.Диска с поддержкой async/await.
Данная библиотека больше не поддерживается, используйте
`yadisk <https://pypi.org/project/yadisk>`__>=2.0.0 вместо неё, она также
поддерживает асинхронный API.
.. _Read the Docs (EN): http://yadisk-async.readthedocs.io
.. _Read the Docs (RU): http://yadisk-async.readthedocs.io/ru/latest
Документация доступна на `Read the Docs (RU)`_ и `Read the Docs (EN)`_.
Установка
*********
.. code:: bash
pip install yadisk-async
или
.. code:: bash
python setup.py install
Примеры
*******
.. code:: python
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()
История изменений
*****************
.. _yadisk: https://github.com/ivknv/yadisk
.. _issue #2: https://github.com/ivknv/yadisk/issues/2
.. _issue #4: https://github.com/ivknv/yadisk/issues/4
.. _issue #7: https://github.com/ivknv/yadisk/issues/7
.. _PR #1: https://github.com/ivknv/yadisk-async/pull/1
.. _issue #23: https://github.com/ivknv/yadisk/issues/23
.. _PR #6: https://github.com/ivknv/yadisk-async/pull/6
.. _issue #26: https://github.com/ivknv/yadisk/issues/26
.. _issue #28: https://github.com/ivknv/yadisk/issues/28
.. _issue #29: https://github.com/ivknv/yadisk/issues/29
.. _PR #31: https://github.com/ivknv/yadisk/pull/31
* **Release 1.4.5 (2023-12-14)**
* Добавлено предупреждение об устаревании при импорте
* Данная библиотека больше не поддерживается, используйте `yadisk
<https://pypi.org/project/yadisk>`__>=2.0.0 вместо неё, она также поддерживает
асинхронный API
* **Release 1.4.4 (2023-10-15)**
* Методы :code:`upload()` и :code:`download()` (и связянные с ними) теперь
могут загружать/скачивать файлы, не поддерживающие операцию :code:`seek()`
(например, :code:`stdin` и :code:`stdout`, при условии, что они открыты в
режиме :code:`"rb"` или :code:`"wb"`), см. `PR #31`_
* **Release 1.4.3 (2023-04-22)**
* Пути вида :code:`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`_: :code:`TypeError` при вызове :code:`download_public()` с параметром :code:`path`
* Исправлено :code:`AttributeError` при вызове :code:`ResourceLinkObject.public_listdir()`
* **Release 1.4.0 (2023-01-30)**
* Добавлены convenience-методы для объектов :code:`...Object` (например, см. :code:`ResourceObject`)
* Добавлены подсказки типов (type hints)
* Улучшены проверки ошибок и проверка ответа
* Добавлены :code:`InvalidResponseError`, :code:`PayloadTooLargeError`, :code:`UploadTrafficLimitExceededError`
* Добавлено несколько недостающих полей объектов :code:`DiskInfoObject` и :code:`SystemFoldersObject`
* Добавлены методы :code:`rename()`, :code:`upload_by_link()` и :code:`download_by_link()`
* Добавлен аттрибут :code:`default_args` объекта :code:`YaDisk`
* :code:`download()` и :code:`upload()` теперь возвращают :code:`ResourceLinkObject`
* До этого возвращаемые объекты :code:`LinkObject` были заменены более конкретными подклассами
* :code:`TimeoutError` теперь тоже вызывает повторную попытку
* Добавлена поддержка асинхронных файлов для :code:`download()` и :code:`upload()`
* По умолчанию используется библиотека :code:`aiofiles` для открытия файлов
* **Release 1.3.6 (2023-01-20)**
* Исправлено `issue #26`_: символ ':' в именах файлов приводит к
:code:`BadRequestError`. Это поведение вызвано работой самого REST API
Яндекс.Диска, но было исправлено на уровне библиотеки.
* **Release 1.3.5 (2022-11-10)**
* Исправлен баг в :code:`is_file()` и :code:`is_dir()`: из-за опечатки функции
вызывали исключение :code:`AttributeError` (`PR #6`_).
* **Release 1.3.4 (2022-08-17)**
* Исправлен баг в :code:`check_token()`: функция могла вызвать :code:`ForbiddenError`,
если у приложения недостатчно прав (`issue #23`_).
* **Release 1.3.3 (2021-12-31)**
* Исправлено: не распознавались ссылки на асинхронные операции, если они
использовали :code:`http://` (вместо :code:`https://`).
Иногда Яндекс.Диск может вернуть :code:`http://` ссылку на асинхронную
операцию. Теперь обе версии ссылок распознаются правильно, при этом,
при получении информации об операции (через :code:`get_operation_status()`)
всегда используется :code:`https://` версия ссылки, даже если Яндекс.Диск
вернул :code:`http://`.
* **Release 1.3.2 (2021-07-10)**
* Исправлено значение :code:`__version__`
* **Release 1.3.1 (2021-07-10)**
* Исправлена ошибка :code:`AttributeError` в объекте :code:`SessionWithHeaders` (`PR #1`_)
* Исправлены тесты корзины
* **Release 1.3.0 (2019-07-06)**
* Реализована поддержка `async/await`
* Библиотека была переименована из `yadisk`_ в `yadisk-async`
Следующие релизы относятся к оригинальной библиотеке `yadisk`_:
* **Release 1.2.14 (2019-03-26)**
* Исправлена ошибка :code:`TypeError` в функциях :code:`get_public_*` при
использовании с параметром :code:`path` (`issue #7`_)
* Добавлен аттрибут :code:`unlimited_autoupload_enabled` для :code:`DiskInfoObject`
* **Release 1.2.13 (2019-02-23)**
* Добавлен :code:`md5` параметр для :code:`remove()`
* Добавлен :code:`UserPublicInfoObject`
* Добавлен аттрибут :code:`country` для :code:`UserObject`
* Добавлен аттрибут :code:`photoslice_time` для :code:`ResourceObject`, :code:`PublicResourceObject`
и :code:`TrashResourceObject`
* **Release 1.2.12 (2018-10-11)**
* Исправлен баг: не работает параметр `fields` в `listdir()` (`issue #4`_)
* **Release 1.2.11 (2018-06-30)**
* Добавлен недостающий параметр :code:`sort` для :code:`get_meta()`
* Добавлены аттрибуты :code:`file` и :code:`antivirus_status` для :code:`ResourceObject`,
:code:`PublicResourceObject` и :code:`TrashResourceObject`
* Добавлен параметр :code:`headers`
* Исправлена опечатка в :code:`download()` и :code:`download_public()` (`issue #2`_)
* Убран параметр :code:`*args`
* **Release 1.2.10 (2018-06-14)**
* Исправлено поведение :code:`timeout=None`. :code:`None` должен означать „без таймаута“,
но в предыдущих версиях значение :code:`None` было синонимично со стандартным таймаутом.
* **Release 1.2.9 (2018-04-28)**
* Изменена лицензия на LGPLv3 (см. :code:`COPYING` и :code:`COPYING.lesser`)
* Другие изменения информации о пакете
* **Release 1.2.8 (2018-04-17)**
* Исправлено несколько опечаток: у :code:`PublicResourceListObject.items` и
:code:`TrashResourceListObject.items` были неправильные типы данных
* Псевдонимы полей в параметре :code:`fields` заменяются при выполнении
запросов API (например, :code:`embedded` -> :code:`_embedded`)
* **Release 1.2.7 (2018-04-15)**
* Исправлен баг перемотки файла при загрузке/скачивании после повторной попытки
* **Release 1.2.6 (2018-04-13)**
* Теперь объекты сессий :code:`requests` кэшируются, чтобы их можно
было переиспользовать (иногда может существенно ускорить выполнение запросов)
* :code:`keep-alive` отключается при загрузке/скачивании файлов по умолчанию
* **Release 1.2.5 (2018-03-31)**
* Исправлен баг (ошибка на единицу) в :code:`utils.auto_retry()` (иногда мог вызвать :code:`AttributeError`)
* Повторные попытки применяются для :code:`upload()`, :code:`download()` и :code:`download_public()` целиком
* Задано :code:`stream=True` для :code:`download()` и :code:`download_public()`
* Другие мелкие исправления
* **Release 1.2.4 (2018-02-19)**
* Исправлена опечатка (:code:`TokenObject.exprires_in` -> :code:`TokenObject.expires_in`)
* **Release 1.2.3 (2018-01-20)**
* Исправлено :code:`TypeError` при вызове :code:`WrongResourceTypeError`
* **Release 1.2.2 (2018-01-19)**
* :code:`refresh_token()` больше не требует валидный или пустой токен.
* **Release 1.2.1 (2018-01-14)**
* Исправлена неработоспособность повторных попыток.
* **Release 1.2.0 (2018-01-14)**
* Исправлено использование :code:`n_retries=0` в :code:`upload()`, :code:`download()` и :code:`download_public()`
* :code:`upload()`, :code:`download()` и :code:`download_public()` больше не возвращают ничего (см. документацию)
* Добавлен модуль :code:`utils` (см. документацию)
* Добавлены :code:`RetriableYaDiskError`, :code:`WrongResourceTypeError`, :code:`BadGatewayError` и :code:`GatewayTimeoutError`
* :code:`listdir()` теперь вызывает :code:`WrongResourceTypeError` вместо :code:`NotADirectoryError`
* **Release 1.1.1 (2017-12-29)**
* Исправлена обработка аргументов в :code:`upload()`, :code:`download()` и :code:`download_public()`.
До этого использование :code:`n_retries` и :code:`retry_interval` вызывало исключение (:code:`TypeError`).
* **Release 1.1.0 (2017-12-27)**
* Усовершенствованные исключения (см. документацию)
* Добавлена поддержка параметра :code:`force_async`
* Мелкие исправления багов
* **Release 1.0.8 (2017-11-29)**
* Исправлен ещё один баг в :code:`listdir()`
* **Release 1.0.7 (2017-11-04)**
* Добавлен :code:`install_requires` в :code:`setup.py`
* **Release 1.0.6 (2017-11-04)**
* Некоторые функции теперь возвращают :code:`OperationLinkObject`
* **Release 1.0.5 (2017-10-29)**
* Исправлен :code:`setup.py`, теперь исключает тесты
* **Release 1.0.4 (2017-10-23)**
* Исправлены баги в :code:`upload`, :code:`download` и :code:`listdir`
* Значение по-умолчанию :code:`limit` в :code:`listdir` установлено в :code:`10000`
* **Release 1.0.3 (2017-10-22)**
* Добавлен модуль :code:`settings`
* **Release 1.0.2 (2017-10-19)**
* Исправлена функция :code:`get_code_url` (добавлены недостающие параметры)
* **Release 1.0.1 (2017-10-18)**
* Исправлен серьёзный баг в :code:`GetTokenRequest` (добавлен недостающий параметр)
* **Release 1.0.0 (2017-10-18)**
* Первый релиз
Raw data
{
"_id": null,
"home_page": "https://github.com/ivknv/yadisk-async",
"name": "yadisk-async",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "yandex yandex.disk rest async",
"author": "Ivan Konovalov",
"author_email": "ivknv0@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/44/31/7725848e89d0ee8ec5e71ddce69eb64bc8806d70df27dd0ce612233d474c/yadisk-async-1.4.5.tar.gz",
"platform": null,
"description": "YaDisk-async\n============\n\n.. image:: https://img.shields.io/readthedocs/yadisk-async.svg\n :alt: Read the Docs\n :target: https://yadisk-async.readthedocs.io/en/latest/\n\n.. image:: https://img.shields.io/pypi/v/yadisk-async.svg\n :alt: PyPI\n :target: https://pypi.org/project/yadisk-async\n\nYaDisk-async - \u044d\u0442\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430-\u043a\u043b\u0438\u0435\u043d\u0442 REST API \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0438\u0441\u043a\u0430 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 async/await.\n\n \u0414\u0430\u043d\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\n `yadisk <https://pypi.org/project/yadisk>`__>=2.0.0 \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0435\u0451, \u043e\u043d\u0430 \u0442\u0430\u043a\u0436\u0435\n \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 API.\n\n.. _Read the Docs (EN): http://yadisk-async.readthedocs.io\n.. _Read the Docs (RU): http://yadisk-async.readthedocs.io/ru/latest\n\n\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043d\u0430 `Read the Docs (RU)`_ \u0438 `Read the Docs (EN)`_.\n\n\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n*********\n\n.. code:: bash\n\n pip install yadisk-async\n\n\u0438\u043b\u0438\n\n.. code:: bash\n\n python setup.py install\n\n\u041f\u0440\u0438\u043c\u0435\u0440\u044b\n*******\n\n.. code:: python\n\n import yadisk_async\n\n y = yadisk_async.YaDisk(token=\"<token>\")\n # \u0438\u043b\u0438\n # y = yadisk_async.YaDisk(\"<id-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f>\", \"<secret-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f>\", \"<\u0442\u043e\u043a\u0435\u043d>\")\n\n # \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0432\u0430\u043b\u0438\u0434\u0435\u043d \u043b\u0438 \u0442\u043e\u043a\u0435\u043d\n print(await y.check_token())\n\n # \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0431\u0449\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0434\u0438\u0441\u043a\u0435\n print(await y.get_disk_info())\n\n # \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \"/some/path\"\n print([i async for i in await y.listdir(\"/some/path\")])\n\n # \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \"file_to_upload.txt\" \u0432 \"/destination.txt\"\n await y.upload(\"file_to_upload.txt\", \"/destination.txt\")\n\n # \u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435\n with open(\"file_to_upload.txt\", \"rb\") as f:\n await y.upload(f, \"/destination.txt\")\n\n # \u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u043d\u043e \u0441 aiofiles\n async with aiofiles.open(\"file_to_upload.txt\", \"rb\") as f:\n await y.upload(f, \"/destination.txt\")\n\n # \u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \"/some-file-to-download.txt\" \u0432 \"downloaded.txt\"\n await y.download(\"/some-file-to-download.txt\", \"downloaded.txt\")\n\n # \u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u043d\u043e \u0441 aiofiles\n async with aiofiles.open(\"downloaded.txt\", \"wb\") as f:\n await y.download(\"/some-file-to-download.txt\", f)\n\n # \u0411\u0435\u0437\u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u043e \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \"/file-to-remove\"\n await y.remove(\"/file-to-remove\", permanently=True)\n\n # \u0421\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \"/test-dir\"\n print(await y.mkdir(\"/test-dir\"))\n\n # \u0412\u0441\u0435\u0433\u0434\u0430 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0439\u0442\u0435 \u0432\u0441\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435\n await y.close()\n\n\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439\n*****************\n\n.. _yadisk: https://github.com/ivknv/yadisk\n\n.. _issue #2: https://github.com/ivknv/yadisk/issues/2\n.. _issue #4: https://github.com/ivknv/yadisk/issues/4\n.. _issue #7: https://github.com/ivknv/yadisk/issues/7\n.. _PR #1: https://github.com/ivknv/yadisk-async/pull/1\n.. _issue #23: https://github.com/ivknv/yadisk/issues/23\n.. _PR #6: https://github.com/ivknv/yadisk-async/pull/6\n.. _issue #26: https://github.com/ivknv/yadisk/issues/26\n.. _issue #28: https://github.com/ivknv/yadisk/issues/28\n.. _issue #29: https://github.com/ivknv/yadisk/issues/29\n.. _PR #31: https://github.com/ivknv/yadisk/pull/31\n\n* **Release 1.4.5 (2023-12-14)**\n\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043e\u0431 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0430\u043d\u0438\u0438 \u043f\u0440\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0435\n * \u0414\u0430\u043d\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `yadisk\n <https://pypi.org/project/yadisk>`__>=2.0.0 \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0435\u0451, \u043e\u043d\u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\n \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 API\n\n* **Release 1.4.4 (2023-10-15)**\n\n * \u041c\u0435\u0442\u043e\u0434\u044b :code:`upload()` \u0438 :code:`download()` (\u0438 \u0441\u0432\u044f\u0437\u044f\u043d\u043d\u044b\u0435 \u0441 \u043d\u0438\u043c\u0438) \u0442\u0435\u043f\u0435\u0440\u044c\n \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c/\u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b, \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e :code:`seek()`\n (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, :code:`stdin` \u0438 :code:`stdout`, \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e \u043e\u043d\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044b \u0432\n \u0440\u0435\u0436\u0438\u043c\u0435 :code:`\"rb\"` \u0438\u043b\u0438 :code:`\"wb\"`), \u0441\u043c. `PR #31`_\n\n* **Release 1.4.3 (2023-04-22)**\n\n * \u041f\u0443\u0442\u0438 \u0432\u0438\u0434\u0430 :code:`app:/` \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e (\u0441\u043c. `issue #26`_)\n\n* **Release 1.4.2 (2023-03-20)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e `issue #29`_: TypeError: 'type' object is not subscriptable\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 (Python <3.9): TypeError: Too many parameters for typing.AsyncIterable; actual 2, expected 1\n\n* **Release 1.4.1 (2023-02-28)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e `issue #28`_: :code:`TypeError` \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 :code:`download_public()` \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c :code:`path`\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e :code:`AttributeError` \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 :code:`ResourceLinkObject.public_listdir()`\n\n* **Release 1.4.0 (2023-01-30)**\n\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b convenience-\u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 :code:`...Object` (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043c. :code:`ResourceObject`)\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438 \u0442\u0438\u043f\u043e\u0432 (type hints)\n * \u0423\u043b\u0443\u0447\u0448\u0435\u043d\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043e\u0442\u0432\u0435\u0442\u0430\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b :code:`InvalidResponseError`, :code:`PayloadTooLargeError`, :code:`UploadTrafficLimitExceededError`\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0445 \u043f\u043e\u043b\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 :code:`DiskInfoObject` \u0438 :code:`SystemFoldersObject`\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043c\u0435\u0442\u043e\u0434\u044b :code:`rename()`, :code:`upload_by_link()` \u0438 :code:`download_by_link()`\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0430\u0442\u0442\u0440\u0438\u0431\u0443\u0442 :code:`default_args` \u043e\u0431\u044a\u0435\u043a\u0442\u0430 :code:`YaDisk`\n * :code:`download()` \u0438 :code:`upload()` \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 :code:`ResourceLinkObject`\n * \u0414\u043e \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b :code:`LinkObject` \u0431\u044b\u043b\u0438 \u0437\u0430\u043c\u0435\u043d\u0435\u043d\u044b \u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c\u0438 \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438\n * :code:`TimeoutError` \u0442\u0435\u043f\u0435\u0440\u044c \u0442\u043e\u0436\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u0443\u044e \u043f\u043e\u043f\u044b\u0442\u043a\u0443\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f :code:`download()` \u0438 :code:`upload()`\n * \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 :code:`aiofiles` \u0434\u043b\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432\n\n* **Release 1.3.6 (2023-01-20)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e `issue #26`_: \u0441\u0438\u043c\u0432\u043e\u043b ':' \u0432 \u0438\u043c\u0435\u043d\u0430\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a\n :code:`BadRequestError`. \u042d\u0442\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u044b\u0437\u0432\u0430\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u0441\u0430\u043c\u043e\u0433\u043e REST API\n \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0438\u0441\u043a\u0430, \u043d\u043e \u0431\u044b\u043b\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438.\n\n* **Release 1.3.5 (2022-11-10)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u0431\u0430\u0433 \u0432 :code:`is_file()` \u0438 :code:`is_dir()`: \u0438\u0437-\u0437\u0430 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438\n \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 :code:`AttributeError` (`PR #6`_).\n\n* **Release 1.3.4 (2022-08-17)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u0431\u0430\u0433 \u0432 :code:`check_token()`: \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043c\u043e\u0433\u043b\u0430 \u0432\u044b\u0437\u0432\u0430\u0442\u044c :code:`ForbiddenError`,\n \u0435\u0441\u043b\u0438 \u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u0447\u043d\u043e \u043f\u0440\u0430\u0432 (`issue #23`_).\n\n* **Release 1.3.3 (2021-12-31)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e: \u043d\u0435 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043b\u0438\u0441\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438\n \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 :code:`http://` (\u0432\u043c\u0435\u0441\u0442\u043e :code:`https://`).\n \u0418\u043d\u043e\u0433\u0434\u0430 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0438\u0441\u043a \u043c\u043e\u0436\u0435\u0442 \u0432\u0435\u0440\u043d\u0443\u0442\u044c :code:`http://` \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0443\u044e\n \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e. \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0431\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u0441\u044b\u043b\u043e\u043a \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c,\n \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 (\u0447\u0435\u0440\u0435\u0437 :code:`get_operation_status()`)\n \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f :code:`https://` \u0432\u0435\u0440\u0441\u0438\u044f \u0441\u0441\u044b\u043b\u043a\u0438, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0438\u0441\u043a\n \u0432\u0435\u0440\u043d\u0443\u043b :code:`http://`.\n\n* **Release 1.3.2 (2021-07-10)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 :code:`__version__`\n\n* **Release 1.3.1 (2021-07-10)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 :code:`AttributeError` \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 :code:`SessionWithHeaders` (`PR #1`_)\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b \u0442\u0435\u0441\u0442\u044b \u043a\u043e\u0440\u0437\u0438\u043d\u044b\n\n* **Release 1.3.0 (2019-07-06)**\n\n * \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 `async/await`\n * \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0431\u044b\u043b\u0430 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0430 \u0438\u0437 `yadisk`_ \u0432 `yadisk-async`\n\n\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0440\u0435\u043b\u0438\u0437\u044b \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 `yadisk`_:\n\n* **Release 1.2.14 (2019-03-26)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 :code:`TypeError` \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 :code:`get_public_*` \u043f\u0440\u0438\n \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c :code:`path` (`issue #7`_)\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0430\u0442\u0442\u0440\u0438\u0431\u0443\u0442 :code:`unlimited_autoupload_enabled` \u0434\u043b\u044f :code:`DiskInfoObject`\n\n* **Release 1.2.13 (2019-02-23)**\n\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d :code:`md5` \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0434\u043b\u044f :code:`remove()`\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d :code:`UserPublicInfoObject`\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0430\u0442\u0442\u0440\u0438\u0431\u0443\u0442 :code:`country` \u0434\u043b\u044f :code:`UserObject`\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0430\u0442\u0442\u0440\u0438\u0431\u0443\u0442 :code:`photoslice_time` \u0434\u043b\u044f :code:`ResourceObject`, :code:`PublicResourceObject`\n \u0438 :code:`TrashResourceObject`\n\n* **Release 1.2.12 (2018-10-11)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u0431\u0430\u0433: \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 `fields` \u0432 `listdir()` (`issue #4`_)\n\n* **Release 1.2.11 (2018-06-30)**\n\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 :code:`sort` \u0434\u043b\u044f :code:`get_meta()`\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0430\u0442\u0442\u0440\u0438\u0431\u0443\u0442\u044b :code:`file` \u0438 :code:`antivirus_status` \u0434\u043b\u044f :code:`ResourceObject`,\n :code:`PublicResourceObject` \u0438 :code:`TrashResourceObject`\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 :code:`headers`\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0432 :code:`download()` \u0438 :code:`download_public()` (`issue #2`_)\n * \u0423\u0431\u0440\u0430\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 :code:`*args`\n\n* **Release 1.2.10 (2018-06-14)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 :code:`timeout=None`. :code:`None` \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u201e\u0431\u0435\u0437 \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u0430\u201c,\n \u043d\u043e \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 :code:`None` \u0431\u044b\u043b\u043e \u0441\u0438\u043d\u043e\u043d\u0438\u043c\u0438\u0447\u043d\u043e \u0441\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u043e\u043c.\n\n* **Release 1.2.9 (2018-04-28)**\n\n * \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0430 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f \u043d\u0430 LGPLv3 (\u0441\u043c. :code:`COPYING` \u0438 :code:`COPYING.lesser`)\n * \u0414\u0440\u0443\u0433\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043f\u0430\u043a\u0435\u0442\u0435\n\n* **Release 1.2.8 (2018-04-17)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a: \u0443 :code:`PublicResourceListObject.items` \u0438\n :code:`TrashResourceListObject.items` \u0431\u044b\u043b\u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445\n * \u041f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u044b \u043f\u043e\u043b\u0435\u0439 \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 :code:`fields` \u0437\u0430\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438\n \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 API (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, :code:`embedded` -> :code:`_embedded`)\n\n* **Release 1.2.7 (2018-04-15)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u0431\u0430\u0433 \u043f\u0435\u0440\u0435\u043c\u043e\u0442\u043a\u0438 \u0444\u0430\u0439\u043b\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435/\u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0438\n\n* **Release 1.2.6 (2018-04-13)**\n\n * \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0441\u0435\u0441\u0441\u0438\u0439 :code:`requests` \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0442\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u0438\u0445 \u043c\u043e\u0436\u043d\u043e\n \u0431\u044b\u043b\u043e \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c (\u0438\u043d\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432)\n * :code:`keep-alive` \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435/\u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\n\n* **Release 1.2.5 (2018-03-31)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u0431\u0430\u0433 (\u043e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443) \u0432 :code:`utils.auto_retry()` (\u0438\u043d\u043e\u0433\u0434\u0430 \u043c\u043e\u0433 \u0432\u044b\u0437\u0432\u0430\u0442\u044c :code:`AttributeError`)\n * \u041f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0434\u043b\u044f :code:`upload()`, :code:`download()` \u0438 :code:`download_public()` \u0446\u0435\u043b\u0438\u043a\u043e\u043c\n * \u0417\u0430\u0434\u0430\u043d\u043e :code:`stream=True` \u0434\u043b\u044f :code:`download()` \u0438 :code:`download_public()`\n * \u0414\u0440\u0443\u0433\u0438\u0435 \u043c\u0435\u043b\u043a\u0438\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\n\n* **Release 1.2.4 (2018-02-19)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 (:code:`TokenObject.exprires_in` -> :code:`TokenObject.expires_in`)\n\n* **Release 1.2.3 (2018-01-20)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e :code:`TypeError` \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 :code:`WrongResourceTypeError`\n\n* **Release 1.2.2 (2018-01-19)**\n\n * :code:`refresh_token()` \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \u0438\u043b\u0438 \u043f\u0443\u0441\u0442\u043e\u0439 \u0442\u043e\u043a\u0435\u043d.\n\n* **Release 1.2.1 (2018-01-14)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0435\u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0445 \u043f\u043e\u043f\u044b\u0442\u043e\u043a.\n\n* **Release 1.2.0 (2018-01-14)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 :code:`n_retries=0` \u0432 :code:`upload()`, :code:`download()` \u0438 :code:`download_public()`\n * :code:`upload()`, :code:`download()` \u0438 :code:`download_public()` \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u043d\u0438\u0447\u0435\u0433\u043e (\u0441\u043c. \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e)\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043c\u043e\u0434\u0443\u043b\u044c :code:`utils` (\u0441\u043c. \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e)\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b :code:`RetriableYaDiskError`, :code:`WrongResourceTypeError`, :code:`BadGatewayError` \u0438 :code:`GatewayTimeoutError`\n * :code:`listdir()` \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 :code:`WrongResourceTypeError` \u0432\u043c\u0435\u0441\u0442\u043e :code:`NotADirectoryError`\n\n* **Release 1.1.1 (2017-12-29)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 :code:`upload()`, :code:`download()` \u0438 :code:`download_public()`.\n \u0414\u043e \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 :code:`n_retries` \u0438 :code:`retry_interval` \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 (:code:`TypeError`).\n\n* **Release 1.1.0 (2017-12-27)**\n\n * \u0423\u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f (\u0441\u043c. \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e)\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 :code:`force_async`\n * \u041c\u0435\u043b\u043a\u0438\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0433\u043e\u0432\n\n* **Release 1.0.8 (2017-11-29)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0431\u0430\u0433 \u0432 :code:`listdir()`\n\n* **Release 1.0.7 (2017-11-04)**\n\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d :code:`install_requires` \u0432 :code:`setup.py`\n\n* **Release 1.0.6 (2017-11-04)**\n\n * \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 :code:`OperationLinkObject`\n\n* **Release 1.0.5 (2017-10-29)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d :code:`setup.py`, \u0442\u0435\u043f\u0435\u0440\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0442\u0435\u0441\u0442\u044b\n\n* **Release 1.0.4 (2017-10-23)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b \u0431\u0430\u0433\u0438 \u0432 :code:`upload`, :code:`download` \u0438 :code:`listdir`\n * \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e :code:`limit` \u0432 :code:`listdir` \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0432 :code:`10000`\n\n* **Release 1.0.3 (2017-10-22)**\n\n * \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043c\u043e\u0434\u0443\u043b\u044c :code:`settings`\n\n* **Release 1.0.2 (2017-10-19)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f :code:`get_code_url` (\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b)\n\n* **Release 1.0.1 (2017-10-18)**\n\n * \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u044b\u0439 \u0431\u0430\u0433 \u0432 :code:`GetTokenRequest` (\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440)\n\n* **Release 1.0.0 (2017-10-18)**\n\n * \u041f\u0435\u0440\u0432\u044b\u0439 \u0440\u0435\u043b\u0438\u0437\n",
"bugtrack_url": null,
"license": "LGPLv3",
"summary": "\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430-\u043a\u043b\u0438\u0435\u043d\u0442 REST API \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0438\u0441\u043a\u0430 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 async/await / Yandex.Disk REST API client library with async/await support",
"version": "1.4.5",
"project_urls": {
"Bug tracker": "https://github.com/ivknv/yadisk-async/issues",
"Documentation (EN)": "https://yadisk-async.readthedocs.io/en/latest",
"Documentation (RU)": "https://yadisk-async.readthedocs.io/ru/latest",
"Homepage": "https://github.com/ivknv/yadisk-async",
"Source code": "https://github.com/ivknv/yadisk-async"
},
"split_keywords": [
"yandex",
"yandex.disk",
"rest",
"async"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "849c5b76937e086620c4da7b010b6db56534ca41e229b8573a11cdf53521a738",
"md5": "14747d911eb69f43764005eb029b254a",
"sha256": "3572893813a9104ca387f84e94224a023859230405b3661840b2c52941b3b049"
},
"downloads": -1,
"filename": "yadisk_async-1.4.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "14747d911eb69f43764005eb029b254a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 58587,
"upload_time": "2023-12-14T18:34:59",
"upload_time_iso_8601": "2023-12-14T18:34:59.451557Z",
"url": "https://files.pythonhosted.org/packages/84/9c/5b76937e086620c4da7b010b6db56534ca41e229b8573a11cdf53521a738/yadisk_async-1.4.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "44317725848e89d0ee8ec5e71ddce69eb64bc8806d70df27dd0ce612233d474c",
"md5": "e564505bc2754ae79fbeab19403a37d5",
"sha256": "c7d7a431e32ba41d0926022419985787f49f0acdfa79f78b91f7b9d371a017a4"
},
"downloads": -1,
"filename": "yadisk-async-1.4.5.tar.gz",
"has_sig": false,
"md5_digest": "e564505bc2754ae79fbeab19403a37d5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 58169,
"upload_time": "2023-12-14T18:35:01",
"upload_time_iso_8601": "2023-12-14T18:35:01.671671Z",
"url": "https://files.pythonhosted.org/packages/44/31/7725848e89d0ee8ec5e71ddce69eb64bc8806d70df27dd0ce612233d474c/yadisk-async-1.4.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-14 18:35:01",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ivknv",
"github_project": "yadisk-async",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "yadisk-async"
}