[build-system] requires = ["setuptools>=68", "wheel"] build-backend = "setuptools.build_meta" [project] name = "graphforge" version = "0.0.1" description = "Graph-first code generation environment for long-horizon RL planning." readme = "README.md" requires-python = ">=3.10" license = { text = "MIT" } authors = [{ name = "Naga", email = "naganithin@poshmark.com" }] dependencies = [ "pydantic>=2.6", "fastapi>=0.110", "uvicorn[standard]>=0.27", "httpx>=0.27", "typing-extensions>=4.10", "openenv-core>=0.1.0", "pyyaml>=6.0", ] [project.optional-dependencies] validation = [ "mypy>=1.10", ] behavioral = [ "hypothesis>=6.100", ] training = [ "torch>=2.2", "transformers>=4.42", "trl>=0.12", "peft>=0.11", "accelerate>=0.30", "datasets>=2.18", "matplotlib>=3.8", "numpy>=1.26", ] demo = [ "gradio>=4.30", ] dev = [ "pytest>=8.0", "pytest-cov>=5.0", "ruff>=0.4", "mypy>=1.10", "hypothesis>=6.100", ] [tool.setuptools.packages.find] include = ["graphforge*", "env*"] exclude = ["tests*", "notebooks*", "training*", "plots*", "space*"] [tool.pytest.ini_options] testpaths = ["tests"] python_files = ["test_*.py"] addopts = "-ra --strict-markers" markers = [ "slow: marks tests as slow (deselect with '-m \"not slow\"')", "subprocess: tests that spawn subprocesses (mypy, behavioral)", ] [tool.mypy] python_version = "3.10" strict = true ignore_missing_imports = true exclude = ["build/", "dist/"] [tool.ruff] line-length = 100 target-version = "py310" [tool.ruff.lint] select = ["E", "F", "I", "B", "UP", "SIM"] ignore = ["E501"]