pyyaml>=6.0.0
exrex>=0.11.0
pydantic>=2.0.0

[all]
pycatalyst[api,awq,contracts,db,distill,docs,gguf,http,inference,kafka,metrics,ml,ml-qlora,mongodb,parquet,postgres,rabbitmq,s3,sandbox,tracing,ui,workbench,worker]

[api]
fastapi>=0.104.0
uvicorn[standard]>=0.24.0
pydantic>=2.0.0
pydantic-settings>=2.0.0
python-multipart>=0.0.6
PyJWT>=2.8.0
httpx>=0.24.0
alembic>=1.13.0
sqlalchemy>=2.0.0

[awq]
llmcompressor>=0.3.0
pycatalyst[ml-llm]

[contracts]
pycharter>=0.0.59

[db]
alembic>=1.13.0
sqlalchemy>=2.0.0

[dev]
pycatalyst[all]
pytest>=7.0.0
pytest-asyncio>=0.21.0
pytest-cov>=4.0.0
pytest-timeout>=2.1.0
hypothesis>=6.0.0
jsonschema>=4.18.0
opentelemetry-sdk>=1.20.0
ruff>=0.9.0
mypy>=1.0.0
pre-commit>=3.0.0
build>=0.10.0
twine>=4.0.0
types-PyYAML>=6.0.0
jupyterlab>=4.0.0
ipykernel>=6.0.0

[distill]
pycatalyst[http]
pydantic>=2.0.0

[docs]
mkdocs-material>=9.5.0
mkdocstrings[python]>=0.24.0

[gguf]
sentencepiece>=0.2.0

[http]
httpx>=0.24.0

[inference]
pandas>=2.0.0

[kafka]
confluent-kafka>=2.3.0

[metrics]
prometheus-client>=0.17.0

[ml]
pycatalyst[ml-core,ml-llm,ml-sklearn]

[ml-core]
torch>=2.0.0
numpy>=1.24.0
pandas>=2.0.0
matplotlib>=3.7.0
pydantic>=2.0.0
joblib>=1.3.0

[ml-llm]
pycatalyst[ml-core]
transformers>=4.46.0
trl>=0.14.0
peft>=0.7.0
datasets>=2.16.0
accelerate>=0.25.0

[ml-qlora]
pycatalyst[ml-llm]
bitsandbytes>=0.43.0

[ml-sklearn]
pycatalyst[ml-core]
scikit-learn>=1.3.0

[mongodb]
pymongo>=4.6.0

[parquet]
pyarrow>=14.0.0

[postgres]
psycopg[binary]>=3.1.0

[rabbitmq]
pika>=1.3.0

[s3]
boto3>=1.28.0

[sandbox]
docker>=7.0.0

[tracing]
opentelemetry-api>=1.20.0

[ui]
fastapi>=0.104.0
uvicorn[standard]>=0.24.0
httpx>=0.24.0
aiofiles>=23.0.0

[workbench]
pycatalyst[api,sandbox]
ipython>=8.0.0

[worker]
alembic>=1.13.0
sqlalchemy>=2.0.0
