# pyproject.toml # # This file is REQUIRED by openenv validate. # It tells Python packaging tools (pip, uv, hatch) how to install # this environment as a package and what its dependencies are. # # Structure: # [build-system] → which tool builds the package (hatchling) # [project] → package name, version, dependencies # [tool.hatch] → which files to include when installing [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "traffic-env" version = "1.0.0" description = "OpenEnv RL environment for adaptive traffic signal control" readme = "README.md" license = { text = "MIT" } requires-python = ">=3.11" # Runtime dependencies — same as requirements.txt but in the standard format. # When someone runs `pip install -e .` these are installed automatically. dependencies = [ "fastapi>=0.110.0", "uvicorn[standard]>=0.29.0", "pydantic>=2.0.0", "openai>=1.0.0", "python-dotenv>=1.0.0", "openenv-core>=0.2.0", ] [project.optional-dependencies] # Extra deps for development and testing dev = [ "httpx>=0.27.0", # for testing FastAPI endpoints "pytest>=8.0.0", ] [tool.hatch.build.targets.wheel] # Tell hatchling which Python package to include when building a wheel. # This makes `from traffic_env.models import TrafficAction` work after install. packages = ["."] [tool.hatch.build.targets.sdist] # Include all source files in source distributions include = [ "*.py", "server/*.py", "openenv.yaml", "README.md", "requirements.txt", "Dockerfile", ] [project.scripts] server = "server.app:main"