1 line
45 KiB
JSON
1 line
45 KiB
JSON
{"nodes": [{"id": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_risk_control_py", "label": "risk_control.py", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L1"}, {"id": "structured_dynamic_factors_20260327_risk_control_risklevel", "label": "RiskLevel", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L19"}, {"id": "enum", "label": "Enum", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "structured_dynamic_factors_20260327_risk_control_sentiment", "label": "Sentiment", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L26"}, {"id": "structured_dynamic_factors_20260327_risk_control_individualstockrisk", "label": "IndividualStockRisk", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L37"}, {"id": "structured_dynamic_factors_20260327_risk_control_sectorinfo", "label": "SectorInfo", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L76"}, {"id": "structured_dynamic_factors_20260327_risk_control_overallriskresult", "label": "OverallRiskResult", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L87"}, {"id": "structured_dynamic_factors_20260327_risk_control_riskconfig", "label": "RiskConfig", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L101"}, {"id": "structured_dynamic_factors_20260327_risk_control_individualriskassessor", "label": "IndividualRiskAssessor", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L148"}, {"id": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L151"}, {"id": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_base_five_dimension", "label": ".assess_base_five_dimension()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L154"}, {"id": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "label": ".assess_news_risk()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L164"}, {"id": "structured_dynamic_factors_20260327_risk_control_structuralsectortiming", "label": "StructuralSectorTiming", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L237"}, {"id": "structured_dynamic_factors_20260327_risk_control_structuralsectortiming_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L240"}, {"id": "structured_dynamic_factors_20260327_risk_control_structuralsectortiming_timing_single_sector", "label": ".timing_single_sector()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L243"}, {"id": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol", "label": "SectorConcentrationControl", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L278"}, {"id": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L281"}, {"id": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol_check_concentration", "label": ".check_concentration()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L284"}, {"id": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol", "label": "StructuredDynamicFactorsRiskControl", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L319"}, {"id": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L322"}, {"id": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_stock", "label": ".assess_stock()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L328"}, {"id": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_portfolio", "label": ".assess_portfolio()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L365"}, {"id": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_risk_report", "label": ".get_risk_report()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L423"}, {"id": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_sector_timing_report", "label": ".get_sector_timing_report()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L453"}, {"id": "structured_dynamic_factors_20260327_risk_control_rationale_1", "label": "\u7ed3\u6784\u5316\u9002\u914d\u52a8\u6001\u591a\u56e0\u5b50 - \u98ce\u63a7\u548c\u62e9\u65f6\u6a21\u5757 \u529f\u80fd\uff1a 1. \u4e2a\u80a1\u98ce\u9669\u8bc4\u4f30\uff1a\u4e94\u7ef4\u98ce\u9669 + \u6d88\u606f\u63d0\u524d\u76d1\u63a7 + \u56fd\u9645\u8054\u52a8\u98ce\u9669 2. \u62e9\u65f6\u9002\u914d\u7ed3\u6784\u5316\uff1a\u677f\u5757\u8f6e\u52a8\u62e9\u65f6\uff0c\u4ed3\u4f4d\u63a7", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L1"}, {"id": "structured_dynamic_factors_20260327_risk_control_rationale_165", "label": "\u8ba1\u7b97\u6d88\u606f\u9762\u98ce\u9669\uff0c\u8fd4\u56de\u98ce\u9669\u52060~1\u548c\u8b66\u544a\u5217\u8868", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L165"}], "edges": [{"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_risk_control_py", "target": "dataclasses", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L14", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_risk_control_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L15", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_risk_control_py", "target": "enum", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L16", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_risk_control_py", "target": "structured_dynamic_factors_20260327_risk_control_risklevel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L19", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_risklevel", "target": "enum", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L19", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_risk_control_py", "target": "structured_dynamic_factors_20260327_risk_control_sentiment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L26", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_sentiment", "target": "enum", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L26", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_risk_control_py", "target": "structured_dynamic_factors_20260327_risk_control_individualstockrisk", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L37", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_risk_control_py", "target": "structured_dynamic_factors_20260327_risk_control_sectorinfo", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L76", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_risk_control_py", "target": "structured_dynamic_factors_20260327_risk_control_overallriskresult", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L87", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_risk_control_py", "target": "structured_dynamic_factors_20260327_risk_control_riskconfig", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L101", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_risk_control_py", "target": "structured_dynamic_factors_20260327_risk_control_individualriskassessor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L148", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_individualriskassessor", "target": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L151", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_individualriskassessor", "target": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_base_five_dimension", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L154", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_individualriskassessor", "target": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L164", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_risk_control_py", "target": "structured_dynamic_factors_20260327_risk_control_structuralsectortiming", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L237", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_structuralsectortiming", "target": "structured_dynamic_factors_20260327_risk_control_structuralsectortiming_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L240", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_structuralsectortiming", "target": "structured_dynamic_factors_20260327_risk_control_structuralsectortiming_timing_single_sector", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L243", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_risk_control_py", "target": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L278", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol", "target": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L281", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol", "target": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol_check_concentration", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L284", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_risk_control_py", "target": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L319", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol", "target": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L322", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol", "target": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_stock", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L328", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol", "target": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_portfolio", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L365", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol", "target": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_risk_report", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L423", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol", "target": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_sector_timing_report", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L453", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_init", "target": "structured_dynamic_factors_20260327_risk_control_individualriskassessor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L324", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_init", "target": "structured_dynamic_factors_20260327_risk_control_structuralsectortiming", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L325", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_init", "target": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L326", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_stock", "target": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_base_five_dimension", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L331", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_stock", "target": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L333", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_portfolio", "target": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_stock", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L371", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_portfolio", "target": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol_check_concentration", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L377", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_portfolio", "target": "structured_dynamic_factors_20260327_risk_control_structuralsectortiming_timing_single_sector", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L379", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_portfolio", "target": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L388", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_portfolio", "target": "structured_dynamic_factors_20260327_risk_control_overallriskresult", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L413", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_sector_timing_report", "target": "structured_dynamic_factors_20260327_risk_control_structuralsectortiming_timing_single_sector", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L462", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_rationale_1", "target": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_risk_control_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L1", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_risk_control_rationale_165", "target": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L165", "weight": 1.0}], "raw_calls": [{"caller_nid": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L173"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L177"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L181"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L186"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L191"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L195"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L200"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L204"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L209"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L213"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L217"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L221"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L225"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L226"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L228"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L229"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_individualriskassessor_assess_news_risk", "callee": "min", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L231"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structuralsectortiming_timing_single_sector", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L252"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structuralsectortiming_timing_single_sector", "callee": "strip", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L275"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol_check_concentration", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L293"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol_check_concentration", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L294"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol_check_concentration", "callee": "get", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L299"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol_check_concentration", "callee": "items", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L301"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol_check_concentration", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L304"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol_check_concentration", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L305"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol_check_concentration", "callee": "sum", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L308"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol_check_concentration", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L311"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_sectorconcentrationcontrol_check_concentration", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L312"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_portfolio", "callee": "sum", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L371"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_portfolio", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L372"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_portfolio", "callee": "min", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L382"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_portfolio", "callee": "extend", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L390"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_portfolio", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L391"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_portfolio", "callee": "min", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L395"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_assess_portfolio", "callee": "extend", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L411"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L433"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L434"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L435"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L436"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L437"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L438"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L439"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L440"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L441"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L444"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L446"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L447"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L449"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L450"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_risk_report", "callee": "join", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L451"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_sector_timing_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L456"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_sector_timing_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L457"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_sector_timing_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L458"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_sector_timing_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L464"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_sector_timing_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L465"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_sector_timing_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L466"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_sector_timing_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L467"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_sector_timing_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L469"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_sector_timing_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L471"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_sector_timing_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L473"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_sector_timing_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L475"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_sector_timing_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L477"}, {"caller_nid": "structured_dynamic_factors_20260327_risk_control_structureddynamicfactorsriskcontrol_get_sector_timing_report", "callee": "join", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/risk_control.py", "source_location": "L478"}]} |