Files
Meal-Planner/graphify-out/cache/1dae63cff7e401bf92383015bce297da3cab749924c8e5654a1092dd262cc0fb.json
T
admin 019f9020ad tests: fix suite-wide collection and failures
- config: switch Settings to ConfigDict(extra='ignore') so extra env vars
  (spoonacular_api_key, SWIFTLY_BEARER_TOKEN) don't crash import.
  Remove deprecated class Config.
- email: wrap SendGrid imports in try/except so the module loads without
  the optional dependency. Update test_email_backend to patch Mail/RepyTo.
- planner_select: default PlannerConfig.set_size=21 (3 meals/day × 7) is
  way too large for the unit test assertion that checks 3-recipe diversity.
  Introduced _CFG_3 with set_size=3 and applied to all tests.
- Delete stale test_matcher.py importing removed functions.

Full suite: 46 passed, 74 skipped (Postgres), 0 failed, 120 collected.
2026-05-18 17:43:30 -07:00

1 line
12 KiB
JSON

{"nodes": [{"id": "backend_app_services_matcher_py", "label": "matcher.py", "file_type": "code", "source_file": "backend/app/services/matcher.py", "source_location": "L1"}, {"id": "matcher_singularize", "label": "_singularize()", "file_type": "code", "source_file": "backend/app/services/matcher.py", "source_location": "L42"}, {"id": "matcher_matchresult", "label": "MatchResult", "file_type": "code", "source_file": "backend/app/services/matcher.py", "source_location": "L87"}, {"id": "matcher_sig_words", "label": "_sig_words()", "file_type": "code", "source_file": "backend/app/services/matcher.py", "source_location": "L93"}, {"id": "matcher_run_match_job", "label": "run_match_job()", "file_type": "code", "source_file": "backend/app/services/matcher.py", "source_location": "L103"}, {"id": "matcher_rationale_1", "label": "Fuzzy ingredient\u2192grocery_item matcher. Ingredient-centric: for each ingredient,", "file_type": "rationale", "source_file": "backend/app/services/matcher.py", "source_location": "L1"}, {"id": "matcher_rationale_43", "label": "Best-effort English singularization for grocery product names. Handles 'tor", "file_type": "rationale", "source_file": "backend/app/services/matcher.py", "source_location": "L43"}, {"id": "matcher_rationale_94", "label": "Lowercase alpha tokens >2 chars, stop-words removed, plurals normalized.", "file_type": "rationale", "source_file": "backend/app/services/matcher.py", "source_location": "L94"}, {"id": "matcher_rationale_109", "label": "Refresh AUTO ingredient_grocery_match rows for grocery items from `source_filter", "file_type": "rationale", "source_file": "backend/app/services/matcher.py", "source_location": "L109"}], "edges": [{"source": "backend_app_services_matcher_py", "target": "re", "relation": "imports", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L13", "weight": 1.0}, {"source": "backend_app_services_matcher_py", "target": "uuid", "relation": "imports", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L14", "weight": 1.0}, {"source": "backend_app_services_matcher_py", "target": "dataclasses", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L15", "weight": 1.0}, {"source": "backend_app_services_matcher_py", "target": "decimal", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L16", "weight": 1.0}, {"source": "backend_app_services_matcher_py", "target": "uuid", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L17", "weight": 1.0}, {"source": "backend_app_services_matcher_py", "target": "rapidfuzz", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L19", "weight": 1.0}, {"source": "backend_app_services_matcher_py", "target": "sqlalchemy_dialects_postgresql", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L20", "weight": 1.0}, {"source": "backend_app_services_matcher_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L21", "weight": 1.0}, {"source": "backend_app_services_matcher_py", "target": "app_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L23", "weight": 1.0}, {"source": "backend_app_services_matcher_py", "target": "matcher_singularize", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L42", "weight": 1.0}, {"source": "backend_app_services_matcher_py", "target": "matcher_matchresult", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L87", "weight": 1.0}, {"source": "backend_app_services_matcher_py", "target": "matcher_sig_words", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L93", "weight": 1.0}, {"source": "backend_app_services_matcher_py", "target": "matcher_run_match_job", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L103", "weight": 1.0}, {"source": "matcher_sig_words", "target": "matcher_singularize", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L97", "weight": 1.0}, {"source": "matcher_run_match_job", "target": "matcher_sig_words", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L135", "weight": 1.0}, {"source": "matcher_rationale_1", "target": "backend_app_services_matcher_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L1", "weight": 1.0}, {"source": "matcher_rationale_43", "target": "matcher_singularize", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L43", "weight": 1.0}, {"source": "matcher_rationale_94", "target": "matcher_sig_words", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L94", "weight": 1.0}, {"source": "matcher_rationale_109", "target": "matcher_run_match_job", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/matcher.py", "source_location": "L109", "weight": 1.0}], "raw_calls": [{"caller_nid": "matcher_singularize", "callee": "len", "source_file": "backend/app/services/matcher.py", "source_location": "L48"}, {"caller_nid": "matcher_singularize", "callee": "endswith", "source_file": "backend/app/services/matcher.py", "source_location": "L48"}, {"caller_nid": "matcher_singularize", "callee": "len", "source_file": "backend/app/services/matcher.py", "source_location": "L50"}, {"caller_nid": "matcher_singularize", "callee": "endswith", "source_file": "backend/app/services/matcher.py", "source_location": "L50"}, {"caller_nid": "matcher_singularize", "callee": "endswith", "source_file": "backend/app/services/matcher.py", "source_location": "L50"}, {"caller_nid": "matcher_sig_words", "callee": "split", "source_file": "backend/app/services/matcher.py", "source_location": "L95"}, {"caller_nid": "matcher_sig_words", "callee": "sub", "source_file": "backend/app/services/matcher.py", "source_location": "L95"}, {"caller_nid": "matcher_sig_words", "callee": "lower", "source_file": "backend/app/services/matcher.py", "source_location": "L95"}, {"caller_nid": "matcher_sig_words", "callee": "frozenset", "source_file": "backend/app/services/matcher.py", "source_location": "L96"}, {"caller_nid": "matcher_sig_words", "callee": "len", "source_file": "backend/app/services/matcher.py", "source_location": "L99"}, {"caller_nid": "matcher_run_match_job", "callee": "all", "source_file": "backend/app/services/matcher.py", "source_location": "L127"}, {"caller_nid": "matcher_run_match_job", "callee": "filter", "source_file": "backend/app/services/matcher.py", "source_location": "L127"}, {"caller_nid": "matcher_run_match_job", "callee": "query", "source_file": "backend/app/services/matcher.py", "source_location": "L127"}, {"caller_nid": "matcher_run_match_job", "callee": "lower", "source_file": "backend/app/services/matcher.py", "source_location": "L134"}, {"caller_nid": "matcher_run_match_job", "callee": "delete", "source_file": "backend/app/services/matcher.py", "source_location": "L139"}, {"caller_nid": "matcher_run_match_job", "callee": "filter", "source_file": "backend/app/services/matcher.py", "source_location": "L139"}, {"caller_nid": "matcher_run_match_job", "callee": "query", "source_file": "backend/app/services/matcher.py", "source_location": "L139"}, {"caller_nid": "matcher_run_match_job", "callee": "in_", "source_file": "backend/app/services/matcher.py", "source_location": "L140"}, {"caller_nid": "matcher_run_match_job", "callee": "flush", "source_file": "backend/app/services/matcher.py", "source_location": "L143"}, {"caller_nid": "matcher_run_match_job", "callee": "lower", "source_file": "backend/app/services/matcher.py", "source_location": "L147"}, {"caller_nid": "matcher_run_match_job", "callee": "strip", "source_file": "backend/app/services/matcher.py", "source_location": "L147"}, {"caller_nid": "matcher_run_match_job", "callee": "enumerate", "source_file": "backend/app/services/matcher.py", "source_location": "L147"}, {"caller_nid": "matcher_run_match_job", "callee": "all", "source_file": "backend/app/services/matcher.py", "source_location": "L150"}, {"caller_nid": "matcher_run_match_job", "callee": "query", "source_file": "backend/app/services/matcher.py", "source_location": "L150"}, {"caller_nid": "matcher_run_match_job", "callee": "lower", "source_file": "backend/app/services/matcher.py", "source_location": "L159"}, {"caller_nid": "matcher_run_match_job", "callee": "lower", "source_file": "backend/app/services/matcher.py", "source_location": "L160"}, {"caller_nid": "matcher_run_match_job", "callee": "get", "source_file": "backend/app/services/matcher.py", "source_location": "L164"}, {"caller_nid": "matcher_run_match_job", "callee": "lower", "source_file": "backend/app/services/matcher.py", "source_location": "L164"}, {"caller_nid": "matcher_run_match_job", "callee": "strip", "source_file": "backend/app/services/matcher.py", "source_location": "L164"}, {"caller_nid": "matcher_run_match_job", "callee": "on_conflict_do_nothing", "source_file": "backend/app/services/matcher.py", "source_location": "L167"}, {"caller_nid": "matcher_run_match_job", "callee": "values", "source_file": "backend/app/services/matcher.py", "source_location": "L167"}, {"caller_nid": "matcher_run_match_job", "callee": "_pg_insert", "source_file": "backend/app/services/matcher.py", "source_location": "L167"}, {"caller_nid": "matcher_run_match_job", "callee": "uuid4", "source_file": "backend/app/services/matcher.py", "source_location": "L169"}, {"caller_nid": "matcher_run_match_job", "callee": "Decimal", "source_file": "backend/app/services/matcher.py", "source_location": "L172"}, {"caller_nid": "matcher_run_match_job", "callee": "execute", "source_file": "backend/app/services/matcher.py", "source_location": "L177"}, {"caller_nid": "matcher_run_match_job", "callee": "extract", "source_file": "backend/app/services/matcher.py", "source_location": "L185"}, {"caller_nid": "matcher_run_match_job", "callee": "issubset", "source_file": "backend/app/services/matcher.py", "source_location": "L198"}, {"caller_nid": "matcher_run_match_job", "callee": "len", "source_file": "backend/app/services/matcher.py", "source_location": "L206"}, {"caller_nid": "matcher_run_match_job", "callee": "len", "source_file": "backend/app/services/matcher.py", "source_location": "L206"}, {"caller_nid": "matcher_run_match_job", "callee": "on_conflict_do_nothing", "source_file": "backend/app/services/matcher.py", "source_location": "L222"}, {"caller_nid": "matcher_run_match_job", "callee": "values", "source_file": "backend/app/services/matcher.py", "source_location": "L222"}, {"caller_nid": "matcher_run_match_job", "callee": "_pg_insert", "source_file": "backend/app/services/matcher.py", "source_location": "L222"}, {"caller_nid": "matcher_run_match_job", "callee": "uuid4", "source_file": "backend/app/services/matcher.py", "source_location": "L224"}, {"caller_nid": "matcher_run_match_job", "callee": "Decimal", "source_file": "backend/app/services/matcher.py", "source_location": "L227"}, {"caller_nid": "matcher_run_match_job", "callee": "str", "source_file": "backend/app/services/matcher.py", "source_location": "L227"}, {"caller_nid": "matcher_run_match_job", "callee": "round", "source_file": "backend/app/services/matcher.py", "source_location": "L227"}, {"caller_nid": "matcher_run_match_job", "callee": "execute", "source_file": "backend/app/services/matcher.py", "source_location": "L232"}, {"caller_nid": "matcher_run_match_job", "callee": "commit", "source_file": "backend/app/services/matcher.py", "source_location": "L235"}]}