Files
tfm_ainventory/graphify-out/cache/fa72476703a387db96fe8dfbf0d18cc076edc72d7cf0a3697289f11cbf318df2.json

1 line
44 KiB
JSON

{"nodes": [{"id": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "label": "websockets_impl.py", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L1"}, {"id": "websockets_impl_server", "label": "Server", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L41"}, {"id": "websockets_impl_server_register", "label": ".register()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L44"}, {"id": "websockets_impl_server_unregister", "label": ".unregister()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L47"}, {"id": "websockets_impl_server_is_serving", "label": ".is_serving()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L50"}, {"id": "websockets_impl_websocketprotocol", "label": "WebSocketProtocol", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L54"}, {"id": "websocketserverprotocol", "label": "WebSocketServerProtocol", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "websockets_impl_websocketprotocol_init", "label": ".__init__()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L58"}, {"id": "websockets_impl_websocketprotocol_connection_made", "label": ".connection_made()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L115"}, {"id": "websockets_impl_websocketprotocol_connection_lost", "label": ".connection_lost()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L130"}, {"id": "websockets_impl_websocketprotocol_shutdown", "label": ".shutdown()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L143"}, {"id": "websockets_impl_websocketprotocol_on_task_complete", "label": ".on_task_complete()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L151"}, {"id": "websockets_impl_websocketprotocol_process_request", "label": ".process_request()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L154"}, {"id": "websockets_impl_websocketprotocol_process_subprotocol", "label": ".process_subprotocol()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L201"}, {"id": "websockets_impl_websocketprotocol_send_500_response", "label": ".send_500_response()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L210"}, {"id": "websockets_impl_websocketprotocol_ws_handler", "label": ".ws_handler()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L224"}, {"id": "websockets_impl_websocketprotocol_run_asgi", "label": ".run_asgi()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L233"}, {"id": "websockets_impl_websocketprotocol_asgi_send", "label": ".asgi_send()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L259"}, {"id": "websockets_impl_websocketprotocol_asgi_receive", "label": ".asgi_receive()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L347"}, {"id": "websockets_impl_rationale_155", "label": "This hook is called to determine if the websocket should return an HTTP", "file_type": "rationale", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L155"}, {"id": "websockets_impl_rationale_204", "label": "We override the standard 'process_subprotocol' behavior here so that we", "file_type": "rationale", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L204"}, {"id": "websockets_impl_rationale_225", "label": "This is the main handler function for the 'websockets' implementation to", "file_type": "rationale", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L225"}, {"id": "websockets_impl_rationale_234", "label": "Wrapper around the ASGI callable, handling exceptions and unexpected ter", "file_type": "rationale", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L234"}], "edges": [{"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "asyncio", "relation": "imports", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L3", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "http", "relation": "imports", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L4", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L5", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "collections_abc", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L6", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L7", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "urllib_parse", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L8", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "websockets", "relation": "imports", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L10", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "websockets_legacy_handshake", "relation": "imports", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L11", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "websockets_datastructures", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L12", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "websockets_exceptions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L13", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "websockets_extensions_base", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L14", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "websockets_extensions_permessage_deflate", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L15", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "websockets_legacy_server", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L16", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "websockets_server", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L17", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "websockets_typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L18", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "uvicorn_types", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L20", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "uvicorn_config", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L28", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "uvicorn_logging", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L29", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "uvicorn_protocols_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L30", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "uvicorn_server", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L38", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "websockets_impl_server", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L41", "weight": 1.0}, {"source": "websockets_impl_server", "target": "websockets_impl_server_register", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L44", "weight": 1.0}, {"source": "websockets_impl_server", "target": "websockets_impl_server_unregister", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L47", "weight": 1.0}, {"source": "websockets_impl_server", "target": "websockets_impl_server_is_serving", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L50", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_uvicorn_protocols_websockets_websockets_impl_py", "target": "websockets_impl_websocketprotocol", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L54", "weight": 1.0}, {"source": "websockets_impl_websocketprotocol", "target": "websocketserverprotocol", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L54", "weight": 1.0}, {"source": "websockets_impl_websocketprotocol", "target": "websockets_impl_websocketprotocol_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L58", "weight": 1.0}, {"source": "websockets_impl_websocketprotocol", "target": "websockets_impl_websocketprotocol_connection_made", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L115", "weight": 1.0}, {"source": "websockets_impl_websocketprotocol", "target": "websockets_impl_websocketprotocol_connection_lost", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L130", "weight": 1.0}, {"source": "websockets_impl_websocketprotocol", "target": "websockets_impl_websocketprotocol_shutdown", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L143", "weight": 1.0}, {"source": "websockets_impl_websocketprotocol", "target": "websockets_impl_websocketprotocol_on_task_complete", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L151", "weight": 1.0}, {"source": "websockets_impl_websocketprotocol", "target": "websockets_impl_websocketprotocol_process_request", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L154", "weight": 1.0}, {"source": "websockets_impl_websocketprotocol", "target": "websockets_impl_websocketprotocol_process_subprotocol", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L201", "weight": 1.0}, {"source": "websockets_impl_websocketprotocol", "target": "websockets_impl_websocketprotocol_send_500_response", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L210", "weight": 1.0}, {"source": "websockets_impl_websocketprotocol", "target": "websockets_impl_websocketprotocol_ws_handler", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L224", "weight": 1.0}, {"source": "websockets_impl_websocketprotocol", "target": "websockets_impl_websocketprotocol_run_asgi", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L233", "weight": 1.0}, {"source": "websockets_impl_websocketprotocol", "target": "websockets_impl_websocketprotocol_asgi_send", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L259", "weight": 1.0}, {"source": "websockets_impl_websocketprotocol", "target": "websockets_impl_websocketprotocol_asgi_receive", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L347", "weight": 1.0}, {"source": "websockets_impl_websocketprotocol_init", "target": "websockets_impl_server", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L94", "weight": 1.0}, {"source": "websockets_impl_websocketprotocol_shutdown", "target": "websockets_impl_websocketprotocol_send_500_response", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L148", "weight": 1.0}, {"source": "websockets_impl_websocketprotocol_process_request", "target": "websockets_impl_websocketprotocol_run_asgi", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L195", "weight": 1.0}, {"source": "websockets_impl_websocketprotocol_run_asgi", "target": "websockets_impl_websocketprotocol_send_500_response", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L246", "weight": 1.0}, {"source": "websockets_impl_rationale_155", "target": "websockets_impl_websocketprotocol_process_request", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L155", "weight": 1.0}, {"source": "websockets_impl_rationale_204", "target": "websockets_impl_websocketprotocol_process_subprotocol", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L204", "weight": 1.0}, {"source": "websockets_impl_rationale_225", "target": "websockets_impl_websocketprotocol_ws_handler", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L225", "weight": 1.0}, {"source": "websockets_impl_rationale_234", "target": "websockets_impl_websocketprotocol_run_asgi", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L234", "weight": 1.0}], "raw_calls": [{"caller_nid": "websockets_impl_websocketprotocol_init", "callee": "load", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L66"}, {"caller_nid": "websockets_impl_websocketprotocol_init", "callee": "cast", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L69"}, {"caller_nid": "websockets_impl_websocketprotocol_init", "callee": "get_event_loop", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L70"}, {"caller_nid": "websockets_impl_websocketprotocol_init", "callee": "Event", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L86"}, {"caller_nid": "websockets_impl_websocketprotocol_init", "callee": "Event", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L87"}, {"caller_nid": "websockets_impl_websocketprotocol_init", "callee": "Event", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L88"}, {"caller_nid": "websockets_impl_websocketprotocol_init", "callee": "append", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L98"}, {"caller_nid": "websockets_impl_websocketprotocol_init", "callee": "ServerPerMessageDeflateFactory", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L98"}, {"caller_nid": "websockets_impl_websocketprotocol_init", "callee": "super", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L100"}, {"caller_nid": "websockets_impl_websocketprotocol_init", "callee": "getLogger", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L108"}, {"caller_nid": "websockets_impl_websocketprotocol_init", "callee": "decode", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L112"}, {"caller_nid": "websockets_impl_websocketprotocol_init", "callee": "decode", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L112"}, {"caller_nid": "websockets_impl_websocketprotocol_connection_made", "callee": "add", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L118"}, {"caller_nid": "websockets_impl_websocketprotocol_connection_made", "callee": "get_local_addr", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L120"}, {"caller_nid": "websockets_impl_websocketprotocol_connection_made", "callee": "get_remote_addr", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L121"}, {"caller_nid": "websockets_impl_websocketprotocol_connection_made", "callee": "is_ssl", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L122"}, {"caller_nid": "websockets_impl_websocketprotocol_connection_made", "callee": "isEnabledFor", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L124"}, {"caller_nid": "websockets_impl_websocketprotocol_connection_made", "callee": "log", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L126"}, {"caller_nid": "websockets_impl_websocketprotocol_connection_made", "callee": "super", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L128"}, {"caller_nid": "websockets_impl_websocketprotocol_connection_lost", "callee": "remove", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L131"}, {"caller_nid": "websockets_impl_websocketprotocol_connection_lost", "callee": "isEnabledFor", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L133"}, {"caller_nid": "websockets_impl_websocketprotocol_connection_lost", "callee": "log", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L135"}, {"caller_nid": "websockets_impl_websocketprotocol_connection_lost", "callee": "is_set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L137"}, {"caller_nid": "websockets_impl_websocketprotocol_connection_lost", "callee": "set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L138"}, {"caller_nid": "websockets_impl_websocketprotocol_connection_lost", "callee": "super", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L139"}, {"caller_nid": "websockets_impl_websocketprotocol_connection_lost", "callee": "close", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L141"}, {"caller_nid": "websockets_impl_websocketprotocol_shutdown", "callee": "is_set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L145"}, {"caller_nid": "websockets_impl_websocketprotocol_shutdown", "callee": "fail_connection", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L146"}, {"caller_nid": "websockets_impl_websocketprotocol_shutdown", "callee": "close", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L149"}, {"caller_nid": "websockets_impl_websocketprotocol_on_task_complete", "callee": "discard", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L152"}, {"caller_nid": "websockets_impl_websocketprotocol_process_request", "callee": "partition", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L163"}, {"caller_nid": "websockets_impl_websocketprotocol_process_request", "callee": "check_request", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L165"}, {"caller_nid": "websockets_impl_websocketprotocol_process_request", "callee": "get_all", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L168"}, {"caller_nid": "websockets_impl_websocketprotocol_process_request", "callee": "extend", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L169"}, {"caller_nid": "websockets_impl_websocketprotocol_process_request", "callee": "strip", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L169"}, {"caller_nid": "websockets_impl_websocketprotocol_process_request", "callee": "split", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L169"}, {"caller_nid": "websockets_impl_websocketprotocol_process_request", "callee": "encode", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L172"}, {"caller_nid": "websockets_impl_websocketprotocol_process_request", "callee": "encode", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L172"}, {"caller_nid": "websockets_impl_websocketprotocol_process_request", "callee": "raw_items", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L173"}, {"caller_nid": "websockets_impl_websocketprotocol_process_request", "callee": "unquote", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L175"}, {"caller_nid": "websockets_impl_websocketprotocol_process_request", "callee": "encode", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L177"}, {"caller_nid": "websockets_impl_websocketprotocol_process_request", "callee": "encode", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L177"}, {"caller_nid": "websockets_impl_websocketprotocol_process_request", "callee": "encode", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L189"}, {"caller_nid": "websockets_impl_websocketprotocol_process_request", "callee": "copy", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L192"}, {"caller_nid": "websockets_impl_websocketprotocol_process_request", "callee": "create_task", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L195"}, {"caller_nid": "websockets_impl_websocketprotocol_process_request", "callee": "add_done_callback", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L196"}, {"caller_nid": "websockets_impl_websocketprotocol_process_request", "callee": "add", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L197"}, {"caller_nid": "websockets_impl_websocketprotocol_process_request", "callee": "wait", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L198"}, {"caller_nid": "websockets_impl_websocketprotocol_send_500_response", "callee": "encode", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L214"}, {"caller_nid": "websockets_impl_websocketprotocol_send_500_response", "callee": "str", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L214"}, {"caller_nid": "websockets_impl_websocketprotocol_send_500_response", "callee": "len", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L214"}, {"caller_nid": "websockets_impl_websocketprotocol_send_500_response", "callee": "write", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L219"}, {"caller_nid": "websockets_impl_websocketprotocol_send_500_response", "callee": "join", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L219"}, {"caller_nid": "websockets_impl_websocketprotocol_send_500_response", "callee": "set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L222"}, {"caller_nid": "websockets_impl_websocketprotocol_ws_handler", "callee": "set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L230"}, {"caller_nid": "websockets_impl_websocketprotocol_ws_handler", "callee": "wait_closed", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L231"}, {"caller_nid": "websockets_impl_websocketprotocol_run_asgi", "callee": "app", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L239"}, {"caller_nid": "websockets_impl_websocketprotocol_run_asgi", "callee": "set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L241"}, {"caller_nid": "websockets_impl_websocketprotocol_run_asgi", "callee": "set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L243"}, {"caller_nid": "websockets_impl_websocketprotocol_run_asgi", "callee": "exception", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L244"}, {"caller_nid": "websockets_impl_websocketprotocol_run_asgi", "callee": "is_set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L245"}, {"caller_nid": "websockets_impl_websocketprotocol_run_asgi", "callee": "wait", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L248"}, {"caller_nid": "websockets_impl_websocketprotocol_run_asgi", "callee": "set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L250"}, {"caller_nid": "websockets_impl_websocketprotocol_run_asgi", "callee": "is_set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L251"}, {"caller_nid": "websockets_impl_websocketprotocol_run_asgi", "callee": "error", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L252"}, {"caller_nid": "websockets_impl_websocketprotocol_run_asgi", "callee": "error", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L255"}, {"caller_nid": "websockets_impl_websocketprotocol_run_asgi", "callee": "wait", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L256"}, {"caller_nid": "websockets_impl_websocketprotocol_run_asgi", "callee": "close", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L257"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "is_set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L260"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "info", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L262"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "get_client_addr", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L264"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "get_path_with_query_string", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L265"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "cast", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L268"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "get", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L268"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "extend", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L270"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "decode", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L273"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "decode", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L273"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L276"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "info", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L279"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "get_client_addr", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L281"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "get_path_with_query_string", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L282"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L285"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L286"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "info", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L289"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "get_client_addr", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L291"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "get_path_with_query_string", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L292"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "HTTPStatus", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L296"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "decode", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L298"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "decode", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L298"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "get", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L298"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L301"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "RuntimeError", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L304"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "is_set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L309"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "wait", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L310"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "get", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L314"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "get", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L315"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "send", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L317"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "get", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L320"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "get", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L321"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "close", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L322"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L323"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "RuntimeError", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L326"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "get", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L336"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L337"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "RuntimeError", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L339"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_send", "callee": "RuntimeError", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L342"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_receive", "callee": "wait", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L352"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_receive", "callee": "is_set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L359"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_receive", "callee": "recv", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L363"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_receive", "callee": "set", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L365"}, {"caller_nid": "websockets_impl_websocketprotocol_asgi_receive", "callee": "isinstance", "source_file": "backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", "source_location": "L370"}]}