1 line
45 KiB
JSON
1 line
45 KiB
JSON
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "label": "export_attachment_zip.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L1"}, {"id": "services_export_attachment_zip_sanitize_zip_segment", "label": "sanitize_zip_segment()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L28"}, {"id": "services_export_attachment_zip_short_hash", "label": "short_hash()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L34"}, {"id": "services_export_attachment_zip_guess_ext_from_url", "label": "guess_ext_from_url()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L38"}, {"id": "services_export_attachment_zip_build_attachment_filename", "label": "build_attachment_filename()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L49"}, {"id": "services_export_attachment_zip_first_row_no_by_entity_id", "label": "first_row_no_by_entity_id()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L56"}, {"id": "services_export_attachment_zip_build_hyperlink_formula", "label": "build_hyperlink_formula()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L71"}, {"id": "services_export_attachment_zip_parse_url_list", "label": "parse_url_list()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L77"}, {"id": "services_export_attachment_zip_urls_to_attachment_items", "label": "urls_to_attachment_items()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L92"}, {"id": "services_export_attachment_zip_default_download", "label": "_default_download()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L102"}, {"id": "services_export_attachment_zip_attach_field", "label": "_attach_field()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L108"}, {"id": "services_export_attachment_zip_plan_attachment_jobs", "label": "_plan_attachment_jobs()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L112"}, {"id": "services_export_attachment_zip_build_xlsx_bytes", "label": "_build_xlsx_bytes()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L155"}, {"id": "services_export_attachment_zip_build_attachment_zip_bytes", "label": "build_attachment_zip_bytes()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L215"}, {"id": "services_export_attachment_zip_iter_attachment_zip_chunks", "label": "iter_attachment_zip_chunks()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L250"}, {"id": "services_export_attachment_zip_build_attachment_zip_streaming_response", "label": "build_attachment_zip_streaming_response()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L345"}, {"id": "services_export_attachment_zip_rationale_1", "label": "\u5217\u8868\u5bfc\u51fa\uff1aExcel \u603b\u8868 + \u9644\u4ef6\u76ee\u5f55 ZIP\uff08\u8ba1\u5212\u5f52\u6863 / \u5145\u503c\u7533\u8bf7\u7b49\u5171\u7528\uff09\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L1"}, {"id": "services_export_attachment_zip_rationale_95", "label": "\u5c06\u9017\u53f7/JSON URL \u5217\u8868\u8f6c\u4e3a {url, label} \u5217\u8868\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L95"}, {"id": "services_export_attachment_zip_rationale_119", "label": "\u9884\u5148\u786e\u5b9a\u9644\u4ef6 zip \u8def\u5f84\u4e0e\u8d85\u94fe\u63a5\uff08\u5c1a\u672a\u4e0b\u8f7d\uff09\u3002 \u8fd4\u56de: entity_file_meta: entity_id -> [(zip_pat", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L119"}, {"id": "services_export_attachment_zip_rationale_229", "label": "\u6253\u5305 ZIP\uff1axlsx + \u9644\u4ef6/\uff1b\u8fd4\u56de (zip_bytes, failure_messages)\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L229"}, {"id": "services_export_attachment_zip_rationale_265", "label": "\u8fb9\u4e0b\u8f7d\u8fb9\u4ea7\u51fa ZIP \u5b57\u8282\uff0c\u4fbf\u4e8e\u4ee3\u7406\u5c42\u5728\u957f\u65f6\u95f4\u6253\u5305\u65f6\u4fdd\u6301\u8fde\u63a5\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L265"}, {"id": "services_export_attachment_zip_rationale_359", "label": "\u7acb\u5373\u8fd4\u56de StreamingResponse\uff1a\u5148\u53d1\u54cd\u5e94\u5934\uff0c\u518d\u8fb9\u4e0b\u9644\u4ef6\u8fb9\u63a8\u9001 ZIP \u5b57\u8282\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L359"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "hashlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L5", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "io", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L6", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L7", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "re", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L8", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "zipfile", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L9", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L10", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "urllib_parse", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L11", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "fastapi_responses", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L13", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L14", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "app_utils_excel_export", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L16", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "services_export_attachment_zip_sanitize_zip_segment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L28", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "services_export_attachment_zip_short_hash", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L34", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "services_export_attachment_zip_guess_ext_from_url", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L38", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "services_export_attachment_zip_build_attachment_filename", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L49", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "services_export_attachment_zip_first_row_no_by_entity_id", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L56", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "services_export_attachment_zip_build_hyperlink_formula", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L71", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "services_export_attachment_zip_parse_url_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L77", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "services_export_attachment_zip_urls_to_attachment_items", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L92", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "services_export_attachment_zip_default_download", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L102", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "services_export_attachment_zip_attach_field", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L108", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "services_export_attachment_zip_plan_attachment_jobs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L112", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "services_export_attachment_zip_build_xlsx_bytes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L155", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "services_export_attachment_zip_build_attachment_zip_bytes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L215", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "services_export_attachment_zip_iter_attachment_zip_chunks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L250", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "target": "services_export_attachment_zip_build_attachment_zip_streaming_response", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L345", "weight": 1.0}, {"source": "services_export_attachment_zip_build_attachment_filename", "target": "services_export_attachment_zip_sanitize_zip_segment", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L51", "weight": 1.0}, {"source": "services_export_attachment_zip_build_attachment_filename", "target": "services_export_attachment_zip_short_hash", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L52", "weight": 1.0}, {"source": "services_export_attachment_zip_build_attachment_filename", "target": "services_export_attachment_zip_guess_ext_from_url", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L52", "weight": 1.0}, {"source": "services_export_attachment_zip_build_hyperlink_formula", "target": "services_export_attachment_zip_sanitize_zip_segment", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L73", "weight": 1.0}, {"source": "services_export_attachment_zip_urls_to_attachment_items", "target": "services_export_attachment_zip_parse_url_list", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L97", "weight": 1.0}, {"source": "services_export_attachment_zip_plan_attachment_jobs", "target": "services_export_attachment_zip_first_row_no_by_entity_id", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L125", "weight": 1.0}, {"source": "services_export_attachment_zip_plan_attachment_jobs", "target": "services_export_attachment_zip_build_attachment_filename", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L145", "weight": 1.0}, {"source": "services_export_attachment_zip_build_xlsx_bytes", "target": "services_export_attachment_zip_attach_field", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L171", "weight": 1.0}, {"source": "services_export_attachment_zip_build_xlsx_bytes", "target": "services_export_attachment_zip_build_hyperlink_formula", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L186", "weight": 1.0}, {"source": "services_export_attachment_zip_build_attachment_zip_bytes", "target": "services_export_attachment_zip_iter_attachment_zip_chunks", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L232", "weight": 1.0}, {"source": "services_export_attachment_zip_iter_attachment_zip_chunks", "target": "services_export_attachment_zip_sanitize_zip_segment", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L267", "weight": 1.0}, {"source": "services_export_attachment_zip_iter_attachment_zip_chunks", "target": "services_export_attachment_zip_plan_attachment_jobs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L273", "weight": 1.0}, {"source": "services_export_attachment_zip_iter_attachment_zip_chunks", "target": "services_export_attachment_zip_build_xlsx_bytes", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L279", "weight": 1.0}, {"source": "services_export_attachment_zip_build_attachment_zip_streaming_response", "target": "services_export_attachment_zip_sanitize_zip_segment", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L360", "weight": 1.0}, {"source": "services_export_attachment_zip_rationale_1", "target": "users_zlwu_work_00code_shanxia2_0_backend_app_services_export_attachment_zip_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L1", "weight": 1.0}, {"source": "services_export_attachment_zip_rationale_95", "target": "services_export_attachment_zip_urls_to_attachment_items", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L95", "weight": 1.0}, {"source": "services_export_attachment_zip_rationale_119", "target": "services_export_attachment_zip_plan_attachment_jobs", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L119", "weight": 1.0}, {"source": "services_export_attachment_zip_rationale_229", "target": "services_export_attachment_zip_build_attachment_zip_bytes", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L229", "weight": 1.0}, {"source": "services_export_attachment_zip_rationale_265", "target": "services_export_attachment_zip_iter_attachment_zip_chunks", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L265", "weight": 1.0}, {"source": "services_export_attachment_zip_rationale_359", "target": "services_export_attachment_zip_build_attachment_zip_streaming_response", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L359", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_export_attachment_zip_sanitize_zip_segment", "callee": "sub", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L29"}, {"caller_nid": "services_export_attachment_zip_sanitize_zip_segment", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L29"}, {"caller_nid": "services_export_attachment_zip_sanitize_zip_segment", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L29"}, {"caller_nid": "services_export_attachment_zip_sanitize_zip_segment", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L30"}, {"caller_nid": "services_export_attachment_zip_sanitize_zip_segment", "callee": "sub", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L30"}, {"caller_nid": "services_export_attachment_zip_short_hash", "callee": "hexdigest", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L35"}, {"caller_nid": "services_export_attachment_zip_short_hash", "callee": "sha1", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L35"}, {"caller_nid": "services_export_attachment_zip_short_hash", "callee": "encode", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L35"}, {"caller_nid": "services_export_attachment_zip_short_hash", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L35"}, {"caller_nid": "services_export_attachment_zip_guess_ext_from_url", "callee": "unquote", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L39"}, {"caller_nid": "services_export_attachment_zip_guess_ext_from_url", "callee": "urlparse", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L39"}, {"caller_nid": "services_export_attachment_zip_guess_ext_from_url", "callee": "split", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L39"}, {"caller_nid": "services_export_attachment_zip_guess_ext_from_url", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L39"}, {"caller_nid": "services_export_attachment_zip_guess_ext_from_url", "callee": "rsplit", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L40"}, {"caller_nid": "services_export_attachment_zip_guess_ext_from_url", "callee": "lower", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L43"}, {"caller_nid": "services_export_attachment_zip_guess_ext_from_url", "callee": "rsplit", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L43"}, {"caller_nid": "services_export_attachment_zip_guess_ext_from_url", "callee": "len", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L44"}, {"caller_nid": "services_export_attachment_zip_build_attachment_filename", "callee": "int", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L51"}, {"caller_nid": "services_export_attachment_zip_first_row_no_by_entity_id", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L61"}, {"caller_nid": "services_export_attachment_zip_first_row_no_by_entity_id", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L61"}, {"caller_nid": "services_export_attachment_zip_first_row_no_by_entity_id", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L61"}, {"caller_nid": "services_export_attachment_zip_first_row_no_by_entity_id", "callee": "int", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L65"}, {"caller_nid": "services_export_attachment_zip_first_row_no_by_entity_id", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L65"}, {"caller_nid": "services_export_attachment_zip_build_hyperlink_formula", "callee": "replace", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L72"}, {"caller_nid": "services_export_attachment_zip_build_hyperlink_formula", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L72"}, {"caller_nid": "services_export_attachment_zip_build_hyperlink_formula", "callee": "replace", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L73"}, {"caller_nid": "services_export_attachment_zip_parse_url_list", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L80"}, {"caller_nid": "services_export_attachment_zip_parse_url_list", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L80"}, {"caller_nid": "services_export_attachment_zip_parse_url_list", "callee": "loads", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L84"}, {"caller_nid": "services_export_attachment_zip_parse_url_list", "callee": "isinstance", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L85"}, {"caller_nid": "services_export_attachment_zip_parse_url_list", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L86"}, {"caller_nid": "services_export_attachment_zip_parse_url_list", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L86"}, {"caller_nid": "services_export_attachment_zip_parse_url_list", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L86"}, {"caller_nid": "services_export_attachment_zip_parse_url_list", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L86"}, {"caller_nid": "services_export_attachment_zip_parse_url_list", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L89"}, {"caller_nid": "services_export_attachment_zip_parse_url_list", "callee": "split", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L89"}, {"caller_nid": "services_export_attachment_zip_parse_url_list", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L89"}, {"caller_nid": "services_export_attachment_zip_urls_to_attachment_items", "callee": "enumerate", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L97"}, {"caller_nid": "services_export_attachment_zip_urls_to_attachment_items", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L98"}, {"caller_nid": "services_export_attachment_zip_default_download", "callee": "download_file_bytes", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L105"}, {"caller_nid": "services_export_attachment_zip_plan_attachment_jobs", "callee": "items", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L130"}, {"caller_nid": "services_export_attachment_zip_plan_attachment_jobs", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L131"}, {"caller_nid": "services_export_attachment_zip_plan_attachment_jobs", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L136"}, {"caller_nid": "services_export_attachment_zip_plan_attachment_jobs", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L136"}, {"caller_nid": "services_export_attachment_zip_plan_attachment_jobs", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L136"}, {"caller_nid": "services_export_attachment_zip_plan_attachment_jobs", "callee": "ExportValidationError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L141"}, {"caller_nid": "services_export_attachment_zip_plan_attachment_jobs", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L144"}, {"caller_nid": "services_export_attachment_zip_plan_attachment_jobs", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L144"}, {"caller_nid": "services_export_attachment_zip_plan_attachment_jobs", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L148"}, {"caller_nid": "services_export_attachment_zip_plan_attachment_jobs", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L149"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "values", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L166"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "max", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L167"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "len", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L167"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "min", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L168"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "ExportColumn", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L171"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "range", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L171"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "list", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L173"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "set", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L176"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "dict", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L178"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L179"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L179"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L179"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "range", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L180"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "add", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L183"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "list", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L184"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L184"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "enumerate", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L185"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L187"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "ExportValidationError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L190"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "ExportValidationError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L192"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "DictLabelResolver", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L194"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "Workbook", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L197"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L200"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "row_to_cells", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L202"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L203"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "append_archive_list_merge_sheet", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L208"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "BytesIO", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L210"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "save", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L211"}, {"caller_nid": "services_export_attachment_zip_build_xlsx_bytes", "callee": "getvalue", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L212"}, {"caller_nid": "services_export_attachment_zip_build_attachment_zip_bytes", "callee": "list", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L231"}, {"caller_nid": "services_export_attachment_zip_build_attachment_zip_bytes", "callee": "join", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L247"}, {"caller_nid": "services_export_attachment_zip_iter_attachment_zip_chunks", "callee": "BytesIO", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L292"}, {"caller_nid": "services_export_attachment_zip_iter_attachment_zip_chunks", "callee": "ZipFile", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L304"}, {"caller_nid": "services_export_attachment_zip_iter_attachment_zip_chunks", "callee": "writestr", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L305"}, {"caller_nid": "services_export_attachment_zip_iter_attachment_zip_chunks", "callee": "flush", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L306"}, {"caller_nid": "services_export_attachment_zip_iter_attachment_zip_chunks", "callee": "download", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L312"}, {"caller_nid": "services_export_attachment_zip_iter_attachment_zip_chunks", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L314"}, {"caller_nid": "services_export_attachment_zip_iter_attachment_zip_chunks", "callee": "len", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L317"}, {"caller_nid": "services_export_attachment_zip_iter_attachment_zip_chunks", "callee": "ExportValidationError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L319"}, {"caller_nid": "services_export_attachment_zip_iter_attachment_zip_chunks", "callee": "ExportValidationError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L323"}, {"caller_nid": "services_export_attachment_zip_iter_attachment_zip_chunks", "callee": "writestr", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L324"}, {"caller_nid": "services_export_attachment_zip_iter_attachment_zip_chunks", "callee": "flush", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L325"}, {"caller_nid": "services_export_attachment_zip_iter_attachment_zip_chunks", "callee": "join", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L330"}, {"caller_nid": "services_export_attachment_zip_iter_attachment_zip_chunks", "callee": "writestr", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L331"}, {"caller_nid": "services_export_attachment_zip_iter_attachment_zip_chunks", "callee": "encode", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L331"}, {"caller_nid": "services_export_attachment_zip_iter_attachment_zip_chunks", "callee": "flush", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L332"}, {"caller_nid": "services_export_attachment_zip_iter_attachment_zip_chunks", "callee": "flush", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L337"}, {"caller_nid": "services_export_attachment_zip_iter_attachment_zip_chunks", "callee": "extend", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L342"}, {"caller_nid": "services_export_attachment_zip_build_attachment_zip_streaming_response", "callee": "quote", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L362"}, {"caller_nid": "services_export_attachment_zip_build_attachment_zip_streaming_response", "callee": "StreamingResponse", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L380"}, {"caller_nid": "services_export_attachment_zip_build_attachment_zip_streaming_response", "callee": "generate", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/export_attachment_zip.py", "source_location": "L381"}]} |