{"nodes": [{"id": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_py", "label": "errors.py", "file_type": "code", "source_file": "app/api/errors.py", "source_location": "L1"}, {"id": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_is_subsonic", "label": "_is_subsonic()", "file_type": "code", "source_file": "app/api/errors.py", "source_location": "L52", "_callable": true}, {"id": "request", "label": "Request", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/senko/Work/mcma-compose/mcma-backend/app/api/errors.py"}, {"id": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_error_body", "label": "_error_body()", "file_type": "code", "source_file": "app/api/errors.py", "source_location": "L56", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_register_exception_handlers", "label": "register_exception_handlers()", "file_type": "code", "source_file": "app/api/errors.py", "source_location": "L60", "_callable": true}, {"id": "fastapi", "label": "FastAPI", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/senko/Work/mcma-compose/mcma-backend/app/api/errors.py"}, {"id": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_rationale_1", "label": "Maps domain exceptions to HTTP responses. The only place that knows both. Two s", "file_type": "rationale", "source_file": "app/api/errors.py", "source_location": "L1"}], "edges": [{"source": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/errors.py", "source_location": "L9", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_py", "target": "fastapi_responses", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/errors.py", "source_location": "L10", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_py", "target": "app_api_rest_envelope", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/errors.py", "source_location": "L12", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_py", "target": "app_core_logging", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/errors.py", "source_location": "L13", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_py", "target": "app_domain_errors", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/errors.py", "source_location": "L14", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_py", "target": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_is_subsonic", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/errors.py", "source_location": "L52", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_is_subsonic", "target": "request", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/errors.py", "source_location": "L52", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_py", "target": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_error_body", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/errors.py", "source_location": "L56", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_py", "target": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_register_exception_handlers", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/errors.py", "source_location": "L60", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_register_exception_handlers", "target": "fastapi", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/errors.py", "source_location": "L60", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_rationale_1", "target": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/errors.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_is_subsonic", "callee": "startswith", "is_member_call": true, "source_file": "app/api/errors.py", "source_location": "L53", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_is_subsonic", "callee": "_SUBSONIC_PREFIX", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "app/api/errors.py", "source_location": "L53"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_register_exception_handlers", "callee": "exception_handler", "is_member_call": true, "source_file": "app/api/errors.py", "source_location": "L61", "receiver": "app"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_register_exception_handlers", "callee": "RangeNotSatisfiableError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "app/api/errors.py", "source_location": "L61"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_register_exception_handlers", "callee": "exception_handler", "is_member_call": true, "source_file": "app/api/errors.py", "source_location": "L69", "receiver": "app"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_register_exception_handlers", "callee": "DomainError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "app/api/errors.py", "source_location": "L69"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_register_exception_handlers", "callee": "exception_handler", "is_member_call": true, "source_file": "app/api/errors.py", "source_location": "L80", "receiver": "app"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_app_api_errors_register_exception_handlers", "callee": "Exception", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "app/api/errors.py", "source_location": "L80"}]}