aeac623e3020fee4cdd01e463ced23e4e03539a17c5b57dcbd9d88aac5a4fb4f.json 63 KB

1
  1. {"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "label": "user.py", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_hash_password", "label": "_hash_password()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L19"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat", "label": "_UserCRUDCompat", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L23"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no", "label": ".get_by_user_no()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L24"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py"}, {"id": "sysuser", "label": "SysUser", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no_for_web_login", "label": ".get_by_user_no_for_web_login()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L35"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L54"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "label": "list_users()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L75"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user", "label": "get_user()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L126"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_post_ids_for_user", "label": "list_post_ids_for_user()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L134"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_set_user_post_ids_only", "label": "set_user_post_ids_only()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L144"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_user_ids_bound_to_post", "label": "list_user_ids_bound_to_post()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L176"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_sync_post_user_bindings", "label": "sync_post_user_bindings()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L191"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user_with_relations", "label": "get_user_with_relations()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L219"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_user_no_exists", "label": "user_no_exists()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L244"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "label": "_replace_associations()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L253"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "label": "create_user()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L304"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_update_user", "label": "update_user()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L363"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_soft_delete_user", "label": "soft_delete_user()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L418"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_change_password", "label": "change_password()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L429"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_reset_password", "label": "reset_password()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L449"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "app/crud/user.py", "source_location": "L459"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_rationale_1", "label": "\u7528\u6237 CRUD\uff08sys_user + sys_user_role + sys_user_post\uff09", "file_type": "rationale", "source_file": "app/crud/user.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_rationale_36", "label": "Web \u767b\u5f55\uff1a\u4f18\u5148 DEFAULT_TENANT_NO\uff1b\u672a\u547d\u4e2d\u65f6\u6309 user_no \u56de\u9000\uff08\u517c\u5bb9\u672a\u6267\u884c\u79df\u6237\u8fc1\u79fb\u7684\u5e93\uff09\u3002", "file_type": "rationale", "source_file": "app/crud/user.py", "source_location": "L36"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_rationale_151", "label": "\u4ec5\u66ff\u6362 sys_user_post\uff0c\u4e0d\u5f71\u54cd sys_user_role\u3002", "file_type": "rationale", "source_file": "app/crud/user.py", "source_location": "L151"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_rationale_198", "label": "\u5c06\u672c\u804c\u4f4d\u7ed1\u5b9a\u7684\u7528\u6237\u96c6\u5408\u8bbe\u4e3a user_ids\uff08\u53ea\u589e\u5220\u672c\u804c\u4f4d\uff0c\u4fdd\u7559\u7528\u6237\u5176\u5b83\u804c\u4f4d\u4e0e\u89d2\u8272\uff09\u3002", "file_type": "rationale", "source_file": "app/crud/user.py", "source_location": "L198"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "bcrypt", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "app_core_config", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "app_core_delete_guard", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "app_core_utils", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "app_crud_base", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "app_models_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_hash_password", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L19", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no", "relation": "method", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no", "target": "sysuser", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no_for_web_login", "relation": "method", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L35", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no_for_web_login", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L35", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no_for_web_login", "target": "sysuser", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L35", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_row_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L54", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_row_to_dict", "target": "sysuser", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L54", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_row_to_dict", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L54", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L75", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L75", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L75", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L126", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L126", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user", "target": "sysuser", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L126", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_post_ids_for_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L134", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_post_ids_for_user", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L134", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_set_user_post_ids_only", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L144", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_set_user_post_ids_only", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L144", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_user_ids_bound_to_post", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L176", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_user_ids_bound_to_post", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L176", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_sync_post_user_bindings", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L191", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_sync_post_user_bindings", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L191", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user_with_relations", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L219", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user_with_relations", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L219", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user_with_relations", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L219", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_user_no_exists", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L244", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_user_no_exists", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L244", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L253", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L253", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L304", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L304", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "target": "sysuser", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L304", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_update_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L363", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_update_user", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L363", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_update_user", "target": "sysuser", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L363", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_soft_delete_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L418", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_soft_delete_user", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L418", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_change_password", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L429", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_change_password", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L429", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_reset_password", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L449", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_reset_password", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L449", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_total_pages", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L459", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no_for_web_login", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L37", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_row_to_dict", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L123", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_sync_post_user_bindings", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L201", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_sync_post_user_bindings", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_user_ids_bound_to_post", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L205", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_sync_post_user_bindings", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_post_ids_for_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L212", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_sync_post_user_bindings", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_set_user_post_ids_only", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L215", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user_with_relations", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L220", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user_with_relations", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_row_to_dict", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L230", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user_with_relations", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_post_ids_for_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L238", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "target": "sysuser", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L333", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_hash_password", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L342", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L358", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_update_user", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L380", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_update_user", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L408", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_soft_delete_user", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L419", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_change_password", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L432", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_change_password", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_hash_password", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L443", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_reset_password", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L450", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_reset_password", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_hash_password", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L453", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_rationale_1", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_rationale_36", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no_for_web_login", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L36", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_rationale_151", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_set_user_post_ids_only", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L151", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_rationale_198", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_sync_post_user_bindings", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/user.py", "source_location": "L198", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_hash_password", "callee": "decode", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L20", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_hash_password", "callee": "hashpw", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L20", "receiver": "bcrypt"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_hash_password", "callee": "encode", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L20", "receiver": "password"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_hash_password", "callee": "gensalt", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L20", "receiver": "bcrypt"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L26", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L30", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L30", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no", "callee": "SysUser", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L30"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no", "callee": "and_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L31", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no_for_web_login", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L40", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no_for_web_login", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L44", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no_for_web_login", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L44", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no_for_web_login", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L44", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no_for_web_login", "callee": "SysUser", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L44"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no_for_web_login", "callee": "and_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L45", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no_for_web_login", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L46", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_row_to_dict", "callee": "strftime", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L69", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_row_to_dict", "callee": "strftime", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L70", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "callee": "scalar", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L105", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "callee": "with_entities", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L105", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L105", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "callee": "_filtered", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L105", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "callee": "count", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L105", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "callee": "limit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L109", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "callee": "offset", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L109", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L109", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "callee": "_filtered", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L109", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L110", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L120", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "callee": "SysDept", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L120"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "callee": "in_", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L120", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L123", "receiver": "dept_map"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L128", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L128", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user", "callee": "SysUser", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L128"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user", "callee": "and_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L129", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_post_ids_for_user", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L138", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_post_ids_for_user", "callee": "SysUserPost", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L138"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_post_ids_for_user", "callee": "and_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L139", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_set_user_post_ids_only", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L152", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_set_user_post_ids_only", "callee": "fromkeys", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L153", "receiver": "dict"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_set_user_post_ids_only", "callee": "update", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L154", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_set_user_post_ids_only", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L154", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_set_user_post_ids_only", "callee": "SysUserPost", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L154"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_set_user_post_ids_only", "callee": "and_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L155", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_set_user_post_ids_only", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L158", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_set_user_post_ids_only", "callee": "SysUserPost", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L159", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_set_user_post_ids_only", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L160", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_user_ids_bound_to_post", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L178", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_user_ids_bound_to_post", "callee": "and_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L180", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_sync_post_user_bindings", "callee": "fromkeys", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L199", "receiver": "dict"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_sync_post_user_bindings", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L203", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_sync_post_user_bindings", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L216", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user_with_relations", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L226", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user_with_relations", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L226", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user_with_relations", "callee": "SysDept", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L226"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user_with_relations", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L234", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user_with_relations", "callee": "SysUserRole", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L234"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user_with_relations", "callee": "and_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L235", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_user_no_exists", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L245", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_user_no_exists", "callee": "SysUser", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L245"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_user_no_exists", "callee": "and_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L246", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_user_no_exists", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L246", "receiver": "user_no"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_user_no_exists", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L250", "receiver": "q"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L261", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "callee": "update", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L262", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L262", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "callee": "SysUserRole", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L262"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "callee": "and_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L263", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "callee": "update", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L265", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L265", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "callee": "SysUserPost", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L265"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "callee": "and_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L266", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L271", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "callee": "SysUserRole", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L271", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L272", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L288", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "callee": "SysUserPost", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L288", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L289", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L323", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L325", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L326", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L328", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L329", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L331", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L334", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L338", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L339", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L346", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L349", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L351", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L354", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L355", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L356", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L359", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_update_user", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L382", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_update_user", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L385", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_update_user", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L389", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_update_user", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L391", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_update_user", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L401", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_update_user", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L404", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_update_user", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L405", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_update_user", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L413", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_update_user", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L414", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_soft_delete_user", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L421", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_soft_delete_user", "callee": "assert_row_deletable_by_creator", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L422", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_soft_delete_user", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L424", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_soft_delete_user", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L425", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_soft_delete_user", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L426", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_change_password", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L434", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_change_password", "callee": "password", "is_member_call": false, "indirect": true, "context": "getattr", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L435"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_change_password", "callee": "verify_password", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L436", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_change_password", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L437", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_change_password", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L438", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_change_password", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L440", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_change_password", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L442", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_change_password", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L444", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_change_password", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L445", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_change_password", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L446", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_reset_password", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L452", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_reset_password", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L454", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_reset_password", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L455", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_reset_password", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L456", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_total_pages", "callee": "ceil", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py", "source_location": "L462", "receiver": "math"}], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_change_password", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_create_user", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_get_user_with_relations", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_hash_password", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_post_ids_for_user", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_user_ids_bound_to_post", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_list_users", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_replace_associations", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_reset_password", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_row_to_dict", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_set_user_post_ids_only", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_soft_delete_user", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_sync_post_user_bindings", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_total_pages", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_update_user", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_user_no_exists", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_user_usercrudcompat_get_by_user_no_for_web_login"]}