{"nodes": [{"id": "backend_app_services_planner_filter_py", "label": "filter.py", "file_type": "code", "source_file": "backend/app/services/planner/filter.py", "source_location": "L1"}, {"id": "filter_calorie_band", "label": "_calorie_band()", "file_type": "code", "source_file": "backend/app/services/planner/filter.py", "source_location": "L12"}, {"id": "filter_filter_recipes", "label": "filter_recipes()", "file_type": "code", "source_file": "backend/app/services/planner/filter.py", "source_location": "L17"}, {"id": "filter_rationale_1", "label": "Hard-constraint filter (constraints #1-#6 from the spec).", "file_type": "rationale", "source_file": "backend/app/services/planner/filter.py", "source_location": "L1"}], "edges": [{"source": "backend_app_services_planner_filter_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/app/services/planner/filter.py", "source_location": "L4", "weight": 1.0}, {"source": "backend_app_services_planner_filter_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/app/services/planner/filter.py", "source_location": "L5", "weight": 1.0}, {"source": "backend_app_services_planner_filter_py", "target": "uuid", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/app/services/planner/filter.py", "source_location": "L6", "weight": 1.0}, {"source": "backend_app_services_planner_filter_py", "target": "app_services_planner_config", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/app/services/planner/filter.py", "source_location": "L8", "weight": 1.0}, {"source": "backend_app_services_planner_filter_py", "target": "app_services_planner_types", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/app/services/planner/filter.py", "source_location": "L9", "weight": 1.0}, {"source": "backend_app_services_planner_filter_py", "target": "filter_calorie_band", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/planner/filter.py", "source_location": "L12", "weight": 1.0}, {"source": "backend_app_services_planner_filter_py", "target": "filter_filter_recipes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/planner/filter.py", "source_location": "L17", "weight": 1.0}, {"source": "filter_filter_recipes", "target": "filter_calorie_band", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/app/services/planner/filter.py", "source_location": "L34", "weight": 1.0}, {"source": "filter_rationale_1", "target": "backend_app_services_planner_filter_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/planner/filter.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "filter_calorie_band", "callee": "int", "source_file": "backend/app/services/planner/filter.py", "source_location": "L14"}, {"caller_nid": "filter_calorie_band", "callee": "int", "source_file": "backend/app/services/planner/filter.py", "source_location": "L14"}, {"caller_nid": "filter_filter_recipes", "callee": "timedelta", "source_file": "backend/app/services/planner/filter.py", "source_location": "L36"}, {"caller_nid": "filter_filter_recipes", "callee": "isinstance", "source_file": "backend/app/services/planner/filter.py", "source_location": "L40"}, {"caller_nid": "filter_filter_recipes", "callee": "UUID", "source_file": "backend/app/services/planner/filter.py", "source_location": "L41"}, {"caller_nid": "filter_filter_recipes", "callee": "get", "source_file": "backend/app/services/planner/filter.py", "source_location": "L49"}, {"caller_nid": "filter_filter_recipes", "callee": "set", "source_file": "backend/app/services/planner/filter.py", "source_location": "L49"}, {"caller_nid": "filter_filter_recipes", "callee": "get", "source_file": "backend/app/services/planner/filter.py", "source_location": "L54"}, {"caller_nid": "filter_filter_recipes", "callee": "get", "source_file": "backend/app/services/planner/filter.py", "source_location": "L61"}, {"caller_nid": "filter_filter_recipes", "callee": "int", "source_file": "backend/app/services/planner/filter.py", "source_location": "L71"}, {"caller_nid": "filter_filter_recipes", "callee": "get", "source_file": "backend/app/services/planner/filter.py", "source_location": "L71"}, {"caller_nid": "filter_filter_recipes", "callee": "int", "source_file": "backend/app/services/planner/filter.py", "source_location": "L72"}, {"caller_nid": "filter_filter_recipes", "callee": "get", "source_file": "backend/app/services/planner/filter.py", "source_location": "L72"}, {"caller_nid": "filter_filter_recipes", "callee": "get", "source_file": "backend/app/services/planner/filter.py", "source_location": "L78"}, {"caller_nid": "filter_filter_recipes", "callee": "float", "source_file": "backend/app/services/planner/filter.py", "source_location": "L82"}, {"caller_nid": "filter_filter_recipes", "callee": "append", "source_file": "backend/app/services/planner/filter.py", "source_location": "L86"}, {"caller_nid": "filter_filter_recipes", "callee": "FilterResult", "source_file": "backend/app/services/planner/filter.py", "source_location": "L88"}]}