Metadata-Version: 2.1
Name: tensorbay
Version: 1.4.1
Summary: Graviti TensorBay Python SDK
Home-page: https://github.com/Graviti-AI/tensorbay-python-sdk
Author: Graviti
Author-email: pypi@graviti.com
License: MIT
Keywords: graviti,tensorbay,dataset
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Typing :: Typed
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: click (>=7.0.0)
Requires-Dist: filetype (>=1.0.0)
Requires-Dist: numpy-quaternion (>=2021.3.17.16.51.43)
Requires-Dist: requests (>=2.4.2)
Requires-Dist: requests-toolbelt (>=0.3.0)
Requires-Dist: sortedcontainers (>=2.0.0)
Requires-Dist: tqdm (>=4.14.0)
Requires-Dist: typing-extensions (>=3.7.2)
Requires-Dist: ulid-py (>=1.1.0)
Requires-Dist: urllib3 (>=1.15)
Requires-Dist: numpy (>=1.16.0) ; python_version < "3.7"
Requires-Dist: numpy (>=1.20.0) ; python_version >= "3.7"

# TensorBay Python SDK

TensorBay Python SDK is a python library to access [TensorBay](https://www.graviti.cn/tensorBay)
and manage your datasets.  
It provides:

-   A pythonic way to access your TensorBay resources by TensorBay OpenAPI.
-   An easy-to-use CLI tool `gas` (Graviti AI service) to communicate with TensorBay.
-   A consistent dataset format to read and write your datasets.

## Installation

```console
pip3 install tensorbay
```

## Documentation

More information can be found on the [documentation site](https://tensorbay-python-sdk.graviti.com/)

## Usage

An **AccessKey** is needed to communicate with TensorBay.
Please visit [this page](https://gas.graviti.cn/tensorbay/developer) to get an **AccessKey** first.

### Authorize a client object

```python
from tensorbay import GAS
gas = GAS("<YOUR_ACCESSKEY>")
```

### Create a Dataset

```python
gas.create_dataset("DatasetName")
```

### List Dataset names

```python
dataset_names = gas.list_dataset_names()
```

### Upload images to the Dataset

```python
from tensorbay.dataset import Data, Dataset

# Organize the local dataset by the "Dataset" class before uploading.
dataset = Dataset("DatasetName")

# TensorBay uses "segment" to separate different parts in a dataset.
segment = dataset.create_segment()

segment.append(Data("0000001.jpg"))
segment.append(Data("0000002.jpg"))

dataset_client = gas.upload_dataset(dataset)

# TensorBay provides dataset version control feature, commit the uploaded data before using it.
dataset_client.commit("Initial commit")
```

### Read images from the Dataset

```python
from PIL import Image

dataset = Dataset("DatasetName", gas)
segment = dataset[0]

for data in segment:
    with data.open() as fp:
        image = Image.open(fp)
        width, height = image.size
        image.show()
```

### Delete the Dataset

```python
gas.delete_dataset("DatasetName")
```


