Metadata-Version: 2.1
Name: ipyezannotation
Version: 0.1.1
Summary: Easy, simple to customize, data annotation framework.
Home-page: https://github.com/gMatas/ipyezannotation
Author: Matas Gumbinas
Requires-Python: >=3.8,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: ipython (>=8.7.0,<9.0.0)
Requires-Dist: ipywidgets (>=8.0.3,<9.0.0)
Requires-Dist: sqlmodel (>=0.0.8,<0.0.9)
Project-URL: Repository, https://github.com/gMatas/ipyezannotation
Description-Content-Type: text/markdown

# Easy Annotation

**ipyezannotation** - Easy, simple to customize, data annotation framework.

## Disclaimer

This project is in early development stage **BUT IT WORKS!** 🥳

Docs & examples coming soon.

# Examples

## Images selection annotation

Annotation using `ImageSelectAnnotator`.

Define data to annotate with `ImageSelectAnnotator`:

```python
source_groups = [
    ["./surprized-pikachu.png"] * 16,
    ["./surprized-pikachu.png"] * 7,
    ["./surprized-pikachu.png"] * 8,
    ["./surprized-pikachu.png"] * 4,
]
```

Convert input data to `Sample`'s:

```python
from ipyezannotation.studio.sample import Sample, SampleStatus

samples = [
    Sample(
        status=SampleStatus.PENDING,
        data=group,
        annotation=None
    )
    for group in source_groups
]
```

Initialize database of your liking and synchronize it with your new input samples:

```python
from ipyezannotation.studio.storage.sqlite import SQLiteDatabase

db = SQLiteDatabase("sqlite:///:memory:")
synced_samples = db.sync(samples)
```

Configure & create annotation `Studio` to label your samples:

```python
from ipyezannotation.studio import Studio
from ipyezannotation.annotators import ImageSelectAnnotator

Studio(
    annotator=ImageSelectAnnotator(n_columns=8),
    database=db
)
```

![](./examples/image-select-annotation/output.png)

