[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "slide-skill-openenv" version = "1.0.0" description = "OpenEnv environment for McKinsey-style PowerPoint slide optimization" requires-python = ">=3.12" # Core runtime dependencies (required for the environment to run) dependencies = [ "anthropic>=0.40.0", # Claude API client (generator: Sonnet 4.6, optimizer: Opus 4.6) "google-genai>=1.0.0", # Gemini API client (evaluator: Gemini 3.1 Pro) "pydantic>=2.6.0", # Data models with discriminated unions "httpx>=0.27.0", # HTTP client for client.py "loguru>=0.7.0", # Structured logging for client ] [project.optional-dependencies] # Server dependencies (required for app.py) server = [ "fastapi>=0.111.0", "uvicorn[standard]>=0.30.0", "python-multipart>=0.0.9", # FastAPI form parsing "python-dotenv>=1.0.0", # Load .env file automatically ] # Development and testing dev = [ "pytest>=8.0.0", "pytest-asyncio>=0.23.0", "httpx>=0.27.0", # for FastAPI TestClient "ruff>=0.4.0", "mypy>=1.10.0", ] [tool.hatch.build.targets.wheel] packages = ["openenv"] [tool.ruff] target-version = "py312" line-length = 88 [tool.ruff.lint] select = ["E", "F", "I", "UP"] [tool.mypy] python_version = "3.12" strict = true ignore_missing_imports = true