[build-system] requires = ["setuptools>=68", "wheel"] build-backend = "setuptools.build_meta" [project] name = "mutant_hunter" version = "0.1.0" description = "OpenEnv RL environment for training LLMs to write high-quality tests via mutation-score rewards" readme = "README.md" requires-python = ">=3.11" license = { text = "Apache-2.0" } authors = [ { name = "Krishna Velidanda" }, ] keywords = ["openenv", "rl", "mutation-testing", "rlvr", "test-generation", "llm"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Software Development :: Testing", ] dependencies = [ "openenv-core[core]>=0.2.2", "fastapi>=0.115", "uvicorn[standard]>=0.30", "pydantic>=2.7", "pytest>=8.0", "pytest-cov>=5.0", "pytest-timeout>=2.3", "pytest-xdist>=3.6", "coverage>=7.6", "GitPython>=3.1", "tenacity>=9.0", "rich>=13.7", "PyYAML>=6.0", "huggingface-hub>=0.26", "httpx>=0.27", "websockets>=13.0", ] [project.optional-dependencies] training = [ "trl", "transformers", "peft", "accelerate", "datasets", ] unsloth = [ "unsloth>=2024.12", "bitsandbytes>=0.44", ] dev = [ "ruff>=0.7", "black>=24.10", "mypy>=1.13", "pytest>=8.0", "pytest-cov>=5.0", ] [project.scripts] mutant-hunter-server = "mutant_hunter.server.app:main" [project.urls] Homepage = "https://github.com/openenv/mutant-hunter" Issues = "https://github.com/openenv/mutant-hunter/issues" [tool.setuptools.packages.find] where = ["src"] include = ["mutant_hunter*"] exclude = ["mutant_hunter.corpus._cache*"] [tool.setuptools.package-data] "mutant_hunter" = ["py.typed"] "mutant_hunter.corpus" = ["manifest.json", "_baselines/*.json"] "mutant_hunter.corpus._local" = ["**/*.py"] [tool.pytest.ini_options] minversion = "8.0" addopts = "-ra --strict-markers --strict-config" testpaths = ["tests"] markers = [ "slow: marks tests as slow (deselect with '-m \"not slow\"')", "integration: integration tests requiring sandbox/subprocess", ] [tool.ruff] line-length = 100 target-version = "py311" src = ["src"] [tool.ruff.lint] select = ["E", "F", "W", "I", "B", "UP", "SIM", "RUF"] ignore = ["E501"] [tool.black] line-length = 100 target-version = ["py311"] [tool.mypy] python_version = "3.11" strict = true warn_unused_ignores = true warn_return_any = true disallow_untyped_defs = true files = ["src/mutant_hunter"]