Metadata-Version: 2.4
Name: tasker-py
Version: 0.1.8
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Rust
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: pydantic>=2.9.0
Requires-Dist: pydantic-settings>=2.6.0
Requires-Dist: pyee>=12.0.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: pyyaml>=6.0.0
Requires-Dist: maturin>=1.7,<2.0 ; extra == 'dev'
Requires-Dist: pytest>=8.0.0 ; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23.0 ; extra == 'dev'
Requires-Dist: pytest-cov>=5.0.0 ; extra == 'dev'
Requires-Dist: ruff>=0.8.0 ; extra == 'dev'
Requires-Dist: mypy>=1.10.0 ; extra == 'dev'
Requires-Dist: types-pyyaml>=6.0.0 ; extra == 'dev'
Provides-Extra: dev
Summary: Python worker for Tasker workflow orchestration
Author: Tasker Systems
License: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Bug Tracker, https://github.com/tasker-systems/tasker-core/issues
Project-URL: Documentation, https://github.com/tasker-systems/tasker-core/tree/main/crates/tasker-py
Project-URL: Homepage, https://github.com/tasker-systems/tasker-core
Project-URL: Repository, https://github.com/tasker-systems/tasker-core

# tasker-py

Python worker bindings for the Tasker workflow orchestration system.

## Status

Production ready. Python worker bindings provide full step handler execution via PyO3 FFI.

## Installation

### From Source (Development)

```bash
# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Create virtual environment and sync dependencies
uv venv
source .venv/bin/activate
uv sync --dev

# Build and install the Rust extension
uv run maturin develop
```

### From PyPI (when published)

```bash
pip install tasker-py
```

## Quick Start

```python
import tasker_core

# Check version
print(tasker_core.version())

# Verify FFI is working
assert tasker_core.health_check()
```

## Development

### Prerequisites

- Python 3.10+
- Rust 1.70+
- uv (recommended) or pip

### Setup

```bash
# Create virtual environment
uv venv
source .venv/bin/activate

# Sync all dependencies (including dev)
uv sync --dev

# Build and install in development mode
uv run maturin develop

# Run tests
uv run pytest

# Run linting
uv run ruff check .
uv run mypy python/
```

### Building Wheels

```bash
# Build wheel for current platform
maturin build --release

# Build with all features
maturin build --release --all-features
```

## Project Structure

```
crates/tasker-py/
├── src/                           # Rust FFI source
│   └── lib.rs                     # PyO3 module initialization
├── python/                        # Python source (maturin src layout)
│   └── tasker_core/
│       ├── __init__.py            # Package init, re-exports FFI
│       └── py.typed               # PEP 561 marker
├── tests/                         # pytest tests
│   ├── conftest.py
│   └── test_import.py
├── Cargo.toml                     # Rust crate configuration
├── pyproject.toml                 # Python project configuration
└── README.md
```

## Technology Stack

- **FFI Layer**: PyO3
- **Build Tool**: maturin
- **Package Manager**: uv
- **Testing**: pytest
- **Data Models**: Pydantic v2 (future phases)
- **Event Bus**: pyee (future phases)

## License

MIT

