Metadata-Version: 2.4
Name: ialdev-core
Version: 0.2.4
Summary: iad.core — algorithmic utilities: data tools, parameters, paths, caching, and more
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.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: pydantic>=2.0
Requires-Dist: pandas>=2.1.0
Requires-Dist: numpy>=1.26.4,<2
Requires-Dist: pyyaml>=5.4.0
Requires-Dist: ruamel.yaml>=0.15.0
Requires-Dist: regex>=2021.0.0
Requires-Dist: rapidfuzz>=3.0
Requires-Dist: tqdm>=4.60.0
Requires-Dist: frozendict>=2.0.0
Requires-Dist: python-box>=6.0.0
Requires-Dist: joblib>=1.0.0
Requires-Dist: configargparse>=1.0.0
Requires-Dist: deprecated>=1.2.0
Requires-Dist: semver>=2.13.0
Requires-Dist: uncertainties>=3.1.0
Requires-Dist: pint>=0.20.0
Requires-Dist: zfpy
Requires-Dist: xxhash>=3.0.0
Requires-Dist: toolz>=0.11.0
Requires-Dist: numba>=0.55.0
Requires-Dist: scikit-learn>=1.0.0
Requires-Dist: python-dotenv>=0.19.0
Requires-Dist: ipython>=7.0.0 ; extra == "ipython"
Project-URL: Homepage, https://github.com/ipcoder/ialdev/tree/master/algutils
Project-URL: Issues, https://github.com/ipcoder/ialdev/issues
Project-URL: Repository, https://github.com/ipcoder/ialdev
Provides-Extra: ipython

# ialdev-core

Core utilities for the `iad` toolbox, published as `ialdev-core` and imported as `iad.core`.

Use this package when you need the shared building blocks used by the other `ialdev-*` libraries: collection helpers, typed dictionaries, path transformations, file discovery, caching, logging, event timing, decorators, and NumPy/Pandas utility functions.

## Install

```bash
pip install ialdev-core
```

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

## Highlights

- `iad.core.short`: scalar/list normalization and keyword filtering (`as_list`, `as_iter`, `drop_undef`).
- `iad.core.tbox`: `TBox`, a convenience wrapper around `python-box`.
- `iad.core.fs`: path normalization, file discovery, locators, and transformable path templates.
- `iad.core.cache`: pickle-based caches and cached processing pipes.
- `iad.core.data`: NumPy/Pandas helpers, labels, units, binary packing, and table utilities.
- `iad.core.events`: timers, progress helpers, and joblib/tqdm integration.

## Examples

```python
from iad.core import as_list, drop_undef
from iad.core.tbox import TBox

names = as_list("sample")
config = TBox(drop_undef(root="/data", cache=None, batch=8))
```

```python
from iad.core.fs.filesproc import Locator
from iad.core.fs.paths import TransPath

locator = Locator("/data/project")
path_template = TransPath("{scene}/{frame}.png")
```

## Development

```bash
pip install -e .
pixi run test
pixi run lint
```

