Virtual Python Environment builder
This report presents the forensic synthetic code analysis of pypa/virtualenv, a Python project with 5,040 GitHub stars. SynthScan v2.0 examined 16,763 lines of code across 188 source files, recording 484 pattern matches distributed across 10 syntactic categories. The overall adjusted score of 32.1 places this repository in the Strong 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).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
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 484 distinct pattern matches across 10 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 | tasks/upgrade_wheels.py | 221 | def _support_table_from_existing_init() -> OrderedDict[str, OrderedDict[str, str]]: | STRING |
| LOW | tasks/make_zipapp.py | 270 | def get_wheels_for_support_versions(folder: Path) -> dict[str, Any]: | CODE |
| LOW | tasks/__main__zipapp.py | 81 | def _register_distutils_finder(self) -> None: # noqa: C901 | CODE |
| LOW | tasks/__main__zipapp.py | 147 | def versioned_distribution_class() -> type: | CODE |
| LOW | tests/conftest.py | 38 | def pytest_collection_modifyitems(config, items) -> None: | CODE |
| LOW | tests/conftest.py | 117 | def _check_cwd_not_changed_by_test(): | CODE |
| LOW | tests/conftest.py | 126 | def _ensure_py_info_cache_empty(session_app_data): | CODE |
| LOW | tests/unit/test_run.py | 46 | def test_invalid_discovery_method_via_env(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/unit/test_util.py | 27 | def test_reentrant_file_lock_is_thread_safe(tmp_path) -> None: | CODE |
| LOW | tests/unit/test_util.py | 53 | def test_no_override_returns_cache_dir(self, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/unit/test_util.py | 75 | def test_no_migration_when_old_missing(self, tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/unit/test_util.py | 86 | def test_no_migration_when_new_exists(self, tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/unit/test_util.py | 100 | def test_same_dir_returns_immediately(self, tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/unit/test_util.py | 108 | def test_fallback_on_migration_error(self, tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/unit/test_util.py | 126 | def test_symlink_app_data_survives_migration( | CODE |
| LOW⚡ | tests/unit/test_util.py | 164 | def test_zipapp_read_returns_payload_from_entry_inside_root(fake_zipapp_root: Path) -> None: | CODE |
| LOW⚡ | tests/unit/test_util.py | 169 | def test_zipapp_read_rejects_path_escaping_via_parent(fake_zipapp_root: Path) -> None: | CODE |
| LOW⚡ | tests/unit/test_util.py | 175 | def test_zipapp_read_rejects_unrelated_absolute_path(fake_zipapp_root: Path, tmp_path: Path) -> None: # noqa: ARG001 | CODE |
| LOW⚡ | tests/unit/seed/embed/test_base_embed.py | 34 | def test_wheel_cli_flags_do_nothing(tmp_path, flag) -> None: | CODE |
| LOW⚡ | tests/unit/seed/embed/test_base_embed.py | 44 | def test_wheel_cli_flags_warn(tmp_path, flag, capsys) -> None: | CODE |
| LOW⚡ | tests/unit/seed/embed/test_base_embed.py | 50 | def test_unused_wheel_cli_flags_dont_warn(tmp_path, capsys) -> None: | CODE |
| LOW⚡ | tests/unit/seed/embed/test_base_embed.py | 56 | def test_embed_wheel_versions(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/seed/embed/test_base_embed.py | 69 | def test_bundled_seeder_reports_reason_below_floor( | CODE |
| LOW⚡ | tests/unit/seed/embed/test_base_embed.py | 80 | def test_bundled_seeder_has_no_reason_on_oldest_supported( | CODE |
| LOW⚡ | tests/unit/seed/embed/test_base_embed.py | 86 | def test_base_seeder_never_blocks(at_version: Callable[[int, int], MagicMock]) -> None: | CODE |
| LOW⚡ | tests/unit/seed/embed/test_base_embed.py | 90 | def test_selection_surfaces_the_seeder_reason(tmp_path: Path, mocker: MockerFixture) -> None: | CODE |
| LOW⚡ | tests/unit/seed/embed/test_base_embed.py | 96 | def test_no_seed_bypasses_capability_check(tmp_path: Path, mocker: MockerFixture) -> None: | CODE |
| LOW | tests/unit/seed/embed/test_pip_invoke.py | 17 | def test_base_bootstrap_via_pip_invoke(tmp_path, coverage_env, mocker, current_fastest, no) -> None: # noqa: C901 | CODE |
| LOW | …ts/unit/seed/embed/test_bootstrap_link_via_app_data.py | 30 | def test_seed_link_via_app_data(tmp_path, coverage_env, current_fastest, copies) -> None: | CODE |
| LOW | …ts/unit/seed/embed/test_bootstrap_link_via_app_data.py | 155 | def test_base_bootstrap_link_via_app_data_not_writable(tmp_path, current_fastest) -> None: | CODE |
| LOW | …ts/unit/seed/embed/test_bootstrap_link_via_app_data.py | 163 | def test_populated_read_only_cache_and_symlinked_app_data(tmp_path, current_fastest, temp_app_data) -> None: | CODE |
| LOW | …ts/unit/seed/embed/test_bootstrap_link_via_app_data.py | 189 | def test_populated_read_only_cache_and_copied_app_data(tmp_path, current_fastest, temp_app_data) -> None: | CODE |
| LOW⚡ | …ts/unit/seed/embed/test_bootstrap_link_via_app_data.py | 215 | def test_base_bootstrap_link_via_app_data_no(tmp_path, pkg) -> None: | CODE |
| LOW⚡ | …ts/unit/seed/embed/test_bootstrap_link_via_app_data.py | 224 | def test_app_data_parallel_ok(tmp_path) -> None: | CODE |
| LOW⚡ | …ts/unit/seed/embed/test_bootstrap_link_via_app_data.py | 230 | def test_app_data_parallel_fail(tmp_path: Path, mocker: MockerFixture) -> None: | CODE |
| LOW | …ts/unit/seed/embed/test_bootstrap_link_via_app_data.py | 263 | def test_safe_extract_zip_allows_normal_entry(tmp_path: Path) -> None: | CODE |
| LOW | …ts/unit/seed/embed/test_bootstrap_link_via_app_data.py | 275 | def test_safe_extract_zip_rejects_parent_traversal(tmp_path: Path) -> None: | CODE |
| LOW | …ts/unit/seed/embed/test_bootstrap_link_via_app_data.py | 287 | def test_safe_extract_zip_rejects_absolute_posix_entry(tmp_path: Path) -> None: | CODE |
| LOW | …ts/unit/seed/embed/test_bootstrap_link_via_app_data.py | 297 | def test_safe_extract_zip_rejects_absolute_windows_entry(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_acquire.py | 30 | def test_pip_wheel_env_run_could_not_find(session_app_data, mocker) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_acquire.py | 36 | def test_download_wheel_bad_output(mocker, for_py_version, session_app_data) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_acquire.py | 92 | def test_download_wheel_python_io_encoding(mocker, for_py_version, session_app_data) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_acquire.py | 111 | def test_get_wheel_download_called(mocker, for_py_version, session_app_data, downloaded_wheel, version) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_acquire.py | 122 | def test_get_wheel_download_not_called(mocker, for_py_version, session_app_data, downloaded_wheel, version) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_acquire.py | 135 | def test_get_wheel_download_cached( | CODE |
| LOW | tests/unit/seed/wheels/test_acquire.py | 189 | def test_download_wheel_rejects_bad_distribution(distribution: str, session_app_data) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_acquire.py | 203 | def test_download_wheel_rejects_bad_version_spec(version_spec: str, session_app_data, mocker: MockerFixture) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_periodic_update.py | 75 | def test_pick_periodic_update(tmp_path, mocker, for_py_version) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_periodic_update.py | 105 | def test_periodic_update_stops_at_current(mocker, session_app_data, for_py_version) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_periodic_update.py | 125 | def test_periodic_update_latest_per_patch(mocker, session_app_data, for_py_version) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_periodic_update.py | 146 | def test_periodic_update_latest_per_patch_prev_is_manual(mocker, session_app_data, for_py_version) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_periodic_update.py | 168 | def test_manual_update_honored(mocker, session_app_data, for_py_version) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_periodic_update.py | 227 | def test_periodic_update_skip(u_log, mocker, for_py_version, session_app_data, time_freeze) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_periodic_update.py | 254 | def test_periodic_update_trigger(u_log, mocker, for_py_version, session_app_data, time_freeze) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_periodic_update.py | 270 | def test_trigger_update_no_debug(for_py_version, session_app_data, tmp_path, mocker, monkeypatch) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_periodic_update.py | 318 | def test_trigger_update_debug(for_py_version, session_app_data, tmp_path, mocker, monkeypatch) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_periodic_update.py | 442 | def test_do_update_skip_already_done(tmp_path, mocker, time_freeze) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_periodic_update.py | 504 | def test_get_release_unsecure(mocker, caplog, monkeypatch) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_periodic_update.py | 526 | def test_get_release_verified_failure_does_not_fallback(mocker, monkeypatch) -> None: | CODE |
| LOW | tests/unit/seed/wheels/test_periodic_update.py | 563 | def test_download_stop_with_embed(tmp_path, mocker, time_freeze) -> None: | CODE |
| 126 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tasks/release.py | 3 | CODE | |
| LOW | tasks/upgrade_wheels.py | 3 | CODE | |
| LOW | tasks/make_zipapp.py | 3 | CODE | |
| LOW | tasks/__main__zipapp.py | 1 | CODE | |
| LOW | tasks/update_embedded.py | 3 | CODE | |
| LOW | tests/conftest.py | 1 | CODE | |
| LOW | tests/types.py | 1 | CODE | |
| LOW | tests/unit/test_run.py | 1 | CODE | |
| LOW | tests/unit/test_util.py | 1 | CODE | |
| LOW | tests/unit/test_file_limit.py | 1 | CODE | |
| LOW | tests/unit/seed/embed/test_base_embed.py | 1 | CODE | |
| LOW | tests/unit/seed/embed/test_pip_invoke.py | 1 | CODE | |
| LOW | …ts/unit/seed/embed/test_bootstrap_link_via_app_data.py | 1 | CODE | |
| LOW | tests/unit/seed/wheels/test_acquire.py | 1 | CODE | |
| LOW | tests/unit/seed/wheels/test_periodic_update.py | 1 | CODE | |
| LOW | tests/unit/seed/wheels/test_acquire_find_wheel.py | 1 | CODE | |
| LOW | tests/unit/seed/wheels/test_bundle.py | 1 | CODE | |
| LOW | tests/unit/seed/wheels/test_wheels_util.py | 1 | CODE | |
| LOW | tests/unit/config/test_env_var.py | 1 | CODE | |
| LOW | tests/unit/config/test_ini.py | 1 | CODE | |
| LOW | tests/unit/config/test___main__.py | 1 | CODE | |
| LOW | tests/unit/config/cli/test_parser.py | 1 | CODE | |
| LOW | tests/unit/config/cli/test_help_formatter.py | 3 | CODE | |
| LOW | tests/unit/discovery/test_discovery.py | 1 | CODE | |
| LOW | tests/unit/activation/conftest.py | 1 | CODE | |
| LOW | tests/unit/activation/test_csh.py | 1 | CODE | |
| LOW | tests/unit/activation/test_bash.py | 1 | CODE | |
| LOW | tests/unit/activation/test_python_activator.py | 1 | CODE | |
| LOW | tests/unit/activation/test_powershell.py | 1 | CODE | |
| LOW | tests/unit/activation/test_activation_support.py | 1 | CODE | |
| LOW | tests/unit/activation/test_activator.py | 1 | CODE | |
| LOW | tests/unit/activation/test_xonsh.py | 1 | CODE | |
| LOW | tests/unit/activation/test_fish.py | 1 | CODE | |
| LOW | tests/unit/activation/test_batch.py | 1 | CODE | |
| LOW | tests/unit/activation/test_nushell.py | 1 | CODE | |
| LOW | tests/unit/create/conftest.py | 10 | CODE | |
| LOW | tests/unit/create/test_interpreters.py | 1 | CODE | |
| LOW | tests/unit/create/test_creator.py | 1 | CODE | |
| LOW | tests/unit/create/console_app/setup.py | 1 | CODE | |
| LOW | tests/unit/create/console_app/demo/__init__.py | 1 | CODE | |
| LOW | tests/unit/create/console_app/demo/__main__.py | 1 | CODE | |
| LOW | tests/unit/create/via_global_ref/test_race_condition.py | 1 | CODE | |
| LOW | tests/unit/create/via_global_ref/test_build_c_ext.py | 1 | CODE | |
| LOW | …t/create/via_global_ref/_test_race_condition_helper.py | 1 | CODE | |
| LOW | tests/unit/create/via_global_ref/test_api.py | 1 | CODE | |
| LOW | tests/unit/create/via_global_ref/greet/setup.py | 1 | CODE | |
| LOW | tests/unit/create/via_global_ref/builtin/conftest.py | 1 | CODE | |
| LOW | …/unit/create/via_global_ref/builtin/testing/py_info.py | 1 | CODE | |
| LOW | …sts/unit/create/via_global_ref/builtin/testing/path.py | 1 | CODE | |
| LOW | …/unit/create/via_global_ref/builtin/testing/helpers.py | 1 | CODE | |
| LOW | …/unit/create/via_global_ref/builtin/pypy/test_pypy3.py | 1 | CODE | |
| LOW | …te/via_global_ref/builtin/cpython/test_cpython3_win.py | 1 | CODE | |
| LOW | …unit/create/via_global_ref/builtin/cpython/conftest.py | 1 | CODE | |
| LOW | …/via_global_ref/builtin/cpython/test_cpython3_posix.py | 1 | CODE | |
| LOW | …e/via_global_ref/builtin/rustpython/test_rustpython.py | 1 | CODE | |
| LOW | tests/integration/test_cachedir_tag.py | 1 | CODE | |
| LOW | tests/integration/test_run_int.py | 1 | CODE | |
| LOW | tests/integration/test_zipapp.py | 1 | CODE | |
| LOW | tests/integration/test_race_condition_simulation.py | 1 | CODE | |
| LOW | tests/integration/test_race_condition_simulation.py | 43 | CODE | |
| 107 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/virtualenv/__init__.py | 6 | __all__ = [ | CODE |
| LOW | src/virtualenv/report.py | 46 | __all__ = [ | CODE |
| LOW | src/virtualenv/app_data/na.py | 75 | __all__ = [ | CODE |
| LOW | src/virtualenv/app_data/read_only.py | 45 | __all__ = [ | CODE |
| LOW | src/virtualenv/app_data/via_disk_folder.py | 177 | __all__ = [ | CODE |
| LOW | src/virtualenv/app_data/base.py | 164 | __all__ = [ | CODE |
| LOW | src/virtualenv/app_data/via_tempdir.py | 36 | __all__ = [ | CODE |
| LOW | src/virtualenv/seed/seeder.py | 63 | __all__ = [ | CODE |
| LOW | src/virtualenv/seed/embed/pip_invoke.py | 81 | __all__ = [ | CODE |
| LOW | src/virtualenv/seed/embed/base_embed.py | 167 | __all__ = [ | CODE |
| LOW | src/virtualenv/seed/embed/via_app_data/via_app_data.py | 162 | __all__ = [ | CODE |
| LOW | …tualenv/seed/embed/via_app_data/pip_install/symlink.py | 60 | __all__ = [ | CODE |
| LOW | …virtualenv/seed/embed/via_app_data/pip_install/copy.py | 42 | __all__ = [ | CODE |
| LOW | …virtualenv/seed/embed/via_app_data/pip_install/base.py | 240 | __all__ = [ | CODE |
| LOW | src/virtualenv/seed/wheels/bundle.py | 62 | __all__ = [ | CODE |
| LOW | src/virtualenv/seed/wheels/acquire.py | 209 | __all__ = [ | CODE |
| LOW | src/virtualenv/seed/wheels/util.py | 121 | __all__ = [ | CODE |
| LOW | src/virtualenv/seed/wheels/__init__.py | 6 | __all__ = [ | CODE |
| LOW | src/virtualenv/seed/wheels/periodic_update.py | 462 | __all__ = [ | CODE |
| LOW | src/virtualenv/seed/wheels/embed/__init__.py | 127 | __all__ = [ | CODE |
| LOW | src/virtualenv/util/zipapp.py | 42 | __all__ = [ | CODE |
| LOW | src/virtualenv/util/lock.py | 189 | __all__ = [ | CODE |
| LOW | src/virtualenv/util/path/_permission.py | 25 | def set_tree(folder: Path, stat: int) -> None: | CODE |
| LOW | src/virtualenv/util/path/__init__.py | 7 | __all__ = [ | CODE |
| LOW | src/virtualenv/util/path/_win.py | 21 | __all__ = [ | CODE |
| LOW | src/virtualenv/util/path/_sync.py | 84 | __all__ = [ | CODE |
| LOW | src/virtualenv/config/env_var.py | 36 | __all__ = [ | CODE |
| LOW | src/virtualenv/config/convert.py | 102 | __all__ = [ | CODE |
| LOW | src/virtualenv/config/cli/parser.py | 24 | def set_src(self, key: str, value: Any, src: str) -> None: # noqa: ANN401 | CODE |
| LOW | src/virtualenv/config/cli/parser.py | 156 | __all__ = [ | CODE |
| LOW | src/virtualenv/discovery/discover.py | 41 | __all__ = [ | CODE |
| LOW | src/virtualenv/discovery/py_info.py | 7 | __all__ = [ | CODE |
| LOW | src/virtualenv/discovery/cached_py_info.py | 7 | __all__ = [ | CODE |
| LOW | src/virtualenv/discovery/py_spec.py | 7 | __all__ = [ | CODE |
| LOW | src/virtualenv/discovery/builtin.py | 84 | __all__ = [ | CODE |
| LOW | src/virtualenv/activation/activator.py | 59 | __all__ = [ | CODE |
| LOW | src/virtualenv/activation/via_template.py | 97 | __all__ = [ | CODE |
| LOW | src/virtualenv/activation/__init__.py | 12 | __all__ = [ | CODE |
| LOW | src/virtualenv/activation/python/__init__.py | 37 | __all__ = [ | CODE |
| LOW | src/virtualenv/activation/xonsh/__init__.py | 32 | __all__ = [ | CODE |
| LOW | src/virtualenv/activation/cshell/__init__.py | 22 | __all__ = [ | CODE |
| LOW | src/virtualenv/activation/bash/__init__.py | 30 | __all__ = [ | CODE |
| LOW | src/virtualenv/activation/nushell/__init__.py | 49 | __all__ = [ | CODE |
| LOW | src/virtualenv/activation/powershell/__init__.py | 28 | __all__ = [ | CODE |
| LOW | src/virtualenv/activation/batch/__init__.py | 36 | __all__ = [ | CODE |
| LOW | src/virtualenv/activation/fish/__init__.py | 27 | __all__ = [ | CODE |
| LOW | src/virtualenv/run/session.py | 119 | __all__ = [ | CODE |
| LOW | src/virtualenv/run/__init__.py | 194 | __all__ = [ | CODE |
| LOW | src/virtualenv/run/plugin/activators.py | 72 | __all__ = [ | CODE |
| LOW | src/virtualenv/run/plugin/discovery.py | 57 | __all__ = [ | CODE |
| LOW | src/virtualenv/run/plugin/seeders.py | 52 | __all__ = [ | CODE |
| LOW | src/virtualenv/run/plugin/creators.py | 95 | __all__ = [ | CODE |
| LOW⚡ | src/virtualenv/run/plugin/base.py | 78 | __all__ = [ | CODE |
| LOW | src/virtualenv/create/describe.py | 111 | __all__ = [ | CODE |
| LOW | src/virtualenv/create/pyenv_cfg.py | 77 | __all__ = [ | CODE |
| LOW | src/virtualenv/create/creator.py | 220 | def set_pyenv_cfg(self) -> None: | STRING |
| LOW | src/virtualenv/create/creator.py | 292 | __all__ = [ | CODE |
| LOW | src/virtualenv/create/via_global_ref/store.py | 29 | __all__ = [ | CODE |
| LOW | src/virtualenv/create/via_global_ref/venv.py | 88 | def set_pyenv_cfg(self) -> None: | CODE |
| LOW | src/virtualenv/create/via_global_ref/venv.py | 103 | __all__ = [ | CODE |
| 15 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/unit/create/test_creator.py | 224 | # This file is a cache directory tag created by Python virtualenv. | COMMENT |
| MEDIUM | tests/unit/create/test_creator.py | 823 | # Create a real directory and a symlink to it | COMMENT |
| MEDIUM | tests/unit/create/via_global_ref/test_race_condition.py | 26 | # Create a temporary file with partial _virtualenv.py content (simulating race condition) | COMMENT |
| MEDIUM⚡ | tests/integration/test_race_condition_simulation.py | 27 | # Create the _virtualenv.py file | COMMENT |
| MEDIUM⚡ | tests/integration/test_race_condition_simulation.py | 33 | # Create the _virtualenv.pth file | COMMENT |
| MEDIUM | src/virtualenv/info.py | 38 | # Creating a symlink can fail for a variety of reasons, indicating that the filesystem does not support it. | COMMENT |
| MEDIUM | src/virtualenv/create/creator.py | 214 | # This file is a cache directory tag created by Python virtualenv. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tasks/release.py | 34 | CODE | |
| LOW | tasks/upgrade_wheels.py | 87 | CODE | |
| LOW | tasks/make_zipapp.py | 59 | CODE | |
| LOW | tasks/__main__zipapp.py | 81 | CODE | |
| LOW | tasks/__main__zipapp.py | 122 | CODE | |
| LOW | tests/unit/create/test_creator.py | 530 | CODE | |
| LOW | tests/integration/test_zipapp.py | 19 | CODE | |
| LOW | docs/render_cli.py | 204 | CODE | |
| LOW | src/virtualenv/info.py | 32 | CODE | |
| LOW | src/virtualenv/app_data/via_disk_folder.py | 94 | CODE | |
| LOW | …virtualenv/seed/embed/via_app_data/pip_install/base.py | 152 | CODE | |
| LOW | src/virtualenv/seed/wheels/util.py | 52 | CODE | |
| LOW | src/virtualenv/seed/wheels/periodic_update.py | 38 | CODE | |
| LOW | src/virtualenv/config/cli/parser.py | 101 | CODE | |
| LOW | src/virtualenv/run/plugin/creators.py | 33 | CODE | |
| LOW | src/virtualenv/create/via_global_ref/builtin/ref.py | 62 | CODE | |
| LOW | …nv/create/via_global_ref/builtin/via_global_self_do.py | 52 | CODE | |
| LOW | …virtualenv/create/via_global_ref/builtin/pypy/pypy3.py | 42 | CODE | |
| LOW | …lenv/create/via_global_ref/builtin/cpython/cpython3.py | 93 | CODE | |
| LOW | …lenv/create/via_global_ref/builtin/cpython/cpython3.py | 152 | CODE | |
| LOW | …ualenv/create/via_global_ref/builtin/cpython/mac_os.py | 144 | CODE | |
| LOW | …ualenv/create/via_global_ref/builtin/cpython/mac_os.py | 40 | CODE | |
| LOW | …ualenv/create/via_global_ref/builtin/cpython/mac_os.py | 217 | CODE | |
| LOW | …ualenv/create/via_global_ref/builtin/cpython/mac_os.py | 246 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tasks/release.py | 28 | repo.git.push(remote.name, "HEAD:main") | CODE |
| HIGH | tasks/release.py | 30 | repo.git.push(remote.name, tag) | CODE |
| HIGH | tests/unit/activation/test_bash.py | 97 | ["bash", "-c", f'source "{activate_script}" 2>/dev/null && echo "$VIRTUAL_ENV"'], | CODE |
| HIGH | tests/unit/activation/test_powershell.py | 119 | return f'if ($env:{var} -eq $null) {{ "None" }} else {{ $env:{var} }}' | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/test_util.py | 43 | except Exception: # noqa: BLE001, PERF203 | CODE |
| LOW | …ts/unit/seed/embed/test_bootstrap_link_via_app_data.py | 246 | except Exception as exception: # noqa: BLE001 | CODE |
| MEDIUM | …ts/unit/seed/embed/test_bootstrap_link_via_app_data.py | 242 | def _run(name) -> None: | CODE |
| LOW | tests/unit/activation/conftest.py | 44 | except Exception as exception: | CODE |
| LOW | src/virtualenv/app_data/via_disk_folder.py | 136 | except Exception: # noqa: BLE001, S110 | CODE |
| LOW | src/virtualenv/seed/embed/via_app_data/via_app_data.py | 72 | except Exception: # noqa: BLE001 | CODE |
| LOW | src/virtualenv/seed/embed/via_app_data/via_app_data.py | 110 | except Exception as exception: | CODE |
| LOW | src/virtualenv/seed/wheels/periodic_update.py | 358 | except Exception as exception: # noqa: BLE001 | CODE |
| LOW⚡ | src/virtualenv/seed/wheels/periodic_update.py | 394 | except Exception as exception: # noqa: BLE001 | CODE |
| LOW | src/virtualenv/config/convert.py | 88 | except Exception as exception: | CODE |
| LOW | src/virtualenv/config/ini.py | 52 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | src/virtualenv/config/ini.py | 70 | except Exception: # noqa: BLE001 | CODE |
| LOW | src/virtualenv/create/creator.py | 270 | except Exception as exception: # noqa: BLE001 | CODE |
| LOW | …ualenv/create/via_global_ref/builtin/cpython/mac_os.py | 134 | except Exception as e: # noqa: BLE001 | STRING |
| LOW | …ualenv/create/via_global_ref/builtin/cpython/mac_os.py | 139 | except Exception: | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/unit/seed/wheels/test_bundle.py | 104 | fake_name = "fake-0.0.1-py3-none-any.whl" | CODE |
| LOW⚡ | tests/unit/seed/wheels/test_bundle.py | 105 | fake = tmp_path / fake_name | CODE |
| LOW⚡ | tests/unit/seed/wheels/test_bundle.py | 107 | monkeypatch.setitem(BUNDLE_SHA256, fake_name, "0" * 64) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/activation/conftest.py | 160 | # So we need to check if the prompt exists on any of them. | COMMENT |
| LOW | tests/unit/activation/test_fish.py | 131 | # So we need to check if the prompt exists on any of them. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/virtualenv/activation/python/activate_this.py | 29 | # Set PKG_CONFIG_PATH to include the virtualenv's pkgconfig directory | COMMENT |