[project] name = "lexenvs" version = "0.1.0" description = "Harbor RL environment for credit card optimization task evaluation" readme = "README.md" requires-python = ">=3.10" license = {text = "Apache-2.0"} authors = [ {name = "Daniel Imberman"}, {name = "Kenny Book"}, {name = "John Loeber"}, ] keywords = ["rl", "reinforcement-learning", "evaluation", "credit-cards", "grpo"] dependencies = [ "fastapi>=0.115.0,<1.0.0", "uvicorn[standard]>=0.32.0,<1.0.0", "pydantic-settings>=2.0.0,<3.0.0", "pydantic>=2.12.4", "svcs>=25.1.0", "httpx>=0.27.0", ] [project.optional-dependencies] scripts = [ "anthropic>=0.84.0", "modal>=1.3.5", "httpx>=0.27.0,<1.0.0", "openai>=1.0.0", "matplotlib>=3.10.8", "numpy>=2.2.6", ] test = [ "pytest>=8.0.0,<9.0.0", "httpx>=0.27.0,<1.0.0", "pytest-asyncio>=0.23.0,<1.0.0", ] dev = [ "pytest>=8.0.0,<9.0.0", "httpx>=0.27.0,<1.0.0", "pytest-asyncio>=0.23.0,<1.0.0", "ruff>=0.8.0", "mypy>=1.11.0", ] huggingface = [ "huggingface-hub>=0.25.0", ] [tool.uv] package = true [tool.uv.sources] "lexenvs" = { path = "src" } [tool.pytest.ini_options] addopts = "-q -m 'not integration' --import-mode=importlib" testpaths = ["tests"] pythonpath = ["src", "."] asyncio_mode = "auto" markers = [ "integration: integration tests that require external services", ] [tool.ruff] line-length = 100 target-version = "py312" [tool.ruff.lint] select = ["E", "F", "I", "W"] [tool.ruff.lint.per-file-ignores] "scripts/*" = ["E501"] [tool.mypy] python_version = "3.12" warn_return_any = true warn_unused_configs = true [[tool.mypy.overrides]] module = ["svcs", "svcs.*"] ignore_missing_imports = true