[build-system] requires = ["hatchling", "hatch-fancy-pypi-readme"] build-backend = "hatchling.build" [project] name = "entropix" version = "0.1.0" description = "The Agent Reliability Engine - Chaos Engineering for AI Agents" readme = "README.md" license = "Apache-2.0" requires-python = ">=3.10" authors = [ { name = "Entropix Team" } ] keywords = [ "ai", "agents", "testing", "chaos-engineering", "fuzzing", "reliability", "llm", "adversarial-testing" ] classifiers = [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Software Development :: Testing", "Topic :: Scientific/Engineering :: Artificial Intelligence", ] dependencies = [ "typer>=0.9.0", "rich>=13.0.0", "pydantic>=2.0.0", "pydantic-settings>=2.0.0", "httpx>=0.25.0", "pyyaml>=6.0", "jinja2>=3.1.0", "aiofiles>=23.0.0", "ollama>=0.3.0", ] [project.optional-dependencies] dev = [ "pytest>=7.0.0", "pytest-asyncio>=0.21.0", "pytest-cov>=4.0.0", "black>=23.0.0", "ruff>=0.1.0", "mypy>=1.0.0", "pre-commit>=3.0.0", ] semantic = [ "sentence-transformers>=2.2.0", "numpy>=1.24.0", ] huggingface = [ "huggingface-hub>=0.19.0", ] all = [ "entropix[dev,semantic,huggingface]", ] [project.scripts] entropix = "entropix.cli.main:app" [project.urls] Homepage = "https://github.com/entropix/entropix" Documentation = "https://entropix.dev/docs" Repository = "https://github.com/entropix/entropix" Issues = "https://github.com/entropix/entropix/issues" [tool.hatch.build.targets.wheel] packages = ["src/entropix"] [tool.hatch.build.targets.sdist] include = [ "/src", "/tests", "/README.md", "/LICENSE", ] [tool.black] line-length = 88 target-version = ["py310", "py311", "py312"] include = '\.pyi?$' [tool.ruff] line-length = 88 target-version = "py310" select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes "I", # isort "B", # flake8-bugbear "C4", # flake8-comprehensions "UP", # pyupgrade ] ignore = [ "E501", # line too long (handled by black) "B008", # do not perform function calls in argument defaults ] [tool.ruff.isort] known-first-party = ["entropix"] [tool.mypy] python_version = "3.10" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true plugins = ["pydantic.mypy"] [tool.pytest.ini_options] testpaths = ["tests"] asyncio_mode = "auto" addopts = "-v --cov=src/entropix --cov-report=term-missing"