The Python package installer
This report presents the forensic synthetic code analysis of pypa/pip, a Python project with 10,231 GitHub stars. SynthScan v2.0 examined 194,612 lines of code across 784 source files, recording 3119 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 17.0 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 3119 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | noxfile.py | 47 | def should_update_common_wheels(session: nox.Session) -> bool: | CODE |
| LOW | tools/release/__init__.py | 19 | def get_version_from_arguments(session: Session) -> str | None: | CODE |
| LOW | tools/release/__init__.py | 150 | def get_next_development_version(version: str) -> str: | CODE |
| LOW | tools/release/__init__.py | 199 | def isolated_temporary_checkout( | CODE |
| LOW | tools/release/check_version.py | 11 | def is_this_a_good_version_number(string: str) -> str | None: | CODE |
| LOW | tests/conftest.py | 119 | def pytest_collection_modifyitems(config: Config, items: list[pytest.Function]) -> None: | CODE |
| LOW | tests/conftest.py | 382 | def scoped_global_tempdir_manager(request: pytest.FixtureRequest) -> Iterator[None]: | CODE |
| LOW | tests/conftest.py | 399 | def not_code_files_and_folders(path: str, names: list[str]) -> Iterable[str]: | CODE |
| LOW | tests/conftest.py | 460 | def _common_wheel_editable_install( | CODE |
| LOW | tests/conftest.py | 1045 | def html_index_with_onetime_server( | CODE |
| LOW | tests/unit/test_format_control.py | 31 | def test_only_binary_overrides() -> None: | CODE |
| LOW | tests/unit/test_format_control.py | 45 | def test_none_preserves_other_side() -> None: | CODE |
| LOW | tests/unit/test_format_control.py | 52 | def test_comma_separated_values() -> None: | CODE |
| LOW | tests/unit/test_utils_subprocess.py | 49 | def test_call_subprocess_stdout_only( | CODE |
| LOW | tests/unit/test_utils_subprocess.py | 231 | def test_info_logging__subprocess_error( | CODE |
| LOW | tests/unit/test_utils_subprocess.py | 280 | def test_info_logging_with_show_stdout_true( | CODE |
| LOW | tests/unit/test_utils_subprocess.py | 382 | def test_unicode_decode_error(caplog: pytest.LogCaptureFixture) -> None: | CODE |
| LOW | tests/unit/test_network_session.py | 114 | def test_accept_encoding_is_fixed() -> None: | CODE |
| LOW | tests/unit/test_network_session.py | 153 | def test_user_agent_user_data(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/unit/test_network_session.py | 173 | def test_http_cache_is_not_enabled(self, tmpdir: Path) -> None: | CODE |
| LOW | tests/unit/test_network_session.py | 178 | def test_trusted_hosts_adapter(self, tmpdir: Path) -> None: | CODE |
| LOW | tests/unit/test_network_session.py | 247 | def test_add_trusted_host__logging(self, caplog: pytest.LogCaptureFixture) -> None: | CODE |
| LOW | tests/unit/test_network_session.py | 283 | def test_iter_secure_origins__trusted_hosts_empty(self) -> None: | CODE |
| LOW | tests/unit/test_network_session.py | 393 | def test_no_proxy_env_ignores_environment_proxies( | CODE |
| LOW | tests/unit/test_network_session.py | 410 | def test_no_proxy_env_keeps_command_line_proxy( | CODE |
| LOW | tests/unit/test_network_session.py | 426 | def test_environment_trusted_without_no_proxy_env( | CODE |
| LOW | tests/unit/test_network_session.py | 435 | def test_empty_proxy_bypasses_environment_proxies( | CODE |
| LOW | tests/unit/test_network_session.py | 450 | def test_unset_proxy_is_distinct_from_empty( | CODE |
| LOW | tests/unit/test_network_session.py | 482 | def test_connection_closed_by_peer( | CODE |
| LOW | tests/unit/test_network_session.py | 519 | def test_missing_python_ssl_support( | CODE |
| LOW | tests/unit/test_network_session.py | 536 | def test_uses_failed_request_url( | CODE |
| LOW | tests/unit/test_target_python.py | 28 | def test_init__py_version_info( | CODE |
| LOW | tests/unit/test_target_python.py | 46 | def test_init__py_version_info_none(self) -> None: | CODE |
| LOW | tests/unit/test_target_python.py | 118 | def test_get_unsorted_tags__uses_cached_value(self) -> None: | CODE |
| LOW | tests/unit/test_utils_filesystem.py | 32 | def test_yieled_in_reverse_order(self, tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_utils_filesystem.py | 52 | def test_empty_directory_tree(self, tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_utils_filesystem.py | 71 | def test_nested_empty_directories(self, tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_utils_filesystem.py | 83 | def test_mixed_empty_and_non_empty(self, tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_utils_filesystem.py | 102 | def test_deeply_nested_file_marks_parents(self, tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_utils_filesystem.py | 118 | def test_multiple_files_at_various_levels(self, tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_utils_filesystem.py | 142 | def test_directory_with_wheel_file(self, tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_utils_filesystem.py | 152 | def test_directory_with_non_wheel_files(self, tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_utils_filesystem.py | 163 | def test_mixed_wheel_and_non_wheel_dirs(self, tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_utils_filesystem.py | 181 | def test_nested_wheel_marks_parents(self, tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_utils_filesystem.py | 196 | def test_wheel_file_extension_matching(self, tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_utils_filesystem.py | 215 | def test_empty_directory_tree_no_wheels(self, tmp_path: Path) -> None: | CODE |
| LOW⚡ | tests/unit/test_utils.py | 108 | def test_egglink_in_usersite_notvenv(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_utils.py | 117 | def test_egglink_in_usersite_venv_noglobal(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_utils.py | 123 | def test_egglink_in_usersite_venv_global(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_utils.py | 135 | def test_egglink_in_sitepkgs_notvenv(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_utils.py | 144 | def test_egglink_in_sitepkgs_venv_noglobal(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_utils.py | 153 | def test_egglink_in_sitepkgs_venv_global(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_utils.py | 165 | def test_egglink_in_both_notvenv(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_utils.py | 174 | def test_egglink_in_both_venv_noglobal(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_utils.py | 183 | def test_egglink_in_both_venv_global(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_utils.py | 195 | def test_noegglink_in_sitepkgs_notvenv(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_utils.py | 201 | def test_noegglink_in_sitepkgs_venv_noglobal(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_utils.py | 207 | def test_noegglink_in_sitepkgs_venv_global(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_utils.py | 214 | def test_rmtree_errorhandler_nonexistent_directory(tmpdir: Path) -> None: | CODE |
| LOW⚡ | tests/unit/test_utils.py | 517 | def test_glibc_version_string_confstr_fail( | CODE |
| 1616 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/protected_pip.py | 1 | CODE | |
| LOW | tools/release/__init__.py | 6 | CODE | |
| LOW | tools/release/check_version.py | 3 | CODE | |
| LOW | tests/conftest.py | 1 | CODE | |
| LOW | tests/unit/test_utils_subprocess.py | 1 | CODE | |
| LOW | tests/unit/test_network_session.py | 1 | CODE | |
| LOW | tests/unit/test_target_python.py | 1 | CODE | |
| LOW | tests/unit/test_utils.py | 6 | CODE | |
| LOW | tests/unit/test_packaging.py | 1 | CODE | |
| LOW | tests/unit/test_options.py | 1 | CODE | |
| LOW | tests/unit/test_link.py | 1 | CODE | |
| LOW | tests/unit/test_network_download.py | 1 | CODE | |
| LOW | tests/unit/test_req_uninstall.py | 1 | CODE | |
| LOW | tests/unit/test_command_debug.py | 1 | CODE | |
| LOW | tests/unit/test_exceptions.py | 3 | CODE | |
| LOW | tests/unit/test_utils_datetime.py | 1 | CODE | |
| LOW | tests/unit/test_utils_pylock.py | 1 | CODE | |
| LOW | tests/unit/test_base_command.py | 1 | CODE | |
| LOW | tests/unit/test_utils_unpacking.py | 1 | CODE | |
| LOW | tests/unit/test_wheel.py | 3 | CODE | |
| LOW | tests/unit/test_req.py | 1 | CODE | |
| LOW | tests/unit/test_resolution_legacy_resolver.py | 1 | CODE | |
| LOW | tests/unit/test_release_control.py | 1 | CODE | |
| LOW | tests/unit/test_cmdoptions.py | 1 | CODE | |
| LOW | tests/unit/test_req_file.py | 1 | CODE | |
| LOW | tests/unit/test_cli_spinners.py | 1 | CODE | |
| LOW | tests/unit/test_utils_virtualenv.py | 1 | CODE | |
| LOW | tests/unit/test_index.py | 1 | CODE | |
| LOW | tests/unit/test_self_check_outdated.py | 1 | CODE | |
| LOW | tests/unit/test_utils_temp_dir.py | 1 | CODE | |
| LOW | tests/unit/test_build_constraints.py | 3 | CODE | |
| LOW | tests/unit/test_command_show.py | 1 | CODE | |
| LOW | tests/unit/test_collector.py | 1 | CODE | |
| LOW | tests/unit/test_network_auth.py | 1 | CODE | |
| LOW | tests/unit/test_vcs.py | 1 | CODE | |
| LOW | tests/unit/test_wheel_builder.py | 1 | CODE | |
| LOW | tests/unit/resolution_resolvelib/test_provider.py | 1 | CODE | |
| LOW | tests/unit/resolution_resolvelib/test_resolver.py | 1 | CODE | |
| LOW | tests/lib/server.py | 17 | CODE | |
| LOW | tests/lib/server.py | 17 | CODE | |
| LOW | tests/lib/server.py | 17 | CODE | |
| LOW | tests/lib/index.py | 1 | CODE | |
| LOW | tests/lib/filesystem.py | 3 | CODE | |
| LOW | tests/lib/__init__.py | 1 | CODE | |
| LOW | tests/lib/venv.py | 1 | CODE | |
| LOW | tests/lib/requests_mocks.py | 3 | CODE | |
| LOW | tests/lib/wheel.py | 3 | CODE | |
| LOW | …ts/data/packages/pep517_wrapper_buildsys/mybuildsys.py | 3 | CODE | |
| LOW | …ts/data/packages/pep517_wrapper_buildsys/mybuildsys.py | 5 | CODE | |
| LOW | …ts/data/packages/pep517_wrapper_buildsys/mybuildsys.py | 5 | CODE | |
| LOW | …ts/data/packages/pep517_wrapper_buildsys/mybuildsys.py | 5 | CODE | |
| LOW | …ts/data/src/pep518_with_namespace_package-1.0/setup.py | 3 | CODE | |
| LOW | tests/data/src/requires_simple/setup.py | 1 | CODE | |
| LOW | …ts/data/src/pep518_with_extra_and_markers-1.0/setup.py | 5 | CODE | |
| LOW | tests/data/src/pep518-3.0/setup.py | 4 | CODE | |
| LOW | tests/data/src/chattymodule/backend.py | 1 | CODE | |
| LOW | tests/data/src/chattymodule/backend.py | 5 | CODE | |
| LOW | tests/functional/test_config_settings.py | 1 | CODE | |
| LOW | tests/functional/test_install_upgrade.py | 8 | CODE | |
| LOW | tests/functional/test_configuration.py | 3 | CODE | |
| 608 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 119 | CODE | |
| LOW | tests/conftest.py | 663 | CODE | |
| LOW | tests/conftest.py | 952 | CODE | |
| LOW | tests/unit/test_network_download.py | 341 | CODE | |
| LOW | tests/lib/__init__.py | 950 | CODE | |
| LOW | tests/functional/test_lock.py | 233 | CODE | |
| LOW | tests/functional/test_lock.py | 257 | CODE | |
| LOW | src/pip/_internal/exceptions.py | 345 | CODE | |
| LOW | src/pip/_internal/wheel_builder.py | 207 | CODE | |
| LOW | src/pip/_internal/network/auth.py | 166 | CODE | |
| LOW | src/pip/_internal/network/download.py | 63 | CODE | |
| LOW | src/pip/_internal/network/download.py | 241 | CODE | |
| LOW | src/pip/_internal/network/session.py | 112 | CODE | |
| LOW | src/pip/_internal/utils/logging.py | 278 | CODE | |
| LOW | src/pip/_internal/utils/logging.py | 206 | CODE | |
| LOW | src/pip/_internal/utils/pylock.py | 32 | CODE | |
| LOW | src/pip/_internal/utils/pylock.py | 147 | CODE | |
| LOW | src/pip/_internal/utils/subprocess.py | 59 | CODE | |
| LOW | src/pip/_internal/utils/filesystem.py | 19 | CODE | |
| LOW | src/pip/_internal/utils/compatibility_tags.py | 99 | CODE | |
| LOW | src/pip/_internal/utils/unpacking.py | 64 | CODE | |
| LOW | src/pip/_internal/utils/unpacking.py | 118 | CODE | |
| LOW | src/pip/_internal/utils/unpacking.py | 164 | CODE | |
| LOW | src/pip/_internal/utils/unpacking.py | 274 | CODE | |
| LOW | src/pip/_internal/models/release_control.py | 74 | CODE | |
| LOW | src/pip/_internal/models/format_control.py | 61 | CODE | |
| LOW | src/pip/_internal/cli/parser.py | 257 | CODE | |
| LOW | src/pip/_internal/cli/autocompletion.py | 16 | CODE | |
| LOW | src/pip/_internal/cli/autocompletion.py | 135 | CODE | |
| LOW | src/pip/_internal/cli/main_parser.py | 51 | CODE | |
| LOW | src/pip/_internal/operations/check.py | 60 | CODE | |
| LOW | src/pip/_internal/operations/freeze.py | 30 | CODE | |
| LOW | src/pip/_internal/operations/prepare.py | 616 | CODE | |
| LOW | src/pip/_internal/operations/install/wheel.py | 435 | CODE | |
| LOW | src/pip/_internal/req/req_install.py | 417 | CODE | |
| LOW | src/pip/_internal/req/req_install.py | 713 | CODE | |
| LOW | src/pip/_internal/req/req_uninstall.py | 149 | CODE | |
| LOW | src/pip/_internal/req/req_uninstall.py | 279 | CODE | |
| LOW | src/pip/_internal/req/req_uninstall.py | 432 | CODE | |
| LOW | src/pip/_internal/req/__init__.py | 38 | CODE | |
| LOW | src/pip/_internal/req/req_file.py | 347 | CODE | |
| LOW | src/pip/_internal/req/constructors.py | 590 | CODE | |
| LOW | src/pip/_internal/resolution/resolvelib/provider.py | 120 | CODE | |
| LOW | src/pip/_internal/resolution/resolvelib/factory.py | 448 | CODE | |
| LOW | src/pip/_internal/resolution/resolvelib/factory.py | 525 | CODE | |
| LOW | src/pip/_internal/resolution/resolvelib/resolver.py | 76 | CODE | |
| LOW | src/pip/_internal/vcs/bazaar.py | 100 | CODE | |
| LOW | src/pip/_internal/commands/configuration.py | 202 | CODE | |
| LOW | src/pip/_internal/commands/configuration.py | 218 | CODE | |
| LOW | src/pip/_internal/commands/show.py | 85 | CODE | |
| LOW | src/pip/_internal/commands/show.py | 181 | CODE | |
| LOW | src/pip/_internal/commands/list.py | 284 | CODE | |
| LOW | src/pip/_internal/commands/search.py | 116 | CODE | |
| LOW | src/pip/_internal/commands/install.py | 370 | CODE | |
| LOW | src/pip/_internal/commands/install.py | 605 | CODE | |
| LOW | src/pip/_internal/metadata/_json.py | 44 | CODE | |
| LOW | src/pip/_internal/metadata/_json.py | 47 | CODE | |
| LOW | src/pip/_internal/metadata/base.py | 546 | CODE | |
| LOW | src/pip/_internal/metadata/importlib/_dists.py | 224 | CODE | |
| LOW | src/pip/_vendor/packaging/tags.py | 325 | CODE | |
| 155 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .readthedocs-custom-redirects.yml | 1 | # This file is read by tools/update-rtd-redirects.py. | COMMENT |
| MEDIUM | tools/release/__init__.py | 89 | # Create a unique list. | COMMENT |
| MEDIUM | tests/conftest.py | 290 | # Create a directory to use as our home location. | COMMENT |
| MEDIUM | tests/conftest.py | 294 | # Create a directory to use as a fake root | COMMENT |
| MEDIUM | tests/conftest.py | 545 | # Create the virtual environment | COMMENT |
| MEDIUM | tests/unit/test_utils.py | 371 | with open(f, "w"): # Create the file | CODE |
| MEDIUM | tests/unit/test_req_uninstall.py | 84 | # Create the required files | COMMENT |
| MEDIUM | tests/unit/test_index.py | 509 | # Create a link with upload time clearly after the cutoff | COMMENT |
| MEDIUM | tests/unit/test_index.py | 911 | # Create a test TargetPython that we can check for. | COMMENT |
| MEDIUM⚡ | tests/unit/resolution_resolvelib/test_requirement.py | 19 | # Create a requirement from a project name - "pip" | COMMENT |
| MEDIUM⚡ | tests/unit/resolution_resolvelib/test_requirement.py | 20 | # Create a requirement from a name + version constraint - "pip >= 20.0" | COMMENT |
| MEDIUM⚡ | tests/unit/resolution_resolvelib/test_requirement.py | 21 | # Create a requirement from a wheel filename | COMMENT |
| MEDIUM⚡ | tests/unit/resolution_resolvelib/test_requirement.py | 22 | # Create a requirement from a sdist filename | COMMENT |
| MEDIUM⚡ | tests/unit/resolution_resolvelib/test_requirement.py | 23 | # Create a requirement from a local directory (which has no obvious name!) | COMMENT |
| MEDIUM | tests/lib/__init__.py | 523 | # Create a Directory to use as a scratch pad | STRING |
| MEDIUM | tests/lib/venv.py | 68 | # Create a new virtual environment. | COMMENT |
| MEDIUM | tests/lib/configuration_helpers.py | 46 | # Create a temporary file | COMMENT |
| MEDIUM | …ts/data/packages/pep517_wrapper_buildsys/mybuildsys.py | 16 | # Create the marker file to record that the hook was called | COMMENT |
| MEDIUM⚡ | tests/functional/test_list.py | 773 | # Create a test package and create .egg-info dir | COMMENT |
| MEDIUM⚡ | tests/functional/test_list.py | 789 | # Create a test package and create .egg-info dir | COMMENT |
| MEDIUM⚡ | tests/functional/test_show.py | 372 | # Create a test package and create .egg-info dir | STRING |
| MEDIUM⚡ | tests/functional/test_show.py | 387 | # Create a test package and create .egg-info dir | STRING |
| MEDIUM | tests/functional/test_show.py | 406 | # Create a test package and create .egg-info dir | STRING |
| MEDIUM⚡ | tests/functional/test_freeze.py | 878 | # Create a test package and create .egg-info dir | COMMENT |
| MEDIUM⚡ | tests/functional/test_freeze.py | 893 | # Create a test package and create .egg-info dir | COMMENT |
| MEDIUM | tests/functional/test_freeze.py | 330 | # Create a new commit to ensure that the commit has only one branch | STRING |
| MEDIUM | tests/functional/test_install_vcs_git.py | 459 | # Create a second branch with the same SHA. | COMMENT |
| MEDIUM | tests/functional/test_install_vcs_git.py | 478 | # Create a second branch. | COMMENT |
| MEDIUM | tests/functional/test_check.py | 311 | # Create a test package with dependency missing | COMMENT |
| MEDIUM | tests/functional/test_check.py | 333 | # Create a test package with dependency missing | COMMENT |
| MEDIUM | tests/functional/test_install_user.py | 342 | # Create a custom Python script that disables user site and runs pip via exec | STRING |
| MEDIUM | tests/functional/test_install.py | 776 | # Create a project named pkga that depends on the simple-1.0.tar.gz with a direct | COMMENT |
| MEDIUM | tests/functional/test_install.py | 2475 | # Create a test package, install it and then uninstall it | STRING |
| MEDIUM | tests/functional/test_vcs_git.py | 157 | # Create a tag with the same name as the branch. | COMMENT |
| MEDIUM | docs/pip_sphinxext.py | 285 | # Create a tab for each OS | COMMENT |
| MEDIUM | src/pip/_internal/req/constructors.py | 192 | # Create a steppable iterator, so we can handle \-continuations. | COMMENT |
| MEDIUM | src/pip/_internal/commands/list.py | 242 | # Create a set to remove duplicate packages, and cast it to a list | COMMENT |
| MEDIUM | src/pip/_internal/commands/install.py | 423 | # Create a target directory for using with the target option | COMMENT |
| MEDIUM | src/pip/_vendor/__init__.py | 26 | # Define a small helper function to alias our vendored modules to the real ones | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/tags.py | 1 | # This file is dual licensed under the terms of the Apache License, Version | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/metadata.py | 290 | # This class is for writing RFC822 messages | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/metadata.py | 307 | # This class is for writing RFC822 messages | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/version.py | 1 | # This file is dual licensed under the terms of the Apache License, Version | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/__init__.py | 1 | # This file is dual licensed under the terms of the Apache License, Version | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/utils.py | 1 | # This file is dual licensed under the terms of the Apache License, Version | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/requirements.py | 1 | # This file is dual licensed under the terms of the Apache License, Version | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/_structures.py | 1 | # This file is dual licensed under the terms of the Apache License, Version | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/markers.py | 1 | # This file is dual licensed under the terms of the Apache License, Version | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/specifiers.py | 1 | # This file is dual licensed under the terms of the Apache License, Version | COMMENT |
| MEDIUM | src/pip/_vendor/truststore/_windows.py | 528 | # Create a custom cert chain engine which exclusively trusts | COMMENT |
| MEDIUM | src/pip/_vendor/distlib/util.py | 1603 | # The above classes only come into play if a timeout | STRING |
| MEDIUM | src/pip/_vendor/idna/idnadata.py | 1 | # This file is automatically generated by tools/idna-data | COMMENT |
| MEDIUM | src/pip/_vendor/idna/uts46data.py | 1 | # This file is automatically generated by tools/idna-data | COMMENT |
| MEDIUM | src/pip/_vendor/requests/sessions.py | 622 | # Create the Request. | COMMENT |
| MEDIUM | …pip/_vendor/pyproject_hooks/_in_process/_in_process.py | 27 | # This file is run as a script, and `import wrappers` is not zip-safe, so we | COMMENT |
| MEDIUM | src/pip/_vendor/rich/console.py | 2014 | """This function is called when a `BrokenPipeError` is raised. | STRING |
| MEDIUM | src/pip/_vendor/urllib3/util/url.py | 266 | output = [] # Initialize the variable to use to store output | CODE |
| MEDIUM | src/pip/_vendor/urllib3/util/connection.py | 23 | # This function is copied from socket.py in the Python 2.7 standard | COMMENT |
| MEDIUM | src/pip/_vendor/urllib3/util/connection.py | 104 | """This function is designed to work in the context of | STRING |
| MEDIUM | src/pip/_vendor/urllib3/http2/probe.py | 66 | """This function is for testing purposes only. Gets the current state of the probe cache""" | STRING |
| 2 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/release/__init__.py | 124 | def update_version_file(version: str, filepath: str) -> None: | CODE |
| LOW | tests/unit/test_logging.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/unit/test_network_auth.py | 178 | def set_password(self, system: str, username: str, password: str) -> None: | CODE |
| LOW | tests/lib/server.py | 217 | def set_responses(self, responses: Iterable["WSGIApplication"]) -> None: | STRING |
| LOW | tests/lib/venv.py | 44 | def _update_paths(self) -> None: | CODE |
| LOW | src/pip/_internal/configuration.py | 159 | def set_value(self, key: str, value: Any) -> None: | CODE |
| LOW | src/pip/_internal/cache.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/exceptions.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/wheel_builder.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/self_outdated_check.py | 44 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/build_env/__init__.py | 16 | __all__ = [ | CODE |
| LOW | src/pip/_internal/build_env/installer.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/network/auth.py | 150 | def _set_password(self, service_name: str, username: str, password: str) -> None: | CODE |
| LOW | src/pip/_internal/network/xmlrpc.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/network/download.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/network/session.py | 60 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/network/session.py | 423 | def update_index_urls(self, new_index_urls: list[str]) -> None: | CODE |
| LOW | src/pip/_internal/network/cache.py | 121 | def set_body(self, key: str, body: bytes) -> None: | CODE |
| LOW | src/pip/_internal/network/cache.py | 125 | def set_body_from_io(self, key: str, body_file: BinaryIO) -> None: | CODE |
| LOW | src/pip/_internal/network/lazy_wheel.py | 5 | __all__ = ["HTTPRangeRequestUnsupported", "dist_from_wheel_url"] | CODE |
| LOW | src/pip/_internal/utils/misc.py | 41 | __all__ = [ | CODE |
| LOW | src/pip/_internal/utils/misc.py | 58 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/utils/egg_link.py | 13 | __all__ = [ | CODE |
| LOW | src/pip/_internal/utils/compat.py | 11 | __all__ = ["get_locale_encoding", "get_path_uid", "tomllib", "WINDOWS"] | CODE |
| LOW | src/pip/_internal/utils/compat.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/utils/temp_dir.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/utils/temp_dir.py | 53 | def set_delete(self, kind: str, value: bool) -> None: | CODE |
| LOW | src/pip/_internal/utils/packaging.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/utils/virtualenv.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/utils/wheel.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/utils/unpacking.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | src/pip/_internal/utils/unpacking.py | 103 | def set_extracted_file_to_default_mode_plus_executable(path: str) -> None: | CODE |
| LOW | src/pip/_internal/models/link.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/models/direct_url.py | 18 | __all__ = [ | CODE |
| LOW | src/pip/_internal/models/search_scope.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/cli/cmdoptions.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/cli/index_command.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/cli/parser.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/cli/spinners.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/cli/base_command.py | 43 | __all__ = ["Command"] | CODE |
| LOW | src/pip/_internal/cli/base_command.py | 45 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/cli/main_parser.py | 17 | __all__ = ["create_main_parser", "parse_command"] | CODE |
| LOW | src/pip/_internal/cli/main.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/cli/req_command.py | 63 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/operations/check.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/operations/freeze.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/operations/install/wheel.py | 65 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/req/req_install.py | 58 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/req/req_install.py | 377 | def _set_requirement(self) -> None: | CODE |
| LOW | src/pip/_internal/req/req_install.py | 572 | def set_dist(self, distribution: BaseDistribution) -> None: | CODE |
| LOW | src/pip/_internal/req/req_install.py | 653 | def update_editable(self) -> None: | CODE |
| LOW | src/pip/_internal/req/req_set.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/req/__init__.py | 15 | __all__ = [ | CODE |
| LOW | src/pip/_internal/req/__init__.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/req/req_file.py | 34 | __all__ = ["parse_requirements"] | CODE |
| LOW | src/pip/_internal/req/req_file.py | 100 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/req/constructors.py | 45 | __all__ = [ | CODE |
| LOW | src/pip/_internal/req/constructors.py | 51 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/resolution/legacy/resolver.py | 52 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/pip/_internal/resolution/legacy/resolver.py | 317 | def _set_req_to_reinstall(self, req: InstallRequirement) -> None: | CODE |
| 109 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/data/packages/LocalExtras/setup.py | 0 | convert a path to uri. the path will be made absolute and will not have quoted path parts. | STRING |
| HIGH | tests/data/packages/LocalEnvironMarker/setup.py | 0 | convert a path to uri. the path will be made absolute and will not have quoted path parts. | STRING |
| HIGH | tests/data/packages/LocalExtras-0.0.2/setup.py | 0 | convert a path to uri. the path will be made absolute and will not have quoted path parts. | STRING |
| HIGH | tests/functional/test_list.py | 0 | test that check should include package in working directory if working directory is added in pythonpath | STRING |
| HIGH | tests/functional/test_show.py | 0 | test that check should include package in working directory if working directory is added in pythonpath | STRING |
| HIGH | tests/functional/test_freeze.py | 0 | test that check should include package in working directory if working directory is added in pythonpath | STRING |
| HIGH | tests/functional/test_check.py | 0 | test that check should include package in working directory if working directory is added in pythonpath | STRING |
| HIGH | src/pip/_internal/vcs/git.py | 0 | return the path to python project root, relative to the repo root. return none if the project root is in the repo root. | STRING |
| HIGH | src/pip/_internal/vcs/mercurial.py | 0 | return the path to python project root, relative to the repo root. return none if the project root is in the repo root. | STRING |
| HIGH | src/pip/_internal/vcs/versioncontrol.py | 0 | return the path to python project root, relative to the repo root. return none if the project root is in the repo root. | STRING |
| HIGH | src/pip/_internal/commands/download.py | 0 | %prog [options] <requirement specifier> ... %prog [options] -r <requirements file> ... %prog [options] [-e] <vcs project | STRING |
| HIGH | src/pip/_internal/commands/lock.py | 0 | %prog [options] <requirement specifier> ... %prog [options] -r <requirements file> ... %prog [options] [-e] <vcs project | STRING |
| HIGH | src/pip/_internal/commands/install.py | 0 | %prog [options] <requirement specifier> ... %prog [options] -r <requirements file> ... %prog [options] [-e] <vcs project | STRING |
| HIGH | src/pip/_internal/commands/wheel.py | 0 | %prog [options] <requirement specifier> ... %prog [options] -r <requirements file> ... %prog [options] [-e] <vcs project | STRING |
| HIGH | src/pip/_vendor/rich/live.py | 0 | iter_values = iter(values) try: previous_value = next(iter_values) except stopiteration: return for value in iter_values | STRING |
| HIGH | src/pip/_vendor/rich/progress.py | 0 | iter_values = iter(values) try: previous_value = next(iter_values) except stopiteration: return for value in iter_values | STRING |
| HIGH | src/pip/_vendor/rich/__main__.py | 0 | iter_values = iter(values) try: previous_value = next(iter_values) except stopiteration: return for value in iter_values | STRING |
| HIGH | src/pip/_vendor/platformdirs/macos.py | 0 | :returns: state directory tied to the user, same as `user_data_dir` | STRING |
| HIGH | src/pip/_vendor/platformdirs/android.py | 0 | :returns: state directory tied to the user, same as `user_data_dir` | STRING |
| HIGH | src/pip/_vendor/platformdirs/windows.py | 0 | :returns: state directory tied to the user, same as `user_data_dir` | STRING |
| HIGH | src/pip/_vendor/platformdirs/macos.py | 0 | :returns: runtime directory shared by users, same as `user_runtime_dir` | STRING |
| HIGH | src/pip/_vendor/platformdirs/android.py | 0 | :returns: runtime directory shared by users, same as `user_runtime_dir` | STRING |
| HIGH | src/pip/_vendor/platformdirs/windows.py | 0 | :returns: runtime directory shared by users, same as `user_runtime_dir` | STRING |
| HIGH | src/pip/_vendor/platformdirs/macos.py | 0 | :yield: all user and site configuration directories. | STRING |
| HIGH | src/pip/_vendor/platformdirs/unix.py | 0 | :yield: all user and site configuration directories. | STRING |
| HIGH | src/pip/_vendor/platformdirs/api.py | 0 | :yield: all user and site configuration directories. | STRING |
| HIGH | src/pip/_vendor/platformdirs/unix.py | 0 | :returns: preference directory tied to the user, same as ``user_config_dir`` | STRING |
| HIGH | src/pip/_vendor/platformdirs/android.py | 0 | :returns: preference directory tied to the user, same as ``user_config_dir`` | STRING |
| HIGH | src/pip/_vendor/platformdirs/windows.py | 0 | :returns: preference directory tied to the user, same as ``user_config_dir`` | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/test_utils_subprocess.py | 364 | except Exception as exc: | CODE |
| LOW | src/pip/_internal/cache.py | 203 | except Exception as e: | CODE |
| LOW | src/pip/_internal/cache.py | 275 | except Exception as e: | CODE |
| LOW | src/pip/_internal/wheel_builder.py | 198 | except Exception as e: | CODE |
| LOW | src/pip/_internal/build_env/installer.py | 246 | except Exception as exc: | CODE |
| LOW | src/pip/_internal/network/auth.py | 179 | except Exception as exc: | CODE |
| LOW | src/pip/_internal/network/auth.py | 276 | except Exception as exc: | CODE |
| LOW | src/pip/_internal/network/auth.py | 569 | except Exception: | CODE |
| LOW | src/pip/_internal/network/session.py | 188 | except Exception: | CODE |
| LOW | src/pip/_internal/utils/logging.py | 231 | except Exception: | CODE |
| LOW⚡ | src/pip/_internal/utils/pylock.py | 280 | except Exception as exc: | CODE |
| LOW⚡ | src/pip/_internal/utils/pylock.py | 287 | except Exception as exc: | CODE |
| LOW⚡ | src/pip/_internal/utils/pylock.py | 294 | except Exception as exc: | CODE |
| LOW | src/pip/_internal/utils/subprocess.py | 140 | except Exception as exc: | CODE |
| LOW | src/pip/_internal/utils/retry.py | 39 | except Exception: | CODE |
| LOW | src/pip/_internal/utils/unpacking.py | 325 | except Exception as exc: | CODE |
| LOW | src/pip/_internal/cli/index_command.py | 205 | except Exception: | CODE |
| LOW | src/pip/_internal/cli/index_command.py | 214 | except Exception: | CODE |
| MEDIUM | src/pip/_internal/cli/parser.py | 223 | print(f"An error occurred during configuration: {exc}") | CODE |
| LOW | src/pip/_internal/cli/spinners.py | 148 | except Exception: | CODE |
| LOW | src/pip/_internal/cli/spinners.py | 208 | except Exception: | CODE |
| LOW | src/pip/_internal/req/__init__.py | 94 | except Exception: | CODE |
| LOW | src/pip/_internal/req/pep723.py | 34 | except Exception as exc: | CODE |
| LOW | src/pip/_internal/index/package_finder.py | 917 | except Exception: | CODE |
| LOW | src/pip/_internal/commands/configuration.py | 275 | except Exception: | CODE |
| LOW | src/pip/_internal/commands/install.py | 664 | except Exception: | CODE |
| LOW | src/pip/_vendor/packaging/direct_url.py | 74 | except Exception as e: | CODE |
| LOW | src/pip/_vendor/packaging/pylock.py | 155 | except Exception as e: | CODE |
| LOW | src/pip/_vendor/packaging/pylock.py | 186 | except Exception as e: | CODE |
| LOW | src/pip/_vendor/packaging/pylock.py | 199 | except Exception as e: | CODE |
| LOW⚡ | src/pip/_vendor/packaging/pylock.py | 214 | except Exception as e: | CODE |
| LOW | src/pip/_vendor/packaging/pylock.py | 600 | except Exception as e: | CODE |
| LOW | src/pip/_vendor/packaging/pylock.py | 620 | except Exception as e: | CODE |
| LOW | src/pip/_vendor/packaging/pylock.py | 642 | except Exception as e: | CODE |
| LOW | src/pip/_vendor/truststore/_api.py | 131 | except Exception: | CODE |
| LOW | src/pip/_vendor/pygments/util.py | 127 | except Exception: | STRING |
| MEDIUM | src/pip/_vendor/pygments/util.py | 124 | def text_analyse(text): | CODE |
| LOW | src/pip/_vendor/pygments/lexer.py | 584 | except Exception as err: | CODE |
| LOW | src/pip/_vendor/pygments/lexers/__init__.py | 165 | except Exception as err: | CODE |
| LOW | src/pip/_vendor/pygments/formatters/__init__.py | 114 | except Exception as err: | CODE |
| LOW | src/pip/_vendor/distlib/util.py | 365 | except Exception: | CODE |
| LOW | src/pip/_vendor/distlib/util.py | 946 | except Exception as e: | STRING |
| LOW | src/pip/_vendor/distlib/util.py | 1006 | except Exception: | STRING |
| LOW | src/pip/_vendor/distlib/util.py | 1073 | except Exception: | STRING |
| LOW | src/pip/_vendor/distlib/util.py | 1177 | except Exception: | STRING |
| LOW | src/pip/_vendor/distlib/scripts.py | 292 | except Exception: | CODE |
| LOW | src/pip/_vendor/distlib/scripts.py | 305 | except Exception: | CODE |
| LOW | src/pip/_vendor/rich/logging.py | 179 | except Exception: | CODE |
| LOW⚡ | src/pip/_vendor/rich/console.py | 87 | except Exception: | CODE |
| LOW⚡ | src/pip/_vendor/rich/console.py | 91 | except Exception: | CODE |
| LOW⚡ | src/pip/_vendor/rich/console.py | 95 | except Exception: | CODE |
| LOW | src/pip/_vendor/rich/_fileno.py | 19 | except Exception: | CODE |
| LOW | src/pip/_vendor/rich/traceback.py | 207 | except Exception: | CODE |
| LOW | src/pip/_vendor/rich/traceback.py | 458 | except Exception: | CODE |
| LOW | src/pip/_vendor/rich/traceback.py | 833 | except Exception as error: | CODE |
| LOW | src/pip/_vendor/rich/markup.py | 195 | except Exception as error: | CODE |
| LOW | src/pip/_vendor/rich/repr.py | 83 | except Exception as error: | CODE |
| LOW | src/pip/_vendor/rich/pretty.py | 86 | except Exception: # pragma: no coverage | CODE |
| LOW | src/pip/_vendor/rich/pretty.py | 167 | except Exception: | CODE |
| LOW | src/pip/_vendor/rich/pretty.py | 574 | except Exception: | CODE |
| 19 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | noxfile.py | 115 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | noxfile.py | 117 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | noxfile.py | 368 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | noxfile.py | 370 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/update-rtd-redirects.py | 34 | # -------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/update-rtd-redirects.py | 36 | # -------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/update-rtd-redirects.py | 54 | # -------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/update-rtd-redirects.py | 56 | # -------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/lib/__init__.py | 482 | # --------------------------- | STRING |
| MEDIUM | tests/lib/__init__.py | 1387 | # ------------------------------------------------------------------------- | STRING |
| MEDIUM | tests/lib/__init__.py | 1389 | # ------------------------------------------------------------------------- | STRING |
| MEDIUM | src/pip/_vendor/packaging/dependency_groups.py | 23 | # ----------- | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/dependency_groups.py | 25 | # ----------- | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/dependency_groups.py | 64 | # ------------------------ | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/dependency_groups.py | 66 | # ------------------------ | COMMENT |
| MEDIUM⚡ | src/pip/_vendor/packaging/dependency_groups.py | 250 | # -------------------- | COMMENT |
| MEDIUM⚡ | src/pip/_vendor/packaging/dependency_groups.py | 252 | # -------------------- | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/dependency_groups.py | 269 | # ---------------- | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/dependency_groups.py | 271 | # ---------------- | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/_parser.py | 95 | # -------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/_parser.py | 97 | # -------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/_parser.py | 289 | # -------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/pip/_vendor/packaging/_parser.py | 291 | # -------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/pip/_vendor/pygments/lexer.py | 325 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | src/pip/_vendor/requests/compat.py | 30 | # ------------------- | COMMENT |
| MEDIUM | src/pip/_vendor/requests/compat.py | 32 | # ------------------- | COMMENT |
| MEDIUM | src/pip/_vendor/requests/compat.py | 68 | # -------------- | COMMENT |
| MEDIUM | src/pip/_vendor/requests/compat.py | 70 | # -------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/lib/wheel.py | 289 | CODE | |
| LOW | src/pip/_internal/utils/subprocess.py | 59 | CODE | |
| LOW | src/pip/_internal/models/link.py | 227 | CODE | |
| LOW | src/pip/_internal/req/req_install.py | 68 | CODE | |
| LOW | src/pip/_internal/vcs/versioncontrol.py | 615 | CODE | |
| LOW | src/pip/_vendor/packaging/pylock.py | 535 | CODE | |
| LOW | src/pip/_vendor/msgpack/fallback.py | 226 | CODE | |
| LOW | src/pip/_vendor/msgpack/fallback.py | 653 | CODE | |
| LOW | src/pip/_vendor/distlib/util.py | 958 | CODE | |
| LOW | src/pip/_vendor/requests/sessions.py | 557 | CODE | |
| LOW | src/pip/_vendor/requests/models.py | 321 | CODE | |
| LOW | src/pip/_vendor/requests/models.py | 422 | CODE | |
| LOW | src/pip/_vendor/rich/logging.py | 65 | CODE | |
| LOW | src/pip/_vendor/rich/console.py | 163 | CODE | |
| LOW | src/pip/_vendor/rich/console.py | 625 | CODE | |
| LOW | src/pip/_vendor/rich/console.py | 1648 | CODE | |
| LOW | src/pip/_vendor/rich/console.py | 1747 | CODE | |
| LOW | src/pip/_vendor/rich/console.py | 1932 | CODE | |
| LOW | src/pip/_vendor/rich/style.py | 127 | CODE | |
| LOW | src/pip/_vendor/rich/traceback.py | 83 | CODE | |
| LOW | src/pip/_vendor/rich/traceback.py | 286 | CODE | |
| LOW | src/pip/_vendor/rich/traceback.py | 340 | CODE | |
| LOW | src/pip/_vendor/rich/__init__.py | 77 | CODE | |
| LOW | src/pip/_vendor/rich/__init__.py | 120 | CODE | |
| LOW | src/pip/_vendor/rich/pretty.py | 113 | CODE | |
| LOW | src/pip/_vendor/rich/pretty.py | 171 | CODE | |
| LOW | src/pip/_vendor/rich/pretty.py | 273 | CODE | |
| LOW | src/pip/_vendor/rich/columns.py | 31 | CODE | |
| LOW | src/pip/_vendor/rich/_inspect.py | 37 | CODE | |
| LOW | src/pip/_vendor/rich/text.py | 144 | CODE | |
| LOW | src/pip/_vendor/rich/text.py | 329 | CODE | |
| LOW | src/pip/_vendor/rich/live.py | 57 | CODE | |
| LOW | src/pip/_vendor/rich/syntax.py | 276 | CODE | |
| LOW | src/pip/_vendor/rich/syntax.py | 317 | CODE | |
| LOW | src/pip/_vendor/rich/table.py | 189 | CODE | |
| LOW | src/pip/_vendor/rich/table.py | 365 | CODE | |
| LOW | src/pip/_vendor/rich/progress_bar.py | 33 | CODE | |
| LOW | src/pip/_vendor/rich/prompt.py | 80 | CODE | |
| LOW | src/pip/_vendor/rich/prompt.py | 97 | CODE | |
| LOW | src/pip/_vendor/rich/prompt.py | 112 | CODE | |
| LOW | src/pip/_vendor/rich/progress.py | 104 | CODE | |
| LOW | src/pip/_vendor/rich/progress.py | 306 | CODE | |
| LOW | src/pip/_vendor/rich/progress.py | 372 | CODE | |
| LOW | src/pip/_vendor/rich/progress.py | 397 | CODE | |
| LOW | src/pip/_vendor/rich/progress.py | 421 | CODE | |
| LOW | src/pip/_vendor/rich/progress.py | 714 | CODE | |
| LOW | src/pip/_vendor/rich/progress.py | 1077 | CODE | |
| LOW | src/pip/_vendor/rich/progress.py | 1310 | CODE | |
| LOW | src/pip/_vendor/rich/panel.py | 40 | CODE | |
| LOW | src/pip/_vendor/rich/panel.py | 74 | CODE | |
| LOW | src/pip/_vendor/rich/json.py | 25 | CODE | |
| LOW | src/pip/_vendor/rich/json.py | 54 | CODE | |
| LOW | src/pip/_vendor/urllib3/fields.py | 76 | CODE | |
| LOW | src/pip/_vendor/urllib3/_base_connection.py | 142 | CODE | |
| LOW | src/pip/_vendor/urllib3/__init__.py | 117 | CODE | |
| LOW | src/pip/_vendor/urllib3/response.py | 716 | CODE | |
| LOW | src/pip/_vendor/urllib3/connection.py | 600 | CODE | |
| LOW | src/pip/_vendor/urllib3/connection.py | 621 | CODE | |
| LOW | src/pip/_vendor/urllib3/connection.py | 683 | CODE | |
| LOW | src/pip/_vendor/urllib3/connectionpool.py | 175 | CODE | |
| 10 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/pip/_vendor/distro/distro.py | 676 | The initialization method of this class gathers information from the available data sources, and stores | STRING |
| HIGH | src/pip/_vendor/rich/measure.py | 82 | Get a measurement for a renderable. Args: console (~rich.console.Console): Console instance. | STRING |
| HIGH | src/pip/_vendor/rich/console.py | 829 | Set Live instance. Used by Live context manager (no need to call directly). Args: live (Live): Live | STRING |
| HIGH | src/pip/_vendor/rich/console.py | 1479 | Get a Style instance by its theme name or parse a definition. Args: name (str): The name of a style | STRING |
| HIGH | src/pip/_vendor/rich/console.py | 1902 | Get caller frame information. Args: offset (int): the caller offset within the current frame stack. | STRING |
| HIGH | src/pip/_vendor/rich/style.py | 495 | Parse a style definition. Args: style_definition (str): A string containing a style. Raise | STRING |
| HIGH | src/pip/_vendor/rich/markup.py | 112 | Render console markup in to a Text instance. Args: markup (str): A string containing console markup. | STRING |
| HIGH | src/pip/_vendor/rich/highlighter.py | 21 | Highlight a str or Text instance. Args: text (Union[str, ~Text]): Text to highlight. Raise | STRING |
| HIGH | src/pip/_vendor/rich/progress_bar.py | 129 | Renders the pulse animation. Args: console (Console): Console instance. width (int): Wi | STRING |
| HIGH | src/pip/_vendor/rich/prompt.py | 228 | Process response from user, convert to prompt type. Args: value (str): String typed by user. | STRING |
| HIGH | src/pip/_vendor/rich/progress.py | 1244 | Track progress file reading from a binary file. Args: file (BinaryIO): A file-like object opened in | STRING |
| HIGH | src/pip/_vendor/rich/progress.py | 1323 | Track progress while reading from a binary file. Args: path (Union[str, PathLike[str]]): The path t | STRING |
| HIGH | src/pip/_vendor/rich/_win32_console.py | 96 | Retrieves the current input mode of a console's input buffer or the current output mode of a console screen buffer. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 361 | # with hostname, pid, and a timestamp. | COMMENT |
| LOW | tests/functional/test_self_update.py | 21 | # in editable mode. This could fail, as we'll need to uninstall the running | COMMENT |
| LOW | .github/ISSUE_TEMPLATE/config.yml | 1 | # Documentation for this file can be found at: | COMMENT |
| LOW | src/pip/_internal/pyproject.py | 101 | package=req_name, | COMMENT |
| LOW | src/pip/_internal/network/session.py | 81 | COMMENT | |
| LOW | src/pip/_internal/network/session.py | 361 | # Accept-Encoding" responses shared across interpreters (pypa/pip#13979). | COMMENT |
| LOW | src/pip/_internal/network/session.py | 381 | # Add a small amount of back off between failed requests in | COMMENT |
| LOW | src/pip/_internal/network/utils.py | 21 | COMMENT | |
| LOW | src/pip/_internal/network/utils.py | 81 | chunk_size, | COMMENT |
| LOW | src/pip/_internal/utils/subprocess.py | 81 | log_failed_cmd: if false, failed commands are not logged, only raised. | COMMENT |
| LOW | src/pip/_internal/utils/packaging.py | 41 | # constructed). This method adds a cache to requirement object creation to | COMMENT |
| LOW | src/pip/_internal/utils/glibc.py | 41 | # manpage says, "If filename is NULL, then the returned handle is for the | COMMENT |
| LOW | src/pip/_internal/utils/glibc.py | 81 | # ('glibc', '2.9') | COMMENT |
| LOW | src/pip/_internal/models/installation_report.py | 21 | # record origin.json. | COMMENT |
| LOW | src/pip/_internal/cli/main.py | 21 | # https://pip.pypa.io/en/stable/user_guide/#using-pip-from-your-program. | COMMENT |
| LOW | src/pip/_internal/operations/prepare.py | 781 | self.build_isolation, | COMMENT |
| LOW | src/pip/_internal/operations/install/wheel.py | 281 | # Currently, projects using versioned entry points will either have | COMMENT |
| LOW | src/pip/_internal/index/collector.py | 141 | # We don't want to blindly returned cached data for | COMMENT |
| LOW | src/pip/_internal/commands/cache.py | 241 | # Additionally, non-alphanumeric values in the distribution are | COMMENT |
| LOW | src/pip/_internal/metadata/pkg_resources.py | 281 | if dist: | COMMENT |
| LOW | src/pip/_vendor/__init__.py | 21 | # is done to support downstream re-distributors like Debian and Fedora who | COMMENT |
| LOW | src/pip/_vendor/packaging/metadata.py | 181 | COMMENT | |
| LOW | src/pip/_vendor/packaging/metadata.py | 201 | # answer with what to do in that case. As such, we'll do the only | COMMENT |
| LOW | src/pip/_vendor/packaging/metadata.py | 241 | # The various parse_FORMAT functions here are intended to be as lenient as | COMMENT |
| LOW | src/pip/_vendor/packaging/metadata.py | 361 | # We use get_all() here, even for fields that aren't multiple use, | COMMENT |
| LOW | src/pip/_vendor/packaging/metadata.py | 381 | COMMENT | |
| LOW | src/pip/_vendor/packaging/metadata.py | 421 | raw_name = _EMAIL_TO_RAW_MAPPING.get(name) | COMMENT |
| LOW | src/pip/_vendor/packaging/metadata.py | 441 | if raw_name in _STRING_FIELDS and len(value) == 1: | COMMENT |
| LOW | src/pip/_vendor/packaging/metadata.py | 461 | # The project urls is implemented in the metadata spec as a list of | COMMENT |
| LOW | src/pip/_vendor/packaging/markers.py | 341 | # packaging.requirements.Requirement. If any additional logic is | COMMENT |
| LOW | src/pip/_vendor/packaging/licenses/__init__.py | 1 | ####################################################################################### | COMMENT |
| LOW | src/pip/_vendor/packaging/licenses/__init__.py | 21 | # INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A | COMMENT |
| LOW | src/pip/_vendor/truststore/_openssl.py | 21 | _HASHED_CERT_FILENAME_RE = re.compile(r"^[0-9a-fA-F]{8}\.[0-9]$") | COMMENT |
| LOW | src/pip/_vendor/pygments/lexer.py | 681 | #: a single state 'root'. The top of the stack is called "the current state". | COMMENT |
| LOW | src/pip/_vendor/distlib/compat.py | 41 | import xmlrpclib | COMMENT |
| LOW | src/pip/_vendor/distlib/util.py | 301 | return result | COMMENT |
| LOW | src/pip/_vendor/distlib/util.py | 1801 | """Normalize a python package name a la PEP 503""" | COMMENT |
| LOW | src/pip/_vendor/distro/distro.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | src/pip/_vendor/distro/distro.py | 81 | #: | COMMENT |
| LOW | src/pip/_vendor/requests/sessions.py | 461 | #: :class:`Request <Request>`. The dictionary values may be lists for | COMMENT |
| LOW | src/pip/_vendor/requests/sessions.py | 481 | #: cert file (.pem). If Tuple, ('cert', 'key') pair. | COMMENT |
| LOW | src/pip/_vendor/tomli/_parser.py | 21 | from collections.abc import Iterable | COMMENT |
| LOW | src/pip/_vendor/certifi/core.py | 21 | def where() -> str: | COMMENT |
| LOW | src/pip/_vendor/certifi/core.py | 61 | # it in a global variable. | COMMENT |
| LOW | src/pip/_vendor/rich/highlighter.py | 161 | # | COMMENT |
| LOW | src/pip/_vendor/rich/highlighter.py | 181 | # Calendar date with hours, minutes, and seconds (e.g., 2008-08-30 17:21:59 or 20080830 172159). | COMMENT |
| LOW | src/pip/_vendor/urllib3/util/wait.py | 1 | from __future__ import annotations | COMMENT |
| LOW | src/pip/_vendor/urllib3/util/response.py | 61 | # we're only interested in the result if it's not a multipart message | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/functional/test_completion.py | 21 | PIP_AUTO_COMPLETE=1 "$1" 2>/dev/null ) ) | STRING |
| HIGH | tests/functional/test_completion.py | 51 | PIP_AUTO_COMPLETE=1 $words[1] 2>/dev/null ) | STRING |
| HIGH | src/pip/_internal/commands/completion.py | 20 | PIP_AUTO_COMPLETE=1 "$1" 2>/dev/null ) ) | CODE |
| HIGH | src/pip/_internal/commands/completion.py | 29 | PIP_AUTO_COMPLETE=1 $words[1] 2>/dev/null ) | CODE |
| HIGH | src/pip/_vendor/distlib/compat.py | 573 | def new_child(self): # like Django's Context.push() | CODE |
| HIGH | src/pip/_vendor/rich/logging.py | 172 | # Handles pythonw, where stdout/stderr are null, and we return NullFile | COMMENT |
| HIGH | src/pip/_vendor/rich/tree.py | 171 | style_stack.push(get_style(node.style)) | CODE |
| HIGH | src/pip/_vendor/rich/tree.py | 172 | guide_style_stack.push(get_style(node.guide_style)) | CODE |
| HIGH | src/pip/_vendor/rich/highlighter.py | 117 | r"\b(?P<bool_true>true)\b|\b(?P<bool_false>false)\b|\b(?P<null>null)\b", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tests/unit/test_network_auth.py | 23 | pip._internal.network.auth.get_keyring_provider.cache_clear() | CODE |
| CRITICAL | src/pip/_internal/cli/req_command.py | 275 | return pip._internal.resolution.resolvelib.resolver.Resolver( | CODE |
| CRITICAL | src/pip/_internal/cli/req_command.py | 290 | return pip._internal.resolution.legacy.resolver.Resolver( | CODE |
| CRITICAL | src/pip/_vendor/pygments/sphinxext.py | 87 | self.state.document.settings.record_dependencies.add(fn) | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | noxfile.py | 444 | "# Check if there's any Git-untracked files before building the wheel", | CODE |
| LOW | src/pip/_internal/network/download.py | 320 | # Check if the adapter is the CacheControlAdapter (i.e. caching is enabled) | COMMENT |
| LOW | src/pip/_internal/utils/filesystem.py | 30 | # Check if path is writable by current user. | COMMENT |
| LOW | src/pip/_internal/operations/check.py | 83 | # Check if it's missing | COMMENT |
| LOW | src/pip/_internal/operations/check.py | 92 | # Check if there's a conflict | COMMENT |
| LOW | src/pip/_internal/operations/prepare.py | 623 | # Check if the relevant file is already available | COMMENT |
| LOW | src/pip/_internal/resolution/resolvelib/factory.py | 758 | # Check if only final releases are allowed for this package | COMMENT |
| LOW | src/pip/_internal/resolution/resolvelib/resolver.py | 133 | # Check if there is already an installation under the same name, | COMMENT |
| LOW | src/pip/_internal/locations/__init__.py | 346 | # Check if this path mismatch is caused by distutils config files. Those | COMMENT |
| LOW | src/pip/_internal/index/package_finder.py | 1013 | # Check if only final releases are allowed for this package | COMMENT |
| LOW | src/pip/_internal/distributions/sdist.py | 66 | # Check if the current environment provides build dependencies | COMMENT |
| LOW | src/pip/_vendor/packaging/metadata.py | 626 | # Check if content-type is valid or defaulted to `text/plain` and thus was | COMMENT |
| LOW | src/pip/_vendor/requests/models.py | 579 | # Check if file, fo, generator, iterator. | COMMENT |
| LOW | src/pip/_vendor/urllib3/connection.py | 736 | # Check if the target origin supports HTTP/2. | COMMENT |
| LOW | src/pip/_vendor/urllib3/connectionpool.py | 941 | # Check if we should retry the HTTP response. | COMMENT |
| LOW | src/pip/_vendor/urllib3/util/request.py | 237 | # Check if the body implements the buffer API. | COMMENT |
| LOW | src/pip/_vendor/urllib3/util/request.py | 241 | # Check if the body is an iterable | COMMENT |
| LOW | src/pip/_vendor/urllib3/util/response.py | 31 | # Check if the object is a container for another file-like object that | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/pip/_internal/network/auth.py | 500 | # We are not able to prompt the user so simply return the response | COMMENT |
| MEDIUM | src/pip/_internal/network/session.py | 87 | # CI traffic to PyPI. Thus, it is okay if the list is not comprehensive. | COMMENT |
| LOW | src/pip/_internal/cli/parser.py | 170 | # If its not a list, we should abort and just return the help text | COMMENT |
| LOW | src/pip/_vendor/packaging/metadata.py | 214 | # is unparsable, and we can just add the whole thing to our | COMMENT |
| LOW | src/pip/_vendor/packaging/metadata.py | 410 | # This is already a string, so just add it. | COMMENT |
| LOW | src/pip/_vendor/packaging/metadata.py | 439 | # what we should parse it as, and we have to just add it to our list | COMMENT |
| LOW | src/pip/_vendor/packaging/specifiers.py | 995 | # version. If it's not we can short circuit and just return False now | COMMENT |
| LOW | src/pip/_vendor/packaging/specifiers.py | 1020 | # version. If it's not we can short circuit and just return False now | COMMENT |
| LOW | src/pip/_vendor/packaging/specifiers.py | 1424 | # then we'll just return None since we don't know if this should have | COMMENT |
| LOW | src/pip/_vendor/distlib/compat.py | 246 | # what file suffixes are executable, so just pass on cmd as-is. | COMMENT |
| MEDIUM | src/pip/_vendor/requests/sessions.py | 757 | # Set defaults that the hooks can utilize to ensure they always have | STRING |
| LOW | src/pip/_vendor/requests/models.py | 723 | # method. To prevent iterating over None, simply use an empty list | COMMENT |
| LOW | src/pip/_vendor/requests/utils.py | 491 | # a UNC path, then just return the value without quotes. Using the | STRING |
| LOW | src/pip/_vendor/certifi/core.py | 70 | # file, it will just return the file system location and the | COMMENT |
| MEDIUM | src/pip/_vendor/urllib3/exceptions.py | 251 | """Response needs to be chunked in order to read it as chunks.""" | STRING |
| LOW | src/pip/_vendor/pkg_resources/__init__.py | 2 | # For now we'd simply use implicit Any/Unknown which would add redundant annotations | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/pip/_vendor/packaging/markers.py | 342 | # added here, make sure to mirror/adapt Requirement. | COMMENT |
| MEDIUM | src/pip/_vendor/distlib/util.py | 1551 | # you can use the following handler class, which does not allow HTTP traffic. | STRING |
| LOW | src/pip/_vendor/urllib3/response.py | 1146 | # TODO make sure to initially read enough data to get past the headers | COMMENT |
| MEDIUM | src/pip/_vendor/urllib3/util/wait.py | 12 | # There are two types of APIs you can use for waiting on sockets: the fancy | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/test_utils.py | 626 | ("user@example.com", ("example.com", ("user", None))), | CODE |
| LOW | tests/unit/test_vcs.py | 352 | (("user@example.com", "https"), ("example.com", ("user", None))), | CODE |
| LOW | src/pip/_internal/req/constructors.py | 73 | return get_requirement("placeholder" + extras.lower()).extras | CODE |
| LOW | src/pip/_internal/req/constructors.py | 135 | get_requirement("placeholder" + extras.lower()).extras, | CODE |
| LOW | src/pip/_vendor/rich/text.py | 1340 | """\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolo | STRING |
| LOW | src/pip/_vendor/rich/text.py | 1340 | """\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolo | STRING |
| LOW | src/pip/_vendor/rich/__main__.py | 71 | lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque in metus sed sapien ultricies pretium a at | CODE |
| LOW | src/pip/_vendor/rich/__main__.py | 71 | lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque in metus sed sapien ultricies pretium a at | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/functional/test_install.py | 206 | # WARNING: The scripts pip, pip3, ... are installed in ... which is not on PATH | COMMENT |
| LOW | src/pip/_internal/utils/unpacking.py | 281 | # NOTE: This function can be removed once pip requires CPython ≥ 3.12. | COMMENT |
| LOW | src/pip/_vendor/cachecontrol/caches/file_cache.py | 59 | # NOTE: This method should not change as some may depend on it. | COMMENT |