Metadata-Version: 2.4
Name: ialdev-dataman
Version: 0.2.5
Summary: Imported as `iad.dataman` — data casting, resource models, and dataset bridge
Author: ipcoder
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: ialdev-core>=0.2.4
Requires-Dist: ialdev-io>=0.2.2
Requires-Dist: ialdev-img>=0.2.2
Requires-Dist: ialdev-maths>=0.2.3
Requires-Dist: pandas>=2.0.0
Requires-Dist: numpy>=1.26.4,<2
Requires-Dist: pydantic>=2.0
Requires-Dist: pyyaml>=5.4.0
Requires-Dist: regex>=2021.0.0
Requires-Dist: tqdm>=4.60.0
Requires-Dist: pytest>=7.0.0 ; extra == "dev"
Requires-Dist: pytest-cov>=3.0.0 ; extra == "dev"
Project-URL: Homepage, https://github.com/ipcoder/ialdev/tree/master/dataman
Project-URL: Issues, https://github.com/ipcoder/ialdev/issues
Project-URL: Repository, https://github.com/ipcoder/ialdev
Provides-Extra: dev

# ialdev-dataman

Dataset management and data casting tools for the `iad` toolbox, published as `ialdev-dataman` and imported as `iad.dataman`.

Use this package to describe datasets with resource models, discover YAML-backed dataset definitions, build data collections, apply read/transformation pipelines, and create sink repositories for generated outputs.

## Install

```bash
pip install ialdev-dataman
```

Requires Python `>=3.10`, NumPy `>=1.26.4,<2`, and pandas `>=2.0.0`.

## Highlights

- Dataset resource models: `DataSourceRM`, `SchemeRM`, `DatasetRM`, and `CollectionRM`.
- Factory helpers: `create_caster`, `create_collection`, and `create_sink`.
- Data collection APIs: `DataCollection`, `SinkRepo`, `CollectTable`, and `CollectSeries`.
- YAML/Pydantic helpers through `iad.dataman.pydantools`.
- Transform utilities for reading files into structured tables and applying image/data transforms.

## Examples

```python
from iad.dataman import create_caster, create_collection

caster = create_caster(
    source="/data/images",
    scheme="{scene}/{frame}.png",
    filters={"scene": "scene_001"},
)
collection = create_collection(datasets=[caster])
```

```python
from iad.dataman.models import DataSourceRM, DatasetRM, SchemeRM
from iad.dataman.resman import ModelsManager

manager = ModelsManager()
manager.register_models(DataSourceRM, SchemeRM, DatasetRM)
```

```python
from iad.dataman.pydantools import YamlModel

class DatasetConfig(YamlModel):
    name: str
    root: str
```

