Metadata-Version: 2.4
Name: aseity
Version: 0.1.0
Summary: A self-contained task orchestration toolkit (queue, scheduler, worker pool, retry)
Author: aseity maintainers
License: MIT
Keywords: task,queue,scheduler,worker,retry,orchestration,concurrency
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: System :: Distributed Computing
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file
Dynamic: requires-python

# aseity

A self-contained task orchestration toolkit. Zero runtime dependencies.

## Features

- **`TaskQueue`** — thread-safe priority queue with optional bound.
- **`Scheduler`** — repeating-task scheduler on a background thread.
- **`WorkerPool`** — thin `ThreadPoolExecutor` wrapper with graceful shutdown.
- **`retry`** — exponential backoff with jitter.
- **`TokenBucket`** — thread-safe rate limiter.
- **`Pipeline`** — linear task composition.
- **`Config`** — JSON config loading with defaults and type validation.
- **`serialization`** / **`utils`** — JSON helpers and slug/chunk/idempotency utilities.

## Install

```bash
pip install aseity
```

## Quick start

```python
from aseity import TaskQueue, WorkerPool, retry

q = TaskQueue(maxsize=100)
q.put(1, "high-priority")
q.put(5, "low-priority")

assert q.get() == "high-priority"

@retry(tries=3, backoff=0.5)
def flaky():
    raise ConnectionError("boom")

with WorkerPool(workers=4) as pool:
    fut = pool.submit(pow, 2, 16)
    assert fut.result() == 65536
```

## CLI

```bash
aseity --version
aseity run --config config.json
aseity validate-config config.json
```

## License

MIT
