# Pinned to the versions this codebase is actually tested against (see # CONTRIBUTING.md). Range = "current version, up to the next breaking # boundary" - the next major for a stable (>=1.0) package, the next minor # for a 0.x package (0.x minor bumps are semver's equivalent of a major). # # playwright and duckduckgo_search are pinned tighter (patch-only): playwright # ships in lockstep with a specific browser revision (a version mismatch is a # real, previously-hit failure mode - see tests/conftest.py's fallback # executable_path logic), and duckduckgo_search has a history of breaking # changes between versions. # # To bump a dependency: update the pin here, run `pytest`, and if you touch # playwright specifically, re-run the full suite including # tests/test_serp_playwright.py (it drives a real browser). fastapi>=0.141.1,<0.142 uvicorn>=0.52.4,<0.53 pydantic>=2.13.5,<3 playwright>=1.62.0,<1.63 duckduckgo_search>=8.1.1,<8.2 beautifulsoup4>=4.15.0,<5 httpx>=0.28.1,<0.29 lxml>=6.1.2,<7 python-dotenv>=1.2.3,<2 fastmcp>=3.4.7,<4