Metadata-Version: 2.4
Name: pycatalyst
Version: 0.0.7.dev0
Summary: A schema-aware data generation and testing platform for Python
Author-email: StatFYI <contact@statfyi.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/optophi/pycatalyst
Project-URL: Documentation, https://optophi.github.io/pycatalyst/
Project-URL: Repository, https://github.com/optophi/pycatalyst
Project-URL: Issues, https://github.com/optophi/pycatalyst/issues
Project-URL: Changelog, https://github.com/optophi/pycatalyst/blob/main/CHANGELOG.md
Keywords: data-generation,testing,synthetic-data,schema,fake-data
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyyaml>=6.0.0
Provides-Extra: inference
Requires-Dist: pandas>=2.0.0; extra == "inference"
Provides-Extra: faker
Requires-Dist: faker>=20.0.0; extra == "faker"
Provides-Extra: parquet
Requires-Dist: pyarrow>=14.0.0; extra == "parquet"
Provides-Extra: http
Requires-Dist: httpx>=0.24.0; extra == "http"
Provides-Extra: kafka
Requires-Dist: confluent-kafka>=2.3.0; extra == "kafka"
Provides-Extra: rabbitmq
Requires-Dist: pika>=1.3.0; extra == "rabbitmq"
Provides-Extra: api
Requires-Dist: fastapi>=0.104.0; extra == "api"
Requires-Dist: uvicorn[standard]>=0.24.0; extra == "api"
Requires-Dist: pydantic>=2.0.0; extra == "api"
Requires-Dist: pydantic-settings>=2.0.0; extra == "api"
Requires-Dist: python-multipart>=0.0.6; extra == "api"
Requires-Dist: PyJWT>=2.8.0; extra == "api"
Requires-Dist: httpx>=0.24.0; extra == "api"
Requires-Dist: alembic>=1.13.0; extra == "api"
Requires-Dist: sqlalchemy>=2.0.0; extra == "api"
Provides-Extra: worker
Requires-Dist: alembic>=1.13.0; extra == "worker"
Requires-Dist: sqlalchemy>=2.0.0; extra == "worker"
Provides-Extra: ui
Requires-Dist: fastapi>=0.104.0; extra == "ui"
Requires-Dist: uvicorn[standard]>=0.24.0; extra == "ui"
Requires-Dist: httpx>=0.24.0; extra == "ui"
Requires-Dist: aiofiles>=23.0.0; extra == "ui"
Provides-Extra: workbench
Requires-Dist: pycatalyst[api,sandbox]; extra == "workbench"
Requires-Dist: ipython>=8.0.0; extra == "workbench"
Provides-Extra: sandbox
Requires-Dist: docker>=7.0.0; extra == "sandbox"
Provides-Extra: db
Requires-Dist: alembic>=1.13.0; extra == "db"
Requires-Dist: sqlalchemy>=2.0.0; extra == "db"
Provides-Extra: postgres
Requires-Dist: psycopg2-binary>=2.9.0; extra == "postgres"
Provides-Extra: docs
Requires-Dist: mkdocs-material>=9.5.0; extra == "docs"
Requires-Dist: mkdocstrings[python]>=0.24.0; extra == "docs"
Provides-Extra: all
Requires-Dist: pycatalyst[api,db,docs,faker,http,inference,parquet,postgres,sandbox,ui,workbench,worker]; extra == "all"
Provides-Extra: dev
Requires-Dist: pycatalyst[all]; extra == "dev"
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: hypothesis>=6.0.0; extra == "dev"
Requires-Dist: ruff>=0.9.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
Requires-Dist: build>=0.10.0; extra == "dev"
Requires-Dist: twine>=4.0.0; extra == "dev"
Requires-Dist: types-PyYAML>=6.0.0; extra == "dev"
Requires-Dist: jupyterlab>=4.0.0; extra == "dev"
Requires-Dist: ipykernel>=6.0.0; extra == "dev"
Dynamic: license-file

# pycatalyst

A modern Python package template. Replace this with your package description.

## Installation

```bash
pip install pycatalyst
```

From source (editable):

```bash
git clone https://github.com/your-org/pycatalyst
cd pycatalyst
pip install -e ".[dev]"
```

## Quick Start

```python
import pycatalyst

print(pycatalyst.__version__)
```

## Development

- **Lint & format:** `ruff check . && ruff format .`
- **Type check:** `mypy src/`
- **Tests:** `pytest`
- **Coverage:** `pytest --cov=pycatalyst --cov-report=term-missing`

## Publishing

1. Bump version in `pyproject.toml` and `CHANGELOG.md`.
2. Create a release tag: `git tag v0.1.0 && git push origin v0.1.0`.
3. The GitHub Action uses [PyPI Trusted Publishing](https://docs.pypi.org/trusted-publishers/); configure the publisher on PyPI for this repo, then the workflow will publish on tag push.

## License

MIT
