[project] name = "lda-wf" version = "0.0.1" description = "Add your description here" readme = "readme.md" authors = [{ name = "lda", email = "lda@ldlda.com" }] requires-python = ">=3.14" dependencies = [ "anyio", "authlib>=1.7.0", "fastapi>=0.140", "fastapi-jsonrpc>=4.0.0", "fastmcp>=4", "httpx2>=2.12.0", "jsonpatch>=1.33", "jsonschema>=4.26", "mcp[cli,rich]>=2", "openapi-core>=0.19", "pydantic>=2", "pyyaml>=6.0.3", "referencing>=0.37", "typer>=0.24.2", "uvicorn>=0.46.0", ] [project.scripts] wf = "wf_cli.app:main" wf-mcp = "wf_mcp.cli:main" wf-rpc-server = "wf_server.cli:main" [dependency-groups] dev = [ "basedpyright>=1.39.6", "matplotlib>=3.10", "pytest>=8", # "pytest-sugar>=1", "pytest-asyncio>=1.4.0", "pytest-xdist>=3.8.0", "ruff>=0.15.15", ] [tool.pytest.ini_options] addopts = "-p no:cacheprovider -n 8" pythonpath = ["."] asyncio_mode = "auto" [tool.uv] package = true [tool.basedpyright] typeCheckingMode = "basic" # too many errors [tool.ruff.format] preview = false # Ruff 0.16 formats Markdown by default, but many docs contain partial Python # call fragments that are illustrative rather than standalone programs. exclude = ["**/*.md"] [tool.ruff.lint] # Keep the established lint contract stable across Ruff default-rule changes. select = ["E4", "E7", "E9", "F", "I"] [tool.ruff.lint.per-file-ignores] # This generator adjusts sys.path before importing repository-local modules. "docs/thesis/generate_agent_challenge_evaluation.py" = ["E402"]