Metadata-Version: 2.1
Name: backend.ai-aiotusclient
Version: 0.1.4
Summary: tus.io-compatible upload client library for Python asyncio
Home-page: https://github.com/lablup/aiotusclient
Author: Lablup Inc.
Author-email: sergey@lablup.com
License: MIT
Project-URL: Source, https://github.com/lablup/aiotusclient
Project-URL: Tracker, https://github.com/lablup/aiotusclient/issues
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Operating System :: POSIX
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Environment :: No Input/Output (Daemon)
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: aiohttp (>=3.6.2)
Requires-Dist: tqdm (>=4.42)
Provides-Extra: build
Requires-Dist: wheel (>=0.35.1) ; extra == 'build'
Requires-Dist: twine (>=3.2.0) ; extra == 'build'
Provides-Extra: ci
Provides-Extra: dev
Provides-Extra: lint
Requires-Dist: flake8 (>=3.8.4) ; extra == 'lint'
Requires-Dist: isort (>=5.6.4) ; extra == 'lint'
Requires-Dist: black ; extra == 'lint'
Provides-Extra: test
Requires-Dist: pytest (>=6.0.1) ; extra == 'test'
Requires-Dist: pytest-asyncio (>=0.14.0) ; extra == 'test'
Requires-Dist: pytest-cov (>=2.10.0) ; extra == 'test'
Requires-Dist: pytest-mock (>=3.2.0) ; extra == 'test'
Requires-Dist: codecov (>=2.1.8) ; extra == 'test'
Provides-Extra: typecheck
Requires-Dist: mypy (>=0.800) ; extra == 'typecheck'

# tus.io uploader for Python asyncio
aiotusclient is a fork of tus-py-client rewritten for Python asyncio and aiohttp.
It is used to communicate with storage proxies that handle large transfers for vfolder uploads and downloads.


## Package Structure
* `aiotusclient`
  - `client`: The client instance class which communicates between Backend.AI Manager
  - `baseuploader` and `uploader`
    - Responsible for chunking the file and asynchronously uploading to tus server
  - `request`
    - Handles the uploading request


## Installation

### Prequisites
* Python 3.7 or higher with [pyenv](https://github.com/pyenv/pyenv)
and [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv) (optional but recommneded)

### Installation Process

First, prepare the source clone of this agent:
```console
# git clone https://github.com/lablup/aiotusclient
```

From now on, let's assume all shell commands are executed inside the virtualenv. And we located in backend.ai root directory.

Now install dependencies:
```console
# pip install -U aiotusclient
```


When done, import into your code the aiotusclient
```python
from aiotusclient import client

tus_client = client.TusClient(session_create_url, session_upload_url, rqst.headers, params)
```

### Reference
This library was forked from [tus-py-client](https://github.com/tus/tus-py-client) and customized in order to facilitate asynchronous communication with our TUS server.


