From fc179f33945b582a24ccd78d04367446d28c27fb Mon Sep 17 00:00:00 2001 From: L4XB Date: Thu, 10 Sep 2026 23:05:04 +0100 Subject: [PATCH] fix(packaging): include psycopg[binary] in the all extra The postgres extra's psycopg[binary] was the sole dep missing from all; a new union test guards the all-extra against future drift. (#3483) --- pyproject.toml | 2 +- tests/test_backend_extras.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index e8084c66c..6cf41633f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -99,7 +99,7 @@ commonlisp = ["tree-sitter-commonlisp"] # every platform, no C toolchain; optional because Robot Framework corpora are # QA-automation specific. robot = ["robotframework>=4.0"] -all = ["mcp>=1,<3", "starlette>=1.3.1,<2", "neo4j", "falkordb", "pypdf>=6.12.0", "markdownify", "watchdog", "graspologic; python_version < '3.13'", "python-docx", "openpyxl", "faster-whisper; python_version >= '3.11'", "yt-dlp>=2026.6.9", "matplotlib", "numpy>=2.0; python_version >= '3.13'", "openai", "tiktoken", "boto3", "anthropic", "tree-sitter-sql", "jieba", "tree-sitter-dm", "tree-sitter-hcl", "tree-sitter-pascal", "tree-sitter-ocaml", "tree-sitter-commonlisp", "robotframework>=4.0"] +all = ["mcp>=1,<3", "starlette>=1.3.1,<2", "neo4j", "falkordb", "pypdf>=6.12.0", "markdownify", "watchdog", "graspologic; python_version < '3.13'", "python-docx", "openpyxl", "faster-whisper; python_version >= '3.11'", "yt-dlp>=2026.6.9", "matplotlib", "numpy>=2.0; python_version >= '3.13'", "openai", "tiktoken", "boto3", "anthropic", "psycopg[binary]", "tree-sitter-sql", "jieba", "tree-sitter-dm", "tree-sitter-hcl", "tree-sitter-pascal", "tree-sitter-ocaml", "tree-sitter-commonlisp", "robotframework>=4.0"] [project.scripts] graphify = "graphify.__main__:main" diff --git a/tests/test_backend_extras.py b/tests/test_backend_extras.py index f513c57dc..4967ec917 100644 --- a/tests/test_backend_extras.py +++ b/tests/test_backend_extras.py @@ -39,3 +39,13 @@ def test_backend_pkg_hint_points_at_uv_tool_and_extra(): assert "uv tool install" in msg assert 'graphifyy[anthropic]' in msg assert "pip install anthropic" in msg # pip/venv fallback still mentioned + + +def test_all_extra_is_the_union_of_every_other_extra(): + """README documents `[all]` as "Everything above": every dependency of every + other extra must be in it. `psycopg[binary]` from `[postgres]` was missing, so + an `[all]` install still failed on `graphify extract --postgres` (#3482).""" + extras = _extras() + union = {dep for name, deps in extras.items() if name != "all" for dep in deps} + missing = sorted(union - set(extras["all"])) + assert not missing, f"[all] is missing dependencies from other extras: {missing}"