| 1 |
- {"nodes": [{"id": "users_wuzilong_work_00code_sqxp_2_backend_app_ws_price_updates_py", "label": "price_updates.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L1"}, {"id": "ws_price_updates_pricelistupdatedevent", "label": "PriceListUpdatedEvent", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L17"}, {"id": "ws_price_updates_pricelistupdatedevent_to_message", "label": ".to_message()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L23"}, {"id": "ws_price_updates_regionwsmanager", "label": "RegionWSManager", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L35"}, {"id": "ws_price_updates_regionwsmanager_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L38"}, {"id": "ws_price_updates_regionwsmanager_connect", "label": ".connect()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L42"}, {"id": "ws_price_updates_regionwsmanager_disconnect", "label": ".disconnect()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L63"}, {"id": "ws_price_updates_regionwsmanager_broadcast_region", "label": ".broadcast_region()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L73"}, {"id": "ws_price_updates_ws_mini_price_updates", "label": "ws_mini_price_updates()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L103"}, {"id": "ws_price_updates_notify_price_list_updated", "label": "notify_price_list_updated()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L139"}, {"id": "ws_price_updates_register_ws_routes", "label": "register_ws_routes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L153"}, {"id": "ws_price_updates_rationale_1", "label": "WebSocket\uff1a\u533a\u57df\u4ef7\u683c\u6e05\u5355\u66f4\u65b0\u63a8\u9001\uff08\u5ba2\u6237\u7aef\u5b9e\u65f6\u5237\u65b0\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L1"}, {"id": "ws_price_updates_rationale_36", "label": "\u6309 region_id \u7ba1\u7406 websocket \u8fde\u63a5\u5e76\u5e7f\u64ad\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L36"}, {"id": "ws_price_updates_rationale_43", "label": "\u9274\u6743\u5e76\u63a5\u5165\u623f\u95f4\u3002\u8fd4\u56de current_user dict\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L43"}, {"id": "ws_price_updates_rationale_74", "label": "\u5411 region \u623f\u95f4\u5e7f\u64ad\u6d88\u606f\u3002\u8fd4\u56de\u5c1d\u8bd5\u53d1\u9001\u7684\u8fde\u63a5\u6570\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L74"}, {"id": "ws_price_updates_rationale_104", "label": "\u5c0f\u7a0b\u5e8f\u7aef WebSocket \u5165\u53e3\uff1a/ws/mini", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L104"}, {"id": "ws_price_updates_rationale_154", "label": "\u5728 FastAPI app \u4e0a\u6ce8\u518c websocket \u8def\u7531\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L154"}], "edges": [{"source": "users_wuzilong_work_00code_sqxp_2_backend_app_ws_price_updates_py", "target": "asyncio", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_ws_price_updates_py", "target": "dataclasses", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_ws_price_updates_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_ws_price_updates_py", "target": "anyio", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_ws_price_updates_py", "target": "fastapi", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_ws_price_updates_py", "target": "app_core_database", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_ws_price_updates_py", "target": "app_core_auth", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_ws_price_updates_py", "target": "ws_price_updates_pricelistupdatedevent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L17", "weight": 1.0}, {"source": "ws_price_updates_pricelistupdatedevent", "target": "ws_price_updates_pricelistupdatedevent_to_message", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_ws_price_updates_py", "target": "ws_price_updates_regionwsmanager", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L35", "weight": 1.0}, {"source": "ws_price_updates_regionwsmanager", "target": "ws_price_updates_regionwsmanager_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L38", "weight": 1.0}, {"source": "ws_price_updates_regionwsmanager", "target": "ws_price_updates_regionwsmanager_connect", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L42", "weight": 1.0}, {"source": "ws_price_updates_regionwsmanager", "target": "ws_price_updates_regionwsmanager_disconnect", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L63", "weight": 1.0}, {"source": "ws_price_updates_regionwsmanager", "target": "ws_price_updates_regionwsmanager_broadcast_region", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L73", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_ws_price_updates_py", "target": "ws_price_updates_ws_mini_price_updates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L103", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_ws_price_updates_py", "target": "ws_price_updates_notify_price_list_updated", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L139", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_ws_price_updates_py", "target": "ws_price_updates_register_ws_routes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L153", "weight": 1.0}, {"source": "ws_price_updates_ws_mini_price_updates", "target": "ws_price_updates_regionwsmanager_connect", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L117", "weight": 1.0}, {"source": "ws_price_updates_ws_mini_price_updates", "target": "ws_price_updates_regionwsmanager_disconnect", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L136", "weight": 1.0}, {"source": "ws_price_updates_rationale_1", "target": "users_wuzilong_work_00code_sqxp_2_backend_app_ws_price_updates_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L1", "weight": 1.0}, {"source": "ws_price_updates_rationale_36", "target": "ws_price_updates_regionwsmanager", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L36", "weight": 1.0}, {"source": "ws_price_updates_rationale_43", "target": "ws_price_updates_regionwsmanager_connect", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L43", "weight": 1.0}, {"source": "ws_price_updates_rationale_74", "target": "ws_price_updates_regionwsmanager_broadcast_region", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L74", "weight": 1.0}, {"source": "ws_price_updates_rationale_104", "target": "ws_price_updates_ws_mini_price_updates", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L104", "weight": 1.0}, {"source": "ws_price_updates_rationale_154", "target": "ws_price_updates_register_ws_routes", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L154", "weight": 1.0}], "raw_calls": [{"caller_nid": "ws_price_updates_regionwsmanager_init", "callee": "Lock", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L39"}, {"caller_nid": "ws_price_updates_regionwsmanager_connect", "callee": "SessionLocal", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L45"}, {"caller_nid": "ws_price_updates_regionwsmanager_connect", "callee": "get_current_user_by_token", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L47"}, {"caller_nid": "ws_price_updates_regionwsmanager_connect", "callee": "close", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L49"}, {"caller_nid": "ws_price_updates_regionwsmanager_connect", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L51"}, {"caller_nid": "ws_price_updates_regionwsmanager_connect", "callee": "get", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L51"}, {"caller_nid": "ws_price_updates_regionwsmanager_connect", "callee": "close", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L53"}, {"caller_nid": "ws_price_updates_regionwsmanager_connect", "callee": "RuntimeError", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L54"}, {"caller_nid": "ws_price_updates_regionwsmanager_connect", "callee": "accept", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L56"}, {"caller_nid": "ws_price_updates_regionwsmanager_connect", "callee": "add", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L59"}, {"caller_nid": "ws_price_updates_regionwsmanager_connect", "callee": "setdefault", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L59"}, {"caller_nid": "ws_price_updates_regionwsmanager_connect", "callee": "set", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L59"}, {"caller_nid": "ws_price_updates_regionwsmanager_disconnect", "callee": "get", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L65"}, {"caller_nid": "ws_price_updates_regionwsmanager_disconnect", "callee": "remove", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L69"}, {"caller_nid": "ws_price_updates_regionwsmanager_disconnect", "callee": "pop", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L71"}, {"caller_nid": "ws_price_updates_regionwsmanager_broadcast_region", "callee": "list", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L76"}, {"caller_nid": "ws_price_updates_regionwsmanager_broadcast_region", "callee": "get", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L76"}, {"caller_nid": "ws_price_updates_regionwsmanager_broadcast_region", "callee": "set", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L76"}, {"caller_nid": "ws_price_updates_regionwsmanager_broadcast_region", "callee": "send_json", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L84"}, {"caller_nid": "ws_price_updates_regionwsmanager_broadcast_region", "callee": "append", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L86"}, {"caller_nid": "ws_price_updates_regionwsmanager_broadcast_region", "callee": "get", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L90"}, {"caller_nid": "ws_price_updates_regionwsmanager_broadcast_region", "callee": "discard", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L93"}, {"caller_nid": "ws_price_updates_regionwsmanager_broadcast_region", "callee": "pop", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L95"}, {"caller_nid": "ws_price_updates_regionwsmanager_broadcast_region", "callee": "len", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L97"}, {"caller_nid": "ws_price_updates_ws_mini_price_updates", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L105"}, {"caller_nid": "ws_price_updates_ws_mini_price_updates", "callee": "get", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L105"}, {"caller_nid": "ws_price_updates_ws_mini_price_updates", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L108"}, {"caller_nid": "ws_price_updates_ws_mini_price_updates", "callee": "get", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L108"}, {"caller_nid": "ws_price_updates_ws_mini_price_updates", "callee": "startswith", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L109"}, {"caller_nid": "ws_price_updates_ws_mini_price_updates", "callee": "lower", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L109"}, {"caller_nid": "ws_price_updates_ws_mini_price_updates", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L110"}, {"caller_nid": "ws_price_updates_ws_mini_price_updates", "callee": "close", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L113"}, {"caller_nid": "ws_price_updates_ws_mini_price_updates", "callee": "close", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L121"}, {"caller_nid": "ws_price_updates_ws_mini_price_updates", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L126"}, {"caller_nid": "ws_price_updates_ws_mini_price_updates", "callee": "get", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L126"}, {"caller_nid": "ws_price_updates_ws_mini_price_updates", "callee": "receive_text", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L130"}, {"caller_nid": "ws_price_updates_notify_price_list_updated", "callee": "get_running_loop", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L146"}, {"caller_nid": "ws_price_updates_notify_price_list_updated", "callee": "create_task", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L147"}, {"caller_nid": "ws_price_updates_notify_price_list_updated", "callee": "_run", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L147"}, {"caller_nid": "ws_price_updates_notify_price_list_updated", "callee": "run", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L150"}, {"caller_nid": "ws_price_updates_register_ws_routes", "callee": "app.websocket(\"/ws/mini\")", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L155"}, {"caller_nid": "ws_price_updates_register_ws_routes", "callee": "websocket", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/ws/price_updates.py", "source_location": "L155"}]}
|