{"nodes": [{"id": "backend_venv_lib_python3_12_site_packages_pip_internal_utils_hashes_py", "label": "hashes.py", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L1"}, {"id": "hashes_hashes", "label": "Hashes", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L24"}, {"id": "hashes_hashes_init", "label": ".__init__()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L30"}, {"id": "hashes_hashes_and", "label": ".__and__()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L42"}, {"id": "hashes_digest_count", "label": "digest_count()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L62"}, {"id": "hashes_hashes_is_hash_allowed", "label": ".is_hash_allowed()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L65"}, {"id": "hashes_hashes_check_against_chunks", "label": ".check_against_chunks()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L69"}, {"id": "hashes_hashes_raise", "label": "._raise()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L92"}, {"id": "hashes_hashes_check_against_file", "label": ".check_against_file()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L95"}, {"id": "hashes_hashes_check_against_path", "label": ".check_against_path()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L103"}, {"id": "hashes_hashes_has_one_of", "label": ".has_one_of()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L107"}, {"id": "hashes_hashes_bool", "label": ".__bool__()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L114"}, {"id": "hashes_hashes_eq", "label": ".__eq__()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L118"}, {"id": "hashes_hashes_hash", "label": ".__hash__()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L123"}, {"id": "hashes_missinghashes", "label": "MissingHashes", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L135"}, {"id": "hashes_missinghashes_init", "label": ".__init__()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L143"}, {"id": "hashes_missinghashes_raise", "label": "._raise()", "file_type": "code", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L149"}, {"id": "hashes_rationale_25", "label": "A wrapper that builds multiple hashes at once and checks them against known-", "file_type": "rationale", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L25"}, {"id": "hashes_rationale_31", "label": ":param hashes: A dict of algorithm names pointing to lists of allowed", "file_type": "rationale", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L31"}, {"id": "hashes_rationale_66", "label": "Return whether the given hex digest is allowed.", "file_type": "rationale", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L66"}, {"id": "hashes_rationale_70", "label": "Check good hashes against ones built from iterable of chunks of data.", "file_type": "rationale", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L70"}, {"id": "hashes_rationale_96", "label": "Check good hashes against a file-like object Raise HashMismatch if none", "file_type": "rationale", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L96"}, {"id": "hashes_rationale_108", "label": "Return whether any of the given hashes are allowed.", "file_type": "rationale", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L108"}, {"id": "hashes_rationale_115", "label": "Return whether I know any known-good hashes.", "file_type": "rationale", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L115"}, {"id": "hashes_rationale_136", "label": "A workalike for Hashes used when we're missing a hash for a requirement It", "file_type": "rationale", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L136"}, {"id": "hashes_rationale_144", "label": "Don't offer the ``hashes`` kwarg.", "file_type": "rationale", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L144"}], "edges": [{"source": "backend_venv_lib_python3_12_site_packages_pip_internal_utils_hashes_py", "target": "hashlib", "relation": "imports", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L3", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_pip_internal_utils_hashes_py", "target": "collections_abc", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L4", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_pip_internal_utils_hashes_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L5", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_pip_internal_utils_hashes_py", "target": "pip_internal_exceptions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L7", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_pip_internal_utils_hashes_py", "target": "pip_internal_utils_misc", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L8", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_pip_internal_utils_hashes_py", "target": "hashlib", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L11", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_pip_internal_utils_hashes_py", "target": "hashes_hashes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L24", "weight": 1.0}, {"source": "hashes_hashes", "target": "hashes_hashes_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L30", "weight": 1.0}, {"source": "hashes_hashes", "target": "hashes_hashes_and", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L42", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_pip_internal_utils_hashes_py", "target": "hashes_digest_count", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L62", "weight": 1.0}, {"source": "hashes_hashes", "target": "hashes_hashes_is_hash_allowed", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L65", "weight": 1.0}, {"source": "hashes_hashes", "target": "hashes_hashes_check_against_chunks", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L69", "weight": 1.0}, {"source": "hashes_hashes", "target": "hashes_hashes_raise", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L92", "weight": 1.0}, {"source": "hashes_hashes", "target": "hashes_hashes_check_against_file", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L95", "weight": 1.0}, {"source": "hashes_hashes", "target": "hashes_hashes_check_against_path", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L103", "weight": 1.0}, {"source": "hashes_hashes", "target": "hashes_hashes_has_one_of", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L107", "weight": 1.0}, {"source": "hashes_hashes", "target": "hashes_hashes_bool", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L114", "weight": 1.0}, {"source": "hashes_hashes", "target": "hashes_hashes_eq", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L118", "weight": 1.0}, {"source": "hashes_hashes", "target": "hashes_hashes_hash", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L123", "weight": 1.0}, {"source": "backend_venv_lib_python3_12_site_packages_pip_internal_utils_hashes_py", "target": "hashes_missinghashes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L135", "weight": 1.0}, {"source": "hashes_missinghashes", "target": "hashes_hashes", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L135", "weight": 1.0}, {"source": "hashes_missinghashes", "target": "hashes_missinghashes_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L143", "weight": 1.0}, {"source": "hashes_missinghashes", "target": "hashes_missinghashes_raise", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L149", "weight": 1.0}, {"source": "hashes_hashes_and", "target": "hashes_hashes", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L59", "weight": 1.0}, {"source": "hashes_hashes_check_against_chunks", "target": "hashes_missinghashes_raise", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L90", "weight": 1.0}, {"source": "hashes_hashes_check_against_file", "target": "hashes_hashes_check_against_chunks", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L101", "weight": 1.0}, {"source": "hashes_hashes_check_against_path", "target": "hashes_hashes_check_against_file", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L105", "weight": 1.0}, {"source": "hashes_hashes_has_one_of", "target": "hashes_hashes_is_hash_allowed", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L110", "weight": 1.0}, {"source": "hashes_rationale_25", "target": "hashes_hashes", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L25", "weight": 1.0}, {"source": "hashes_rationale_31", "target": "hashes_hashes_init", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L31", "weight": 1.0}, {"source": "hashes_rationale_66", "target": "hashes_hashes_is_hash_allowed", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L66", "weight": 1.0}, {"source": "hashes_rationale_70", "target": "hashes_hashes_check_against_chunks", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L70", "weight": 1.0}, {"source": "hashes_rationale_96", "target": "hashes_hashes_check_against_file", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L96", "weight": 1.0}, {"source": "hashes_rationale_108", "target": "hashes_hashes_has_one_of", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L108", "weight": 1.0}, {"source": "hashes_rationale_115", "target": "hashes_hashes_bool", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L115", "weight": 1.0}, {"source": "hashes_rationale_136", "target": "hashes_missinghashes", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L136", "weight": 1.0}, {"source": "hashes_rationale_144", "target": "hashes_missinghashes_init", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L144", "weight": 1.0}], "raw_calls": [{"caller_nid": "hashes_hashes_init", "callee": "items", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L37"}, {"caller_nid": "hashes_hashes_init", "callee": "lower", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L39"}, {"caller_nid": "hashes_hashes_init", "callee": "sorted", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L39"}, {"caller_nid": "hashes_hashes_and", "callee": "isinstance", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L43"}, {"caller_nid": "hashes_hashes_and", "callee": "items", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L55"}, {"caller_nid": "hashes_digest_count", "callee": "sum", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L63"}, {"caller_nid": "hashes_digest_count", "callee": "len", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L63"}, {"caller_nid": "hashes_digest_count", "callee": "values", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L63"}, {"caller_nid": "hashes_hashes_is_hash_allowed", "callee": "get", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L67"}, {"caller_nid": "hashes_hashes_check_against_chunks", "callee": "keys", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L77"}, {"caller_nid": "hashes_hashes_check_against_chunks", "callee": "new", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L79"}, {"caller_nid": "hashes_hashes_check_against_chunks", "callee": "InstallationError", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L81"}, {"caller_nid": "hashes_hashes_check_against_chunks", "callee": "values", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L84"}, {"caller_nid": "hashes_hashes_check_against_chunks", "callee": "update", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L85"}, {"caller_nid": "hashes_hashes_check_against_chunks", "callee": "items", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L87"}, {"caller_nid": "hashes_hashes_check_against_chunks", "callee": "hexdigest", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L88"}, {"caller_nid": "hashes_hashes_raise", "callee": "HashMismatch", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L93"}, {"caller_nid": "hashes_hashes_check_against_file", "callee": "read_chunks", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L101"}, {"caller_nid": "hashes_hashes_check_against_path", "callee": "open", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L104"}, {"caller_nid": "hashes_hashes_has_one_of", "callee": "items", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L109"}, {"caller_nid": "hashes_hashes_bool", "callee": "bool", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L116"}, {"caller_nid": "hashes_hashes_eq", "callee": "isinstance", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L119"}, {"caller_nid": "hashes_hashes_hash", "callee": "hash", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L124"}, {"caller_nid": "hashes_hashes_hash", "callee": "join", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L125"}, {"caller_nid": "hashes_hashes_hash", "callee": "sorted", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L126"}, {"caller_nid": "hashes_hashes_hash", "callee": "join", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L127"}, {"caller_nid": "hashes_hashes_hash", "callee": "items", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L128"}, {"caller_nid": "hashes_missinghashes_init", "callee": "super", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L147"}, {"caller_nid": "hashes_missinghashes_raise", "callee": "HashMissing", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L150"}, {"caller_nid": "hashes_missinghashes_raise", "callee": "hexdigest", "source_file": "backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py", "source_location": "L150"}]}