{"nodes": [{"id": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "label": "middleware.py", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L1"}, {"id": "middleware_find_route_handler", "label": "_find_route_handler()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L18"}, {"id": "middleware_get_route_name", "label": "_get_route_name()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L29"}, {"id": "middleware_check_limits", "label": "_check_limits()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L33"}, {"id": "middleware_sync_check_limits", "label": "sync_check_limits()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L59"}, {"id": "middleware_async_check_limits", "label": "async_check_limits()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L80"}, {"id": "middleware_should_exempt", "label": "_should_exempt()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L98"}, {"id": "middleware_slowapimiddleware", "label": "SlowAPIMiddleware", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L116"}, {"id": "basehttpmiddleware", "label": "BaseHTTPMiddleware", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "middleware_slowapimiddleware_dispatch", "label": ".dispatch()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L117"}, {"id": "middleware_slowapiasgimiddleware", "label": "SlowAPIASGIMiddleware", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L142"}, {"id": "middleware_slowapiasgimiddleware_init", "label": ".__init__()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L143"}, {"id": "middleware_slowapiasgimiddleware_call", "label": ".__call__()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L146"}, {"id": "middleware_asgimiddlewareresponder", "label": "_ASGIMiddlewareResponder", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L153"}, {"id": "middleware_asgimiddlewareresponder_init", "label": ".__init__()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L154"}, {"id": "middleware_asgimiddlewareresponder_send_wrapper", "label": ".send_wrapper()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L160"}, {"id": "middleware_asgimiddlewareresponder_call", "label": ".__call__()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L181"}, {"id": "middleware_rationale_36", "label": "Utils to check (if needed) current requests limit. It returns a tuple of siz", "file_type": "rationale", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L36"}, {"id": "middleware_rationale_62", "label": "Returns a `Response` object if an error occurred, as well as a boolean to know", "file_type": "rationale", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L62"}, {"id": "middleware_rationale_83", "label": "Returns a `Response` object if an error occurred, as well as a boolean to know", "file_type": "rationale", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L83"}], "edges": [{"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "inspect", "relation": "imports", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L1", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L2", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "starlette_applications", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L4", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "starlette_datastructures", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L5", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "starlette_middleware_base", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L6", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "starlette_requests", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L10", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "starlette_responses", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L11", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "starlette_routing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L12", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "starlette_types", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L13", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "slowapi", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L15", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "middleware_find_route_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L18", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "middleware_get_route_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L29", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "middleware_check_limits", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L33", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "middleware_sync_check_limits", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L59", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "middleware_async_check_limits", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L80", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "middleware_should_exempt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L98", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "middleware_slowapimiddleware", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L116", "weight": 1.0}, {"source": "middleware_slowapimiddleware", "target": "basehttpmiddleware", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L116", "weight": 1.0}, {"source": "middleware_slowapimiddleware", "target": "middleware_slowapimiddleware_dispatch", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L117", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "middleware_slowapiasgimiddleware", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L142", "weight": 1.0}, {"source": "middleware_slowapiasgimiddleware", "target": "middleware_slowapiasgimiddleware_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L143", "weight": 1.0}, {"source": "middleware_slowapiasgimiddleware", "target": "middleware_slowapiasgimiddleware_call", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L146", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_slowapi_middleware_py", "target": "middleware_asgimiddlewareresponder", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L153", "weight": 1.0}, {"source": "middleware_asgimiddlewareresponder", "target": "middleware_asgimiddlewareresponder_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L154", "weight": 1.0}, {"source": "middleware_asgimiddlewareresponder", "target": "middleware_asgimiddlewareresponder_send_wrapper", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L160", "weight": 1.0}, {"source": "middleware_asgimiddlewareresponder", "target": "middleware_asgimiddlewareresponder_call", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L181", "weight": 1.0}, {"source": "middleware_sync_check_limits", "target": "middleware_check_limits", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L68", "weight": 1.0}, {"source": "middleware_async_check_limits", "target": "middleware_check_limits", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L88", "weight": 1.0}, {"source": "middleware_should_exempt", "target": "middleware_get_route_name", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L103", "weight": 1.0}, {"source": "middleware_slowapimiddleware_dispatch", "target": "middleware_find_route_handler", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L126", "weight": 1.0}, {"source": "middleware_slowapimiddleware_dispatch", "target": "middleware_should_exempt", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L127", "weight": 1.0}, {"source": "middleware_slowapimiddleware_dispatch", "target": "middleware_sync_check_limits", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L130", "weight": 1.0}, {"source": "middleware_slowapiasgimiddleware_call", "target": "middleware_asgimiddlewareresponder", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L150", "weight": 1.0}, {"source": "middleware_asgimiddlewareresponder_call", "target": "middleware_find_route_handler", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L190", "weight": 1.0}, {"source": "middleware_asgimiddlewareresponder_call", "target": "middleware_should_exempt", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L192", "weight": 1.0}, {"source": "middleware_asgimiddlewareresponder_call", "target": "middleware_async_check_limits", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L195", "weight": 1.0}, {"source": "middleware_rationale_36", "target": "middleware_check_limits", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L36", "weight": 1.0}, {"source": "middleware_rationale_62", "target": "middleware_sync_check_limits", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L62", "weight": 1.0}, {"source": "middleware_rationale_83", "target": "middleware_async_check_limits", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L83", "weight": 1.0}], "raw_calls": [{"caller_nid": "middleware_find_route_handler", "callee": "matches", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L23"}, {"caller_nid": "middleware_find_route_handler", "callee": "hasattr", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L24"}, {"caller_nid": "middleware_check_limits", "callee": "getattr", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L43"}, {"caller_nid": "middleware_check_limits", "callee": "_check_request_limit", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L47"}, {"caller_nid": "middleware_check_limits", "callee": "get", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L50"}, {"caller_nid": "middleware_check_limits", "callee": "type", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L51"}, {"caller_nid": "middleware_sync_check_limits", "callee": "iscoroutinefunction", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L74"}, {"caller_nid": "middleware_sync_check_limits", "callee": "exception_handler", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L77"}, {"caller_nid": "middleware_async_check_limits", "callee": "iscoroutinefunction", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L92"}, {"caller_nid": "middleware_async_check_limits", "callee": "exception_handler", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L93"}, {"caller_nid": "middleware_async_check_limits", "callee": "exception_handler", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L95"}, {"caller_nid": "middleware_slowapimiddleware_dispatch", "callee": "call_next", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L124"}, {"caller_nid": "middleware_slowapimiddleware_dispatch", "callee": "call_next", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L128"}, {"caller_nid": "middleware_slowapimiddleware_dispatch", "callee": "call_next", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L136"}, {"caller_nid": "middleware_slowapimiddleware_dispatch", "callee": "_inject_headers", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L138"}, {"caller_nid": "middleware_slowapiasgimiddleware_call", "callee": "app", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L148"}, {"caller_nid": "middleware_slowapiasgimiddleware_call", "callee": "_ASGIMiddlewareResponder(self.app)", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L150"}, {"caller_nid": "middleware_asgimiddlewareresponder_send_wrapper", "callee": "MutableHeaders", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L171"}, {"caller_nid": "middleware_asgimiddlewareresponder_send_wrapper", "callee": "_inject_asgi_headers", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L172"}, {"caller_nid": "middleware_asgimiddlewareresponder_send_wrapper", "callee": "send", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L178"}, {"caller_nid": "middleware_asgimiddlewareresponder_send_wrapper", "callee": "send", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L179"}, {"caller_nid": "middleware_asgimiddlewareresponder_call", "callee": "app", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L188"}, {"caller_nid": "middleware_asgimiddlewareresponder_call", "callee": "Request", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L191"}, {"caller_nid": "middleware_asgimiddlewareresponder_call", "callee": "app", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L193"}, {"caller_nid": "middleware_asgimiddlewareresponder_call", "callee": "error_response", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L199"}, {"caller_nid": "middleware_asgimiddlewareresponder_call", "callee": "app", "source_file": "backend/venv/lib/python3.12/site-packages/slowapi/middleware.py", "source_location": "L206"}]}