A tool for generating .pex (Python EXecutable) files, lock files and venvs.
This report summarizes scanner evidence for pex-tool/pex, a Python project with 4,229 GitHub stars. SynthScan examined 170,570 lines of code across 669 source files, recording 4289 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 25.6 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 1324 finding(s).
Are imports declared and package/API names verified? 2902 finding(s).
Are wrappers, guards, and repeated structures necessary? 1099 finding(s).
Which changes need focused human review? 4289 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 4289 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.py | 4 | CODE | |
| LOW | pex/requirement_key.py | 4 | CODE | |
| LOW | pex/requirement_key.py | 6 | CODE | |
| LOW | pex/requirement_key.py | 7 | CODE | |
| LOW | pex/requirement_key.py | 11 | CODE | |
| LOW | pex/bootstrap.py | 5 | CODE | |
| LOW | pex/bootstrap.py | 5 | CODE | |
| LOW | pex/bootstrap.py | 14 | CODE | |
| LOW | pex/bootstrap.py | 14 | CODE | |
| LOW | pex/pep_508.py | 4 | CODE | |
| LOW | pex/pep_508.py | 7 | CODE | |
| LOW | pex/pep_508.py | 12 | CODE | |
| LOW | pex/pep_508.py | 12 | CODE | |
| LOW | pex/atomic_directory.py | 4 | CODE | |
| LOW | pex/atomic_directory.py | 21 | CODE | |
| LOW | pex/atomic_directory.py | 21 | CODE | |
| LOW | pex/atomic_directory.py | 21 | CODE | |
| LOW | pex/atomic_directory.py | 21 | CODE | |
| LOW | pex/auth.py | 4 | CODE | |
| LOW | pex/auth.py | 15 | CODE | |
| LOW | pex/auth.py | 15 | CODE | |
| LOW | pex/auth.py | 15 | CODE | |
| LOW | pex/auth.py | 15 | CODE | |
| LOW | pex/auth.py | 15 | CODE | |
| LOW | pex/lang.py | 4 | CODE | |
| LOW | pex/lang.py | 9 | CODE | |
| LOW | pex/pth.py | 4 | CODE | |
| LOW | pex/pth.py | 14 | CODE | |
| LOW | pex/compatibility.py | 7 | CODE | |
| LOW | pex/compatibility.py | 20 | CODE | |
| LOW | pex/compatibility.py | 20 | CODE | |
| LOW | pex/compatibility.py | 20 | CODE | |
| LOW | pex/compatibility.py | 20 | CODE | |
| LOW | pex/compatibility.py | 20 | CODE | |
| LOW | pex/compatibility.py | 20 | CODE | |
| LOW | pex/compatibility.py | 20 | CODE | |
| LOW | pex/compatibility.py | 20 | CODE | |
| LOW | pex/compatibility.py | 20 | CODE | |
| LOW | pex/compatibility.py | 20 | CODE | |
| LOW | pex/compatibility.py | 20 | CODE | |
| LOW | pex/compatibility.py | 37 | CODE | |
| LOW | pex/compatibility.py | 52 | CODE | |
| LOW | pex/compatibility.py | 53 | CODE | |
| LOW | pex/compatibility.py | 56 | CODE | |
| LOW | pex/compatibility.py | 57 | CODE | |
| LOW | pex/compatibility.py | 125 | CODE | |
| LOW | pex/compatibility.py | 137 | CODE | |
| LOW | pex/compatibility.py | 147 | CODE | |
| LOW | pex/compatibility.py | 162 | CODE | |
| LOW | pex/compatibility.py | 164 | CODE | |
| LOW | pex/compatibility.py | 212 | CODE | |
| LOW | pex/compatibility.py | 40 | CODE | |
| LOW | pex/compatibility.py | 151 | CODE | |
| LOW | pex/pex_builder.py | 4 | CODE | |
| LOW | pex/pex_builder.py | 4 | CODE | |
| LOW | pex/pex_builder.py | 45 | CODE | |
| LOW | pex/pex_builder.py | 51 | CODE | |
| LOW | pex/pex_builder.py | 51 | CODE | |
| LOW | pex/pex_builder.py | 51 | CODE | |
| LOW | pex/inherit_path.py | 4 | CODE | |
| 2817 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pex/compatibility.py | 190 | def is_valid_python_identifier(text): | STRING |
| LOW | pex/interpreter_constraints.py | 35 | def _iter_interpreter_implementations(): | CODE |
| LOW | pex/targets.py | 454 | def require_at_most_one_target(self, purpose): | CODE |
| LOW | pex/artifact_url.py | 144 | def _guaranteed_available_algorithms(): | STRING |
| LOW⚡ | pex/pex_info.py | 261 | def venv_site_packages_copies(self): | CODE |
| LOW⚡ | pex/pex_info.py | 266 | def venv_site_packages_copies(self, value): | CODE |
| LOW⚡ | pex/pex_info.py | 271 | def venv_system_site_packages(self): | CODE |
| LOW⚡ | pex/pex_info.py | 276 | def venv_system_site_packages(self, value): | CODE |
| LOW | pex/pex_info.py | 403 | def has_interpreter_constraints(self): | CODE |
| LOW | pex/pex_info.py | 436 | def interpreter_selection_strategy(self): | CODE |
| LOW | pex/pex_info.py | 446 | def interpreter_selection_strategy(self, value): | CODE |
| LOW | pex/variables.py | 681 | def _ensure_writeable_pex_root(self, raw_pex_root): | CODE |
| LOW | pex/finders.py | 92 | def get_script_from_distributions( | CODE |
| LOW | pex/finders.py | 117 | def get_entry_point_from_console_script( | CODE |
| LOW | pex/layout.py | 205 | def _ensure_distributions_installed_serial( | CODE |
| LOW | pex/layout.py | 218 | def _ensure_distributions_installed_parallel( | CODE |
| LOW | pex/layout.py | 260 | def _ensure_distributions_installed( | CODE |
| LOW | pex/pep_427.py | 87 | def _headers_install_path_for_wheel( | CODE |
| LOW | pex/pep_427.py | 343 | def external_attr_as_stat_mode(self): | CODE |
| LOW | pex/pep_427.py | 512 | def iter_install_paths_by_name(self): | CODE |
| LOW | pex/pep_427.py | 690 | def install_wheel_interpreter( | CODE |
| LOW | pex/pep_427.py | 1053 | def create_dst_installed_file(regenerate_hash): | CODE |
| LOW | pex/dist_metadata.py | 158 | def render_metadata_file_description(self, metadata_file_rel_path): | CODE |
| LOW | pex/dist_metadata.py | 242 | def _find_installed_metadata_files( | CODE |
| LOW | pex/dist_metadata.py | 327 | def _is_dist_pkg_info_file_path(file_path): | CODE |
| LOW | pex/dist_metadata.py | 529 | def canonicalized_project_name(self): | CODE |
| LOW | pex/dist_metadata.py | 777 | def from_packaging_requirement(cls, requirement): | CODE |
| LOW | pex/dist_metadata.py | 925 | def from_packaging_requirement( | CODE |
| LOW | pex/sh_boot.py | 45 | def _calculate_applicable_binary_names( | CODE |
| LOW | pex/interpreter.py | 163 | def _normalize_macosx_deployment_target(value): | CODE |
| LOW | pex/interpreter.py | 609 | def configured_macosx_deployment_target(self): | CODE |
| LOW | pex/interpreter.py | 808 | def include_system_site_packages(self): | CODE |
| LOW | pex/interpreter.py | 1502 | def iter_base_candidate_binary_paths(interpreter): | CODE |
| LOW | pex/interpreter.py | 860 | def _resolve_pyvenv_canonical_python_binary( | STRING |
| LOW | pex/interpreter.py | 923 | def latest_release_of_min_compatible_version(interps): | STRING |
| LOW | pex/interpreter.py | 1092 | def _spawn_from_binary_external( | STRING |
| LOW | pex/common.py | 281 | def deterministic_external_attr(self): | CODE |
| LOW | pex/requirements.py | 266 | def parse_requirement_from_project_name_and_specifier( | CODE |
| LOW | pex/requirements.py | 285 | def parse_requirement_from_dist( | CODE |
| LOW | pex/requirements.py | 379 | def _strip_requirement_options(line): | CODE |
| LOW | pex/requirements.py | 398 | def _try_parse_fragment_project_name_and_marker(url): | CODE |
| LOW | pex/requirements.py | 423 | def from_project_name_and_version(cls, project_name_and_version): | CODE |
| LOW | pex/requirements.py | 434 | def _try_parse_project_name_and_specifier_from_path(path): | CODE |
| LOW | pex/requirements.py | 444 | def _try_parse_pip_local_formats( | CODE |
| LOW | pex/requirements.py | 850 | def parse_requirement_strings(requirements): | STRING |
| LOW | pex/pex_boot.py | 68 | def __entry_point_from_filename__(filename): | CODE |
| LOW | pex/executables.py | 75 | def create_sh_python_redirector_shebang(sh_script_content): | CODE |
| LOW | pex/resolver.py | 158 | def _uniqued_download_requests(requests=None): | CODE |
| LOW | pex/resolver.py | 601 | def _fingerprint_local_project( | CODE |
| LOW | pex/resolver.py | 1022 | def _iter_resolved_distributions( | CODE |
| LOW | pex/resolver.py | 1053 | def _categorize_build_requests( | CODE |
| LOW | pex/resolver.py | 1315 | def _categorize_install_requests( | CODE |
| LOW | pex/resolver.py | 1342 | def _resolve_direct_file_deps( | CODE |
| LOW | pex/environment.py | 327 | def _update_candidate_distributions(self, distribution_iter): | CODE |
| LOW | pex/environment.py | 725 | def _declare_namespace_packages(cls, resolved_dists): | CODE |
| LOW | pex/ziputils.py | 146 | def start_of_zip_offset_from_eof(self): | CODE |
| LOW | pex/exceptions.py | 47 | def reportable_unexpected_error_msg( | CODE |
| LOW | pex/typing.py | 55 | def _never_called_since_structurally_shadowed(*_args, **_kwargs): | CODE |
| LOW | pex/pex_bootstrapper.py | 98 | def iter_compatible_interpreters( | CODE |
| LOW | pex/pex_bootstrapper.py | 250 | def find_compatible_interpreter( | CODE |
| 947 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pex/pth.py | 17 | CODE | |
| LOW | pex/pex_builder.py | 361 | CODE | |
| LOW | pex/pex_builder.py | 621 | CODE | |
| LOW | pex/pex_builder.py | 727 | CODE | |
| LOW | pex/interpreter_constraints.py | 365 | CODE | |
| LOW | pex/entry_points_txt.py | 23 | CODE | |
| LOW | pex/util.py | 34 | CODE | |
| LOW | pex/variables.py | 834 | CODE | |
| LOW | pex/layout.py | 312 | CODE | |
| LOW | pex/pep_427.py | 745 | CODE | |
| LOW | pex/pep_427.py | 848 | CODE | |
| LOW | pex/pep_427.py | 242 | CODE | |
| LOW | pex/os.py | 18 | CODE | |
| LOW | pex/dist_metadata.py | 285 | CODE | |
| LOW | pex/dist_metadata.py | 397 | CODE | |
| LOW | pex/dist_metadata.py | 641 | CODE | |
| LOW | pex/dist_metadata.py | 828 | CODE | |
| LOW | pex/specifier_sets.py | 196 | CODE | |
| LOW | pex/specifier_sets.py | 251 | CODE | |
| LOW | pex/specifier_sets.py | 131 | CODE | |
| LOW | pex/sdist.py | 57 | CODE | |
| LOW | pex/jobs.py | 534 | CODE | |
| LOW | pex/interpreter.py | 1339 | CODE | |
| LOW | pex/interpreter.py | 1461 | CODE | |
| LOW | pex/interpreter.py | 1346 | CODE | |
| LOW | pex/common.py | 178 | CODE | |
| LOW | pex/common.py | 988 | CODE | |
| LOW | pex/common.py | 392 | CODE | |
| LOW | pex/common.py | 881 | CODE | |
| LOW | pex/common.py | 937 | CODE | |
| LOW | pex/requirements.py | 724 | CODE | |
| LOW | pex/pex_boot.py | 146 | CODE | |
| LOW | pex/executables.py | 151 | CODE | |
| LOW | pex/pep_723.py | 144 | CODE | |
| LOW | pex/pep_723.py | 99 | CODE | |
| LOW | pex/resolver.py | 214 | CODE | |
| LOW | pex/resolver.py | 684 | CODE | |
| LOW | pex/resolver.py | 780 | CODE | |
| LOW | pex/resolver.py | 1185 | CODE | |
| LOW | pex/resolver.py | 1342 | CODE | |
| LOW | pex/pex.py | 385 | CODE | |
| LOW | pex/pex.py | 672 | CODE | |
| LOW | pex/environment.py | 283 | CODE | |
| LOW | pex/environment.py | 602 | CODE | |
| LOW | pex/environment.py | 797 | CODE | |
| LOW | pex/ziputils.py | 188 | CODE | |
| LOW | pex/pex_bootstrapper.py | 98 | CODE | |
| LOW | pex/pex_bootstrapper.py | 250 | CODE | |
| LOW | pex/pex_bootstrapper.py | 516 | CODE | |
| LOW | pex/build_properties.py | 106 | CODE | |
| LOW | pex/sysconfig.py | 43 | CODE | |
| LOW | pex/sysconfig.py | 89 | CODE | |
| LOW | pex/hashing.py | 229 | CODE | |
| LOW | pex/pyenv.py | 28 | CODE | |
| LOW | pex/pyenv.py | 173 | CODE | |
| LOW | pex/pyenv.py | 117 | CODE | |
| LOW | pex/toml.py | 133 | CODE | |
| LOW | pex/scie/__init__.py | 532 | CODE | |
| LOW | pex/scie/model.py | 80 | CODE | |
| LOW | pex/scie/model.py | 145 | CODE | |
| 113 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.cfg | 61 | management = | COMMENT |
| LOW | pex/atomic_directory.py | 81 | COMMENT | |
| LOW | pex/pex_builder.py | 821 | deterministic=deterministic, | COMMENT |
| LOW | pex/targets.py | 161 | # but Pip, which follows PEP-440, will evaluate `>=3.8.1` as false and exclude the | COMMENT |
| LOW | pex/dist_metadata.py | 81 | def is_tar_sdist(path): | COMMENT |
| LOW | pex/dist_metadata.py | 101 | # | whl | 6332494 | | COMMENT |
| LOW | pex/dist_metadata.py | 501 | COMMENT | |
| LOW | pex/__init__.py | 1 | # Copyright 2014 Pex project contributors. | COMMENT |
| LOW | pex/sdist.py | 61 | ): | COMMENT |
| LOW | pex/jobs.py | 601 | stop.set() | COMMENT |
| LOW | pex/sh_boot.py | 201 | # cache may behave differently) | COMMENT |
| LOW | pex/sh_boot.py | 221 | # | COMMENT |
| LOW | pex/interpreter.py | 741 | # | COMMENT |
| LOW | pex/interpreter.py | 881 | else: | COMMENT |
| LOW | pex/interpreter.py | 1461 | def resolve_base_interpreter(self): | COMMENT |
| LOW | pex/interpreter.py | 1481 | # pypy3.6 | COMMENT |
| LOW | pex/common.py | 461 | members=None, # type: Optional[Iterable[Union[str, ZipInfo]]] | COMMENT |
| LOW | pex/executables.py | 81 | COMMENT | |
| LOW | pex/resolver.py | 941 | def install_chroot(self): | COMMENT |
| LOW | pex/resolver.py | 961 | # │ └── 1003685de2c3604dc6daab9540a66201c1d1f718 | COMMENT |
| LOW | pex/resolver.py | 981 | # When the pex is run, the runtime key is followed to the build time key, avoiding | COMMENT |
| LOW | pex/resolver.py | 1621 | ) | COMMENT |
| LOW | pex/resolver.py | 1641 | # distributions and then `pex.pep_427.install_wheel_chroot` to install each distribution in its | COMMENT |
| LOW | pex/environment.py | 441 | "Resolving {override}: overrides {requirement} from {dist}".format( | COMMENT |
| LOW | pex/environment.py | 481 | dependency_configuration, # type: DependencyConfiguration | COMMENT |
| LOW | pex/environment.py | 741 | # will be active in the pex environment at runtime and, as such, care must be taken. | COMMENT |
| LOW | pex/whl.py | 41 | repack_dir = CacheDir.REPACKED_WHEELS.path(fingerprint, flavor) | COMMENT |
| LOW | pex/ziputils.py | 101 | # start of the central directory 2 bytes | COMMENT |
| LOW | pex/ziputils.py | 201 | if not self.has_header: | COMMENT |
| LOW | pex/wheel.py | 61 | # Some WHEEL metadata in the wild has blank lines in between headers when it should not. | COMMENT |
| LOW | pex/wheel.py | 81 | # them in a frozenset with unstable order which can cause issues when attempting | COMMENT |
| LOW | pex/distutils/__init__.py | 1 | # Copyright 2021 Pex project contributors. | COMMENT |
| LOW | pex/distutils/commands/__init__.py | 1 | # Copyright 2021 Pex project contributors. | COMMENT |
| LOW | pex/tools/__init__.py | 1 | # Copyright 2020 Pex project contributors. | COMMENT |
| LOW | pex/cache/dirs.py | 881 | # wheel name which is unique on the host os up to the python and abi tags. In other words, | COMMENT |
| LOW | pex/cache/__init__.py | 1 | # Copyright 2024 Pex project contributors. | COMMENT |
| LOW | pex/resolve/locker.py | 301 | artifact_url = ArtifactURL.from_url_info( | COMMENT |
| LOW | pex/resolve/locker.py | 341 | # ... | COMMENT |
| LOW | pex/resolve/__init__.py | 1 | # Copyright 2021 Pex project contributors. | COMMENT |
| LOW | pex/resolve/locker_patches.py | 201 | Wheel.find_most_preferred_tag = lambda *args, **kwargs: 0 | COMMENT |
| LOW | pex/resolve/lockfile/create.py | 121 | project_name_and_version = ProjectNameAndVersion.from_filename(f) | COMMENT |
| LOW | pex/resolve/lockfile/__init__.py | 1 | # Copyright 2021 Pex project contributors. | COMMENT |
| LOW | pex/resolve/pep_691/__init__.py | 1 | # Copyright 2022 Pex project contributors. | COMMENT |
| LOW | pex/bin/__init__.py | 1 | # Copyright 2014 Pex project contributors. | COMMENT |
| LOW | pex/build_system/pep_518.py | 101 | # N.B.: We install extra requirements separately instead of having them resolved and | COMMENT |
| LOW | pex/build_system/__init__.py | 1 | # Copyright 2022 Pex project contributors. | COMMENT |
| LOW | pex/fetcher/ssl.py | 61 | # of the `ssl.Purpose` enum type [^1] a call to OpenSSL's `OBJ_obj2nid` [^2][^3] which | COMMENT |
| LOW | pex/fetcher/ssl.py | 81 | # | COMMENT |
| LOW | pex/cli/__init__.py | 1 | # Copyright 2021 Pex project contributors. | COMMENT |
| LOW | pex/cli/commands/pip/__init__.py | 1 | # Copyright 2025 Pex project contributors. | COMMENT |
| LOW | pex/pip/__init__.py | 1 | # Copyright 2022 Pex project contributors. | COMMENT |
| LOW | pex/pip/vcs.py | 121 | # We cannot prune these directories from the source archive directly unfortunately since | COMMENT |
| LOW | pex/pip/tool.py | 261 | # type: (str) -> ErrorAnalysis | COMMENT |
| LOW | pex/pip/tool.py | 401 | ): | COMMENT |
| LOW | pex/pip/foreign_platform/__init__.py | 21 | COMMENT | |
| LOW | pex/pip/foreign_platform/requires_python.py | 41 | if PYTHON_FULL_VERSIONS: | COMMENT |
| LOW | pex/http/__init__.py | 1 | # Copyright 2025 Pex project contributors. | COMMENT |
| LOW | pex/commands/__init__.py | 1 | # Copyright 2021 Pex project contributors. | COMMENT |
| LOW | build-backend/pex_build/setuptools/__init__.py | 1 | # Copyright 2024 Pex project contributors. | COMMENT |
| LOW | tests/test_requirements.py | 361 | beautifulsoup4 | COMMENT |
| 32 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | pex/pex_builder.py | 393 | except InstalledWheel.LoadError: | CODE |
| HIGH | pex/jobs.py | 607 | except ValueError: | CODE |
| HIGH | pex/interpreter.py | 210 | except ImportError: | CODE |
| HIGH | pex/interpreter.py | 224 | except ImportError: | CODE |
| HIGH | pex/interpreter.py | 728 | except cls.Error: | CODE |
| HIGH | pex/requirements.py | 627 | except dist_metadata.UnrecognizedDistributionFormat: | CODE |
| HIGH | pex/resolver.py | 1003 | except InstalledWheel.LoadError: | CODE |
| HIGH | pex/exceptions.py | 65 | except Exception: | CODE |
| HIGH | pex/distutils/commands/bdist_pex.py | 69 | except ValueError: | CODE |
| HIGH | pex/resolve/resolver_options.py | 80 | except InvalidVirtualenvError: | CODE |
| HIGH | pex/repl/custom.py | 58 | except AttributeError: | CODE |
| HIGH | pex/repl/custom.py | 61 | except (IOError, OSError): | CODE |
| HIGH | pex/pip/dependencies/requires.py | 116 | except ImportError: | CODE |
| HIGH | pex/pip/dependencies/requires.py | 132 | except ImportError: | CODE |
| HIGH | pex/commands/command.py | 498 | except ValueError: | CODE |
| HIGH | tests/test_environment.py | 433 | except ValueError: | CODE |
| HIGH | tests/tools/commands/test_repository.py | 410 | except OSError: | CODE |
| HIGH | testing/subprocess.py | 41 | except InvalidVirtualenvError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | pex/sh_boot.py | 289 | if PATH="${{_path}}" command -v "${{python}}" 2>/dev/null; then | STRING |
| HIGH | tests/resolve/lockfile/test_json_codec.py | 143 | "requires_python": null, | CODE |
| HIGH | tests/resolve/lockfile/test_json_codec.py | 368 | "requires_python": null, | CODE |
| HIGH | tests/resolve/lockfile/test_json_codec.py | 388 | - "requires_python": null, | CODE |
| HIGH | tests/resolve/lockfile/test_lockfile.py | 61 | "requires_python": null, | STRING |
| HIGH | tests/integration/cli/commands/test_lock.py | 442 | "requires_python": null, | CODE |
| HIGH | tests/integration/cli/commands/test_lock.py | 514 | "requires_python": null, | CODE |
| HIGH | tests/integration/cli/commands/test_lock.py | 1109 | "requires_python": null, | CODE |
| HIGH | tests/integration/cli/commands/test_lock.py | 1131 | "requires_python": null, | CODE |
| HIGH | tests/integration/cli/commands/test_lock.py | 1364 | "requires_python": null, | CODE |
| HIGH | tests/integration/cli/commands/test_lock.py | 1493 | "requires_python": null, | CODE |
| HIGH | tests/integration/cli/commands/test_lock.py | 1559 | "requires_python": null, | CODE |
| HIGH | tests/integration/cli/commands/test_lock.py | 1595 | "use_pep517": null, | CODE |
| HIGH | tests/integration/cli/commands/test_lock.py | 1676 | "requires_python": null, | CODE |
| HIGH | tests/integration/cli/commands/test_lock.py | 1805 | "requires_python": null, | CODE |
| HIGH | tests/integration/cli/commands/test_lock.py | 1871 | "requires_python": null, | CODE |
| HIGH | tests/integration/cli/commands/test_lock.py | 1907 | "use_pep517": null, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | pex/tools/commands/repository.py | 0 | \ [build-system] build-backend = "setuptools.build_meta" requires = ["setuptools"] | STRING |
| HIGH | tests/integration/test_override_replace.py | 0 | \ [build-system] build-backend = "setuptools.build_meta" requires = ["setuptools"] | STRING |
| HIGH | tests/integration/test_issue_2822.py | 0 | \ [build-system] build-backend = "setuptools.build_meta" requires = ["setuptools"] | STRING |
| HIGH | tests/integration/test_issue_3259.py | 0 | \ [build-system] build-backend = "setuptools.build_meta" requires = ["setuptools"] | STRING |
| HIGH | tests/integration/test_scoped_repos.py | 0 | \ [build-system] build-backend = "setuptools.build_meta" requires = ["setuptools"] | STRING |
| HIGH | tests/integration/resolve/test_venv_resolver.py | 0 | \ [build-system] build-backend = "setuptools.build_meta" requires = ["setuptools"] | STRING |
| HIGH | …integration/cli/commands/test_split_universal_locks.py | 0 | \ [build-system] build-backend = "setuptools.build_meta" requires = ["setuptools"] | STRING |
| HIGH | tests/integration/cli/commands/test_run.py | 0 | \ [build-system] build-backend = "setuptools.build_meta" requires = ["setuptools"] | STRING |
| HIGH | tests/integration/cli/commands/test_lock_report.py | 0 | \ [build-system] build-backend = "setuptools.build_meta" requires = ["setuptools"] | STRING |
| HIGH | …on/cli/commands/test_lock_reproducibility_hash_seed.py | 0 | \ [build-system] build-backend = "setuptools.build_meta" requires = ["setuptools"] | STRING |
| HIGH | tests/integration/venv_ITs/test_issue_2160.py | 0 | \ [build-system] build-backend = "setuptools.build_meta" requires = ["setuptools"] | STRING |
| HIGH | testing/local_project.py | 0 | \ [build-system] build-backend = "setuptools.build_meta" requires = ["setuptools"] | STRING |
| HIGH | tests/integration/test_issue_3248.py | 0 | \ [build-system] build-backend = "setuptools.build_meta" requires = ["setuptools"] | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pex/pep_427.py | 848 | CODE | |
| LOW | pex/jobs.py | 750 | CODE | |
| LOW | pex/jobs.py | 859 | CODE | |
| LOW | pex/resolver.py | 1546 | CODE | |
| LOW | pex/resolver.py | 1725 | CODE | |
| LOW | pex/resolver.py | 1797 | CODE | |
| LOW | pex/resolver.py | 1942 | CODE | |
| LOW | pex/resolver.py | 2032 | CODE | |
| LOW | pex/resolver.py | 1285 | CODE | |
| LOW | pex/resolve/lock_downloader.py | 84 | CODE | |
| LOW | pex/resolve/lock_downloader.py | 264 | CODE | |
| LOW | pex/resolve/resolvers.py | 247 | CODE | |
| LOW | pex/resolve/lock_resolver.py | 117 | CODE | |
| LOW | pex/resolve/lock_resolver.py | 204 | CODE | |
| LOW | pex/resolve/lock_resolver.py | 272 | CODE | |
| LOW | pex/resolve/lock_resolver.py | 332 | CODE | |
| LOW | pex/resolve/lock_resolver.py | 388 | CODE | |
| LOW | pex/resolve/lock_resolver.py | 432 | CODE | |
| LOW | pex/resolve/resolver_configuration.py | 65 | CODE | |
| LOW | pex/resolve/configured_resolver.py | 48 | CODE | |
| LOW | pex/resolve/pex_repository_resolver.py | 30 | CODE | |
| LOW | pex/resolve/lockfile/create.py | 169 | CODE | |
| LOW | pex/pip/version.py | 63 | CODE | |
| LOW | pex/pip/tool.py | 166 | CODE | |
| LOW | pex/pip/tool.py | 589 | CODE | |
| LOW | pex/pip/tool.py | 630 | CODE | |
| LOW | pex/pip/tool.py | 665 | CODE | |
| LOW | testing/__init__.py | 140 | CODE | |
| LOW | testing/__init__.py | 270 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | setup.cfg | 82 | # patterns here than we would otherwise need if we could leverage `**` support. | COMMENT |
| MEDIUM | pex/atomic_directory.py | 100 | # this compaction is more robust. | COMMENT |
| LOW | pex/scie/model.py | 461 | # hit, we just use major / minor. If the user wants control they can specify | COMMENT |
| LOW | pex/resolve/target_system.py | 160 | # seems simple and direct, just add explicit parenthesization around all `and`s. | COMMENT |
| MEDIUM | pex/resolve/pep_691/fingerprint_service.py | 166 | # enough; we need not fail the whole endeavor. The partial artifact just remains partial | STRING |
| LOW | pex/resolve/pep_691/fingerprint_service.py | 243 | # just return them as-is. | STRING |
| LOW | pex/fetcher/url.py | 80 | # There was no *.sock component, so just use the full path. | COMMENT |
| MEDIUM | pex/pip/tool.py | 407 | # prompt and we'd also like to know about this since it should never occur. We leverage | COMMENT |
| MEDIUM | tests/integration/test_issue_1520.py | 45 | # in conjunction with protobuf 4+ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pex/build_properties.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | pex/tools/commands/graph.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | pex/tools/commands/venv.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | pex/tools/commands/interpreter.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | pex/tools/commands/repository.py | 45 | logger = logging.getLogger(__name__) | CODE |
| LOW | pex/resolve/lockfile/updater.py | 62 | logger = logging.getLogger(__name__) | CODE |
| LOW | pex/fetcher/__init__.py | 9 | __all__ = ["URLFetcher", "initialize_ssl_context"] | CODE |
| LOW | pex/docs/command.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | pex/cli/commands/venv.py | 48 | logger = logging.getLogger(__name__) | CODE |
| LOW | pex/cli/commands/interpreter.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | pex/pip/dependencies/requires.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | pex/pip/package_repositories/link_collector.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | pex/http/server.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | testing/mitmproxy.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | testing/devpi.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | scripts/gen-scie-platform.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | scripts/py27/lint_enum.py | 30 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/integration/cli/commands/test_issue_2050.py | 229 | #----------------------------------------------------------------------------- | STRING |
| MEDIUM | .github/workflows/track-pip-main.yml | 58 | # ----------- | COMMENT |
| MEDIUM | .github/workflows/track-pip-main.yml | 68 | # ------------------ | COMMENT |
| MEDIUM | .github/workflows/ci.yml | 96 | # ----------- | COMMENT |
| MEDIUM | .github/workflows/ci.yml | 104 | # ---------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pex/compatibility.py | 4 | # This file contains several 2.x/3.x compatibility checkstyle violations for a reason | COMMENT |
| MEDIUM | tests/integration/test_interpreter_selection.py | 161 | # Create a pex with interpreter constraints, but for not the default interpreter in the path. | COMMENT |
| MEDIUM | tests/integration/test_integration.py | 227 | # Create a temporary pex containing just `requests` with no entrypoint. | COMMENT |
| MEDIUM | tests/integration/test_integration.py | 244 | # Create a temporary pex containing just `requests` with no entrypoint. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pex/atomic_directory.py | 325 | except Exception: | CODE |
| LOW | pex/pth.py | 53 | except Exception as e: | CODE |
| LOW | pex/jobs.py | 587 | except Exception as e: | CODE |
| LOW | pex/jobs.py | 637 | except Exception as e: | CODE |
| LOW | pex/jobs.py | 653 | except Exception as e: | CODE |
| LOW | pex/result.py | 108 | except Exception as e: | CODE |
| LOW | pex/exceptions.py | 65 | except Exception: | CODE |
| LOW | build-backend/pex_build/__init__.py | 90 | except Exception: | CODE |
| LOW | tests/integration/test_issue_2235.py | 38 | except Exception as e: | CODE |
| MEDIUM | testing/__init__.py | 650 | print("Error cloning pyenv on attempt", index + 1, "of 3:", e, file=sys.stderr) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/resolve/test_locker.py | 62 | assert "git://example.org" == strip_credentials("git://git@example.org", Credentials("git")) | CODE |
| LOW | tests/resolve/test_locker.py | 63 | assert "git://example.org" == strip_credentials("git://****@example.org", Credentials("****")) | CODE |
| LOW⚡ | tests/resolve/test_locker.py | 76 | assert "git://git@example.org" == inject_credentials("git://example.org", Credentials("git")) | CODE |
| LOW⚡ | tests/resolve/test_locker.py | 77 | assert "git://git@example.org" == inject_credentials( | CODE |
| LOW⚡ | tests/resolve/test_locker.py | 78 | "git://****@example.org", Credentials("git") | CODE |
| LOW⚡ | tests/resolve/test_locker.py | 80 | assert "http://joe:bob@example.org" == inject_credentials( | CODE |
| LOW⚡ | tests/resolve/test_locker.py | 83 | assert "http://joe:bob@example.org" == inject_credentials( | CODE |
| LOW⚡ | tests/resolve/test_locker.py | 84 | "http://joe:****@example.org", Credentials("joe", "bob") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pex/pex_builder.py | 284 | # Check if 'script' is a console_script. | COMMENT |
| LOW | pex/pex_builder.py | 295 | # Check if 'script' is an ordinary script. | COMMENT |
| LOW | pex/pex.py | 683 | # Check if the arg is an expected startup arg. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_pex.py | 516 | "my_package/my_module.py": 'def do_something():\n print("hello world!")\n', | CODE |
| LOW | tests/integration/test_reproducible.py | 285 | def do_something(): | STRING |
| LOW | tests/integration/test_integration.py | 385 | def do_something(): | STRING |
| LOW | tests/integration/test_integration.py | 1066 | def do_something(): | STRING |
| LOW | testing/__init__.py | 176 | os.path.join(name, "my_module.py"): 'def do_something():\n print("hello world!")\n', | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pex/distutils/commands/bdist_pex.py | 125 | # In order for code to run to here, pex is on the sys.path - make sure to propagate the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pex/pip/tool.py | 882 | # WARNING: This command is only meant for debugging. Do not use this with automation for | COMMENT |