Command line driven CI frontend and development task automation tool.
This report summarizes scanner evidence for tox-dev/tox, a Python project with 3,943 GitHub stars. SynthScan examined 44,510 lines of code across 298 source files, recording 1444 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 31.9 (High 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? 1078 finding(s).
Are imports declared and package/API names verified? 273 finding(s).
Are wrappers, guards, and repeated structures necessary? 1094 finding(s).
Which changes need focused human review? 1444 finding(s).
Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.
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 1444 distinct pattern matches across 14 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 | tests/test_version.py | 21 | def test_version_without_plugin(tox_project: ToxProjectCreator) -> None: | CODE |
| LOW | tests/test_version.py | 56 | def test_version_with_inline_plugin(tox_project: ToxProjectCreator) -> None: | CODE |
| LOW | tests/test_version.py | 69 | def test_version_with_inline_plugin_append_version_info(tox_project: ToxProjectCreator) -> None: | CODE |
| LOW | tests/conftest.py | 38 | def _strip_broken_namespace_pth_files() -> None: | CODE |
| LOW | tests/conftest.py | 162 | def pytest_collection_modifyitems(items: list[pytest.Item]) -> None: | CODE |
| LOW | tests/test_provision.py | 142 | def test_provision_requires_nok(tox_project: ToxProjectCreator) -> None: | CODE |
| LOW | tests/test_provision.py | 154 | def test_provision_requires_skips_false_markers(tox_project: ToxProjectCreator) -> None: | CODE |
| LOW | tests/test_provision.py | 168 | def test_provision_requires_checks_true_markers(tox_project: ToxProjectCreator) -> None: | STRING |
| LOW | tests/test_provision.py | 185 | def test_provision_before_loading_env_list( | STRING |
| LOW | tests/test_provision.py | 234 | def test_provision_requires_ok(tox_project: ToxProjectCreator, tmp_path: Path) -> None: | STRING |
| LOW | tests/test_provision.py | 267 | def test_provision_platform_check(tox_project: ToxProjectCreator) -> None: | STRING |
| LOW | tests/test_provision.py | 277 | def test_provision_invalid_platform_regex(tox_project: ToxProjectCreator) -> None: | STRING |
| LOW | tests/test_provision.py | 290 | def test_provision_no_recreate(tox_project: ToxProjectCreator) -> None: | STRING |
| LOW | tests/test_provision.py | 297 | def test_provision_no_recreate_json(tox_project: ToxProjectCreator) -> None: | STRING |
| LOW | tests/test_provision.py | 315 | def test_provision_plugin_runner(tox_project: ToxProjectCreator, tmp_path: Path, plugin_testenv: str) -> None: | STRING |
| LOW | tests/test_provision.py | 336 | def test_provision_plugin_runner_in_provision(tox_project: ToxProjectCreator, tmp_path: Path) -> None: | CODE |
| LOW | tests/test_provision.py | 355 | def test_provision_acquires_file_lock(tox_project: ToxProjectCreator) -> None: | CODE |
| LOW | tests/test_provision.py | 372 | def test_provision_unrecognized_args_no_provision(tox_project: ToxProjectCreator) -> None: | CODE |
| LOW | tests/test_provision.py | 387 | def test_provision_plugin_cli_options(tox_project: ToxProjectCreator, tmp_path: Path) -> None: | STRING |
| LOW | tests/test_provision.py | 408 | def test_provision_default_arguments_exists(tox_project: ToxProjectCreator, subcommand: str) -> None: | STRING |
| LOW | tests/test_provision.py | 454 | def test_provision_colored_passed_to_subprocess(tox_project: ToxProjectCreator) -> None: | STRING |
| LOW | tests/test_provision.py | 474 | def test_provision_no_recreate_json_pinned_tox(tox_project: ToxProjectCreator) -> None: | STRING |
| LOW | tests/test_run.py | 26 | def test_re_raises_on_unexpected_exit(mocker: MockerFixture) -> None: | CODE |
| LOW | tests/test_run.py | 85 | def test_custom_root_dir_and_work_dir(tox_project: ToxProjectCreator, tmp_path: Path) -> None: | CODE |
| LOW | tests/journal/test_main_journal.py | 23 | def test_journal_enabled_default(base_info: dict[str, Any]) -> None: | CODE |
| LOW | tests/journal/test_main_journal.py | 29 | def test_journal_disabled_default() -> None: | CODE |
| LOW | tests/journal/test_main_journal.py | 46 | def test_env_journal_disabled() -> None: | CODE |
| LOW | tests/util/test_file_view.py | 12 | def test_create_session_view_copies(tmp_path: Path) -> None: | CODE |
| LOW | tests/util/test_file_view.py | 20 | def test_create_session_view_no_common_path(tmp_path: Path, monkeypatch: MonkeyPatch) -> None: | CODE |
| LOW | tests/util/test_cpu.py | 17 | def test_auto_detect_cpus_returns_one_when_cpu_count_throws(mocker: MockerFixture) -> None: | CODE |
| LOW⚡ | tests/util/test_redact.py | 18 | def test_redact_value_matches_secret_keywords(name: str, expected: str) -> None: | CODE |
| LOW⚡ | tests/util/test_redact.py | 22 | def test_redact_value_preserves_length() -> None: | CODE |
| LOW⚡ | tests/util/test_redact.py | 26 | def test_redact_argv_masks_inline_value_for_secret_flag() -> None: | CODE |
| LOW⚡ | tests/util/test_redact.py | 31 | def test_redact_argv_masks_short_flag() -> None: | CODE |
| LOW⚡ | tests/util/test_redact.py | 36 | def test_redact_argv_leaves_innocuous_flags_alone() -> None: | CODE |
| LOW⚡ | tests/util/test_redact.py | 41 | def test_redact_argv_does_not_mask_space_separated_value() -> None: | CODE |
| LOW⚡ | tests/util/test_redact.py | 48 | def test_redact_argv_returns_new_list() -> None: | CODE |
| LOW | tests/util/test_ci.py | 61 | def test_is_ci_not_teamcity_local(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/util/test_ci.py | 71 | def test_is_ci_generic_flag_opted_out(value: str, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/util/test_venv_redirect.py | 27 | def test_record_creates_redirect(root: Path) -> None: | CODE |
| LOW | tests/util/test_venv_redirect.py | 33 | def test_record_env_outside_root_is_absolute(root: Path, tmp_path_factory: pytest.TempPathFactory) -> None: | CODE |
| LOW | tests/util/test_venv_redirect.py | 50 | def test_record_replaces_own_redirect(root: Path, existing: str) -> None: | CODE |
| LOW⚡ | tests/util/test_venv_redirect.py | 67 | def test_record_keeps_foreign_redirect(root: Path, existing: str) -> None: | CODE |
| LOW⚡ | tests/util/test_venv_redirect.py | 75 | def test_record_keeps_undecodable_redirect(root: Path) -> None: | CODE |
| LOW⚡ | tests/util/test_venv_redirect.py | 83 | def test_record_keeps_venv_directory(root: Path) -> None: | CODE |
| LOW⚡ | tests/util/test_venv_redirect.py | 92 | def test_record_keeps_venv_symlink(root: Path) -> None: | CODE |
| LOW⚡ | tests/util/test_venv_redirect.py | 100 | def test_record_same_target_does_not_write(root: Path, mocker: MockerFixture) -> None: | CODE |
| LOW⚡ | tests/util/test_venv_redirect.py | 109 | def test_record_warns_when_write_fails(root: Path, mocker: MockerFixture, caplog: pytest.LogCaptureFixture) -> None: | CODE |
| LOW⚡ | tests/util/test_venv_redirect.py | 117 | def test_forget_removes_redirect_to_env(root: Path) -> None: | CODE |
| LOW⚡ | tests/util/test_venv_redirect.py | 125 | def test_forget_keeps_redirect_to_other_env(root: Path) -> None: | CODE |
| LOW⚡ | tests/util/test_venv_redirect.py | 133 | def test_forget_without_redirect(root: Path) -> None: | CODE |
| LOW⚡ | tests/util/test_venv_redirect.py | 143 | def test_release_redirect_only_when_ours(root: Path, target: str, released: bool) -> None: | CODE |
| LOW⚡ | tests/util/test_path.py | 28 | def test_ensure_cachedir_tag_creates_file(tmp_path: Path) -> None: | STRING |
| LOW⚡ | tests/util/test_path.py | 37 | def test_ensure_cachedir_tag_creates_parent_dirs(tmp_path: Path) -> None: | STRING |
| LOW⚡ | tests/util/test_path.py | 43 | def test_ensure_cachedir_tag_idempotent(tmp_path: Path) -> None: | STRING |
| LOW⚡ | tests/util/test_path.py | 51 | def test_ensure_cachedir_tag_does_not_overwrite(tmp_path: Path) -> None: | STRING |
| LOW⚡ | tests/util/test_path.py | 58 | def test_ensure_empty_dir_file(tmp_path: Path) -> None: | STRING |
| LOW⚡ | tests/util/test_path.py | 67 | def test_ensure_empty_dir_unlinks_dir_symlink(tmp_path: Path) -> None: | STRING |
| LOW⚡ | tests/util/test_path.py | 84 | def test_ensure_empty_dir_removes_read_only_file(tmp_path: Path, relative: str) -> None: | STRING |
| LOW⚡ | tests/util/test_path.py | 92 | def test_ensure_empty_dir_leaves_locked_nested_file(tmp_path: Path, windows_unlink: set[str]) -> None: | STRING |
| 941 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hatch_build.py | 1 | CODE | |
| LOW | tasks/release.py | 3 | CODE | |
| LOW | tools/generate_manpage.py | 3 | CODE | |
| LOW | tests/test_version.py | 1 | CODE | |
| LOW | tests/conftest.py | 1 | CODE | |
| LOW | tests/test_provision.py | 1 | CODE | |
| LOW | tests/test_call_modes.py | 1 | CODE | |
| LOW | tests/test_run.py | 1 | CODE | |
| LOW | tests/test_report.py | 1 | CODE | |
| LOW | tests/journal/test_main_journal.py | 1 | CODE | |
| LOW | tests/util/test_file_view.py | 1 | CODE | |
| LOW | tests/util/test_cpu.py | 1 | CODE | |
| LOW | tests/util/test_redact.py | 1 | CODE | |
| LOW | tests/util/test_ci.py | 1 | CODE | |
| LOW | tests/util/test_venv_redirect.py | 1 | CODE | |
| LOW | tests/util/test_path.py | 1 | CODE | |
| LOW | tests/util/test_graph.py | 1 | CODE | |
| LOW | tests/util/test_spinner.py | 1 | CODE | |
| LOW | tests/config/conftest.py | 1 | CODE | |
| LOW | tests/config/test_set_env.py | 1 | CODE | |
| LOW | tests/config/test_of_types.py | 1 | CODE | |
| LOW | tests/config/test_sets_get.py | 1 | CODE | |
| LOW | tests/config/test_main.py | 1 | CODE | |
| LOW | tests/config/test_sets.py | 1 | CODE | |
| LOW | tests/config/test_types.py | 1 | CODE | |
| LOW | tests/config/source/test_discover.py | 1 | CODE | |
| LOW | tests/config/source/test_legacy_toml.py | 1 | CODE | |
| LOW | tests/config/source/test_toml_env_base.py | 1 | CODE | |
| LOW | tests/config/source/test_toml_tox.py | 1 | CODE | |
| LOW | tests/config/source/test_toml_pyproject.py | 1 | CODE | |
| LOW | tests/config/source/test_setup_cfg.py | 1 | CODE | |
| LOW | tests/config/source/test_source_ini.py | 1 | CODE | |
| LOW | tests/config/cli/test_parser.py | 1 | CODE | |
| LOW | tests/config/cli/conftest.py | 1 | CODE | |
| LOW | tests/config/cli/test_parse.py | 1 | CODE | |
| LOW | tests/config/cli/test_cli_ini.py | 1 | CODE | |
| LOW | tests/config/cli/test_argcomplete.py | 1 | CODE | |
| LOW | tests/config/cli/test_cli_env_var.py | 1 | CODE | |
| LOW | tests/config/loader/conftest.py | 1 | CODE | |
| LOW | tests/config/loader/test_toml_loader.py | 1 | CODE | |
| LOW | tests/config/loader/test_loader.py | 1 | CODE | |
| LOW | tests/config/loader/test_section.py | 1 | CODE | |
| LOW | tests/config/loader/test_toml_product.py | 1 | CODE | |
| LOW | tests/config/loader/test_memory_loader.py | 1 | CODE | |
| LOW | tests/config/loader/test_str_convert.py | 1 | CODE | |
| LOW | tests/config/loader/test_set_env_override.py | 1 | CODE | |
| LOW | tests/config/loader/test_set_env_native.py | 1 | CODE | |
| LOW | tests/config/loader/test_replace.py | 1 | CODE | |
| LOW | tests/config/loader/test_native.py | 1 | CODE | |
| LOW | tests/config/loader/ini/conftest.py | 1 | CODE | |
| LOW | tests/config/loader/ini/test_factor.py | 1 | CODE | |
| LOW | tests/config/loader/ini/test_ini_loader.py | 1 | CODE | |
| LOW | tests/config/loader/ini/replace/test_replace_posargs.py | 1 | CODE | |
| LOW | tests/config/loader/ini/replace/test_replace_glob.py | 1 | CODE | |
| LOW | tests/config/loader/ini/replace/test_replace_env_var.py | 1 | CODE | |
| LOW | tests/config/loader/ini/replace/test_replace_tox_env.py | 1 | CODE | |
| LOW | tests/config/loader/ini/replace/test_replace_os_sep.py | 1 | CODE | |
| LOW | tests/config/loader/ini/replace/test_replace_tty.py | 1 | CODE | |
| LOW | …s/config/loader/ini/replace/test_replace_os_pathsep.py | 1 | CODE | |
| LOW | tests/tox_env/test_tox_env_runner.py | 1 | CODE | |
| 206 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/tox/util/spinner.py | 33 | except UnicodeEncodeError: | CODE |
| HIGH | src/tox/config/source/discover.py | 90 | except MissingRequiredConfigKeyError: | CODE |
| HIGH | src/tox/config/cli/parse.py | 34 | except ValueError: | CODE |
| HIGH | src/tox/config/cli/parse.py | 57 | except SystemExit: | CODE |
| HIGH | src/tox/config/cli/parse.py | 90 | except ImportError: | CODE |
| HIGH | src/tox/config/loader/convert.py | 91 | except (TypeError, ValueError): | CODE |
| HIGH | src/tox/config/loader/replacer.py | 119 | except MatchError: | CODE |
| HIGH | src/tox/config/loader/replacer.py | 312 | except KeyError: | CODE |
| HIGH | src/tox/config/loader/toml/_validate.py | 59 | except TypeError: | CODE |
| HIGH | src/tox/config/loader/ini/factor.py | 92 | except ValueError: | CODE |
| HIGH | src/tox/config/loader/ini/replace.py | 56 | except KeyError: # if fails, keep trying maybe another source can satisfy | CODE |
| HIGH | src/tox/tox_env/python/virtual_env/package/pyproject.py | 252 | except (SystemExit, BrokenPipeError, Fail): # pragma: no cover # if interrupted or backend dead, ignore | CODE |
| HIGH | src/tox/execute/api.py | 177 | except ImportError: | CODE |
| HIGH | src/tox/session/env_select.py | 545 | except StopIteration: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 38 | CODE | |
| LOW | tests/config/cli/test_parser.py | 59 | CODE | |
| LOW | tests/tox_env/python/pip/test_pip_install.py | 404 | CODE | |
| LOW | tests/demo_pkg_inline/build.py | 85 | CODE | |
| LOW | tests/docs/test_doc_config_examples.py | 62 | CODE | |
| LOW | tests/docs/test_doc_config_examples.py | 199 | CODE | |
| LOW | tests/docs/test_doc_config_examples.py | 234 | CODE | |
| LOW | src/tox/pytest.py | 149 | CODE | |
| LOW | src/tox/util/path.py | 32 | CODE | |
| LOW | src/tox/config/set_env.py | 44 | CODE | |
| LOW | src/tox/config/set_env.py | 131 | CODE | |
| LOW | src/tox/config/set_env.py | 177 | CODE | |
| LOW | src/tox/config/of_type.py | 113 | CODE | |
| LOW | src/tox/config/main.py | 57 | CODE | |
| LOW | src/tox/config/source/discover.py | 29 | CODE | |
| LOW | src/tox/config/source/discover.py | 64 | CODE | |
| LOW | src/tox/config/source/toml_pyproject.py | 192 | CODE | |
| LOW | src/tox/config/source/toml_pyproject.py | 223 | CODE | |
| LOW | src/tox/config/cli/env_var.py | 17 | CODE | |
| LOW | src/tox/config/cli/parser.py | 563 | CODE | |
| LOW | src/tox/config/cli/parser.py | 75 | CODE | |
| LOW | src/tox/config/cli/parser.py | 290 | CODE | |
| LOW | src/tox/config/cli/parser.py | 414 | CODE | |
| LOW | src/tox/config/cli/parser.py | 459 | CODE | |
| LOW | src/tox/config/loader/convert.py | 59 | CODE | |
| LOW | src/tox/config/loader/str_convert.py | 102 | CODE | |
| LOW | src/tox/config/loader/api.py | 318 | CODE | |
| LOW | src/tox/config/loader/api.py | 160 | CODE | |
| LOW | src/tox/config/loader/replacer.py | 321 | CODE | |
| LOW | src/tox/config/loader/toml/__init__.py | 149 | CODE | |
| LOW | src/tox/config/loader/toml/_validate.py | 27 | CODE | |
| LOW | src/tox/config/loader/toml/_replace.py | 181 | CODE | |
| LOW | src/tox/config/loader/toml/_replace.py | 68 | CODE | |
| LOW | src/tox/config/loader/toml/_replace.py | 320 | CODE | |
| LOW | src/tox/config/loader/ini/factor.py | 57 | CODE | |
| LOW | src/tox/config/loader/ini/factor.py | 120 | CODE | |
| LOW | src/tox/tox_env/runner.py | 156 | CODE | |
| LOW | src/tox/tox_env/info.py | 38 | CODE | |
| LOW | src/tox/tox_env/python/api.py | 235 | CODE | |
| LOW | src/tox/tox_env/python/api.py | 270 | CODE | |
| LOW | src/tox/tox_env/python/pip/pip_install.py | 158 | CODE | |
| LOW | src/tox/tox_env/python/pip/pip_install.py | 237 | CODE | |
| LOW | src/tox/tox_env/python/pip/req/file.py | 90 | CODE | |
| LOW | src/tox/tox_env/python/pip/req/file.py | 271 | CODE | |
| LOW | src/tox/tox_env/python/virtual_env/package/pyproject.py | 266 | CODE | |
| LOW | src/tox/tox_env/python/virtual_env/package/pyproject.py | 394 | CODE | |
| LOW | src/tox/tox_env/python/virtual_env/package/util.py | 34 | CODE | |
| LOW | …/tox/tox_env/python/virtual_env/package/cmd_builder.py | 155 | CODE | |
| LOW | src/tox/execute/stream.py | 86 | CODE | |
| LOW | src/tox/execute/api.py | 155 | CODE | |
| LOW | src/tox/execute/local_sub_process/__init__.py | 182 | CODE | |
| LOW | src/tox/execute/local_sub_process/__init__.py | 247 | CODE | |
| LOW | src/tox/execute/local_sub_process/__init__.py | 271 | CODE | |
| LOW | …x/execute/local_sub_process/read_via_thread_windows.py | 35 | CODE | |
| LOW | …/tox/execute/local_sub_process/read_via_thread_unix.py | 55 | CODE | |
| LOW | src/tox/session/env_select.py | 383 | CODE | |
| LOW | src/tox/session/env_select.py | 499 | CODE | |
| LOW | src/tox/session/env_select.py | 590 | CODE | |
| LOW | src/tox/session/cmd/legacy.py | 120 | CODE | |
| LOW | src/tox/session/cmd/run/single.py | 109 | CODE | |
| 2 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/tox/pytest.py | 149 | def _setup_files(dest: Path, base: Path | None, content: dict[str, Any]) -> None: | CODE |
| LOW | src/tox/report.py | 130 | def _setup_level(self, is_colored: bool, level: int) -> None: # ruff:ignore[boolean-type-hint-positional-argument] | CODE |
| LOW | src/tox/report.py | 233 | def update_verbosity(self, verbosity: int) -> None: | CODE |
| LOW | src/tox/util/typing_compat.py | 12 | __all__ = [ | CODE |
| LOW | src/tox/util/json_types.py | 9 | __all__ = [ | CODE |
| LOW | src/tox/util/venv_redirect.py | 89 | __all__ = [ | CODE |
| LOW | src/tox/util/ci.py | 39 | __all__ = [ | CODE |
| LOW | src/tox/util/path.py | 84 | __all__ = [ | CODE |
| LOW | src/tox/config/of_type.py | 168 | __all__ = [ | CODE |
| LOW | src/tox/config/source/ini_section.py | 25 | __all__ = [ | CODE |
| LOW | src/tox/config/source/toml_pyproject.py | 246 | __all__ = [ | CODE |
| LOW | src/tox/config/source/api.py | 113 | __all__ = [ | CODE |
| LOW | src/tox/config/source/ini.py | 135 | __all__ = [ | CODE |
| LOW | src/tox/config/source/toml_tox.py | 19 | __all__ = [ | CODE |
| LOW | src/tox/config/loader/convert.py | 204 | __all__ = [ | CODE |
| LOW | src/tox/config/loader/section.py | 67 | __all__ = [ | CODE |
| LOW | src/tox/config/loader/replacer.py | 394 | __all__ = [ | CODE |
| LOW | src/tox/config/loader/toml/_api.py | 12 | __all__ = [ | CODE |
| LOW | src/tox/config/loader/toml/__init__.py | 176 | __all__ = [ | CODE |
| LOW | src/tox/config/loader/toml/_product.py | 132 | __all__ = [ | CODE |
| LOW | src/tox/config/loader/toml/_validate.py | 83 | __all__ = [ | CODE |
| LOW | src/tox/config/loader/toml/_replace.py | 373 | __all__ = [ | STRING |
| LOW | src/tox/config/loader/ini/replace.py | 124 | __all__ = [ | STRING |
| LOW | src/tox/tox_env/runner.py | 203 | def _setup_with_env(self) -> None: | STRING |
| LOW | src/tox/tox_env/runner.py | 233 | def _setup_pkg(self) -> None: | CODE |
| LOW | src/tox/tox_env/util.py | 45 | __all__ = [ | CODE |
| LOW | src/tox/tox_env/installer.py | 49 | __all__ = [ | CODE |
| LOW | src/tox/tox_env/api.py | 328 | def _setup_env(self) -> None: | CODE |
| LOW | src/tox/tox_env/api.py | 347 | def _setup_with_env(self) -> None: # ruff:ignore[empty-method-without-abstract-decorator] # empty abstract base cla | CODE |
| LOW | src/tox/tox_env/python/package.py | 64 | def _setup_env(self) -> None: | CODE |
| LOW | src/tox/tox_env/python/extras.py | 41 | __all__ = [ | CODE |
| LOW | src/tox/tox_env/python/runner.py | 137 | def _setup_pkg(self) -> None: | CODE |
| LOW | src/tox/tox_env/python/runner.py | 155 | def _setup_env(self) -> None: | CODE |
| LOW | src/tox/tox_env/python/runner.py | 204 | def _setup_with_env(self) -> None: | CODE |
| LOW | src/tox/tox_env/python/runner.py | 283 | __all__ = [ | CODE |
| LOW | src/tox/tox_env/python/dependency_groups.py | 155 | __all__ = [ | CODE |
| LOW | src/tox/tox_env/python/pylock.py | 92 | __all__ = [ | CODE |
| LOW | src/tox/tox_env/python/api.py | 354 | def _setup_env(self) -> None: | CODE |
| LOW | src/tox/tox_env/python/pep723.py | 88 | def _setup_env(self) -> None: | STRING |
| LOW | src/tox/tox_env/python/pep723.py | 171 | __all__ = [ | STRING |
| LOW | src/tox/tox_env/python/pip/pip_install.py | 326 | __all__ = [ | CODE |
| LOW | src/tox/tox_env/python/virtual_env/pep723_runner.py | 49 | __all__ = [ | CODE |
| LOW | src/tox/tox_env/python/virtual_env/package/pyproject.py | 218 | def _setup_env(self) -> None: | CODE |
| LOW | src/tox/tox_env/python/virtual_env/package/pyproject.py | 241 | def _setup_build_requires(self, of_type: str) -> None: | CODE |
| LOW | src/tox/tox_env/python/virtual_env/package/pyproject.py | 580 | __all__ = [ | CODE |
| LOW | …/tox/tox_env/python/virtual_env/package/cmd_builder.py | 187 | __all__ = [ | CODE |
| LOW | src/tox/plugin/spec.py | 131 | __all__ = [ | CODE |
| LOW | src/tox/execute/util.py | 36 | __all__ = [ | CODE |
| LOW | src/tox/session/env_select.py | 669 | __all__ = [ | CODE |
| LOW | src/tox/session/cmd/run/common.py | 210 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tox/session/cmd/run/common.py | 375 | def update_spinner(self, result: ToxEnvRunResult, success: bool) -> None: # ruff:ignore[boolean-type-hint-positiona | CODE |
| LOW | src/tox/session/cmd/run/parallel.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tox/session/cmd/show_config/ini.py | 95 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | tasks/release.py | 35 | repo.git.push(upstream.name, f":refs/tags/{version}", "--no-verify") | CODE |
| HIGH⚡ | tasks/release.py | 41 | repo.git.push(upstream.name, f"{original_main_sha}:main", "-f", "--no-verify") | CODE |
| HIGH⚡ | tasks/release.py | 46 | repo.git.push(upstream.name, f":{release_branch}", "--no-verify") | CODE |
| HIGH⚡ | tasks/release.py | 81 | repo.git.push(upstream.name, f"{release_branch}:main", "-f") | CODE |
| HIGH⚡ | tasks/release.py | 84 | repo.git.push(upstream.name, tag, "-f") | CODE |
| HIGH⚡ | tasks/release.py | 92 | repo.git.push(upstream.name, f":{release_branch}", "--no-verify") | CODE |
| HIGH | tasks/release.py | 105 | upstream.push(refspec=f"{branch_name}:{branch_name}", force=True) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tasks/release.py | 30 | except Exception as cleanup_error: # ruff:ignore[blind-except] | CODE |
| LOW⚡ | tasks/release.py | 36 | except Exception as cleanup_error: # ruff:ignore[blind-except] | CODE |
| LOW⚡ | tasks/release.py | 42 | except Exception as cleanup_error: # ruff:ignore[blind-except] | CODE |
| LOW⚡ | tasks/release.py | 47 | except Exception as cleanup_error: # ruff:ignore[blind-except] | CODE |
| LOW | tasks/release.py | 63 | except Exception: | CODE |
| LOW | …ts/execute/local_subprocess/local_subprocess_sigint.py | 76 | except Exception as exception: # pragma: no cover | CODE |
| LOW | src/tox/run.py | 24 | except Exception as exception: | CODE |
| LOW | src/tox/config/cli/env_var.py | 37 | except Exception as exception: # ruff:ignore[blind-except] | CODE |
| LOW | src/tox/config/cli/ini.py | 39 | except Exception as exception: # ruff:ignore[blind-except] | CODE |
| LOW | src/tox/config/cli/ini.py | 60 | except Exception as exception: # ruff:ignore[blind-except] | CODE |
| LOW | src/tox/config/loader/api.py | 299 | except Exception as exception: # a bad value is a user error, report it without a traceback | CODE |
| LOW | src/tox/config/loader/toml/_validate.py | 74 | except Exception: # ruff:ignore[blind-except] | CODE |
| LOW | src/tox/config/loader/toml/_replace.py | 332 | except Exception as exc: # ruff:ignore[blind-except] | STRING |
| LOW | src/tox/config/loader/ini/__init__.py | 97 | except Exception as exception: | CODE |
| LOW | src/tox/tox_env/runner.py | 160 | except Exception: | STRING |
| LOW | src/tox/session/env_select.py | 426 | except Exception as exception: # ruff:ignore[blind-except] | CODE |
| LOW | src/tox/session/env_select.py | 444 | except Exception: # ruff:ignore[blind-except] | CODE |
| LOW | src/tox/session/env_select.py | 574 | except Exception: | CODE |
| LOW | src/tox/session/cmd/depends.py | 44 | except Exception as exception: # ruff:ignore[blind-except] | CODE |
| LOW | src/tox/session/cmd/run/single.py | 72 | except Exception: # pragma: no cover | CODE |
| LOW | src/tox/session/cmd/show_config/common.py | 68 | except Exception as exception: | CODE |
| LOW | src/tox/session/cmd/show_config/ini.py | 71 | except Exception as exception: # because e.g. the interpreter cannot be found | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/config/loader/ini/test_factor.py | 0 | if we have a factor that is not specified within the core env-list then that's also an environment | STRING |
| HIGH | tests/config/loader/ini/replace/test_replace_env_var.py | 0 | if we have a factor that is not specified within the core env-list then that's also an environment | STRING |
| HIGH | tests/config/loader/ini/replace/test_replace_tox_env.py | 0 | if we have a factor that is not specified within the core env-list then that's also an environment | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/util/test_path.py | 22 | # This file is a cache directory tag created by tox. | COMMENT |
| MEDIUM | tests/execute/local_subprocess/test_local_subprocess.py | 587 | # Create a pipe | COMMENT |
| MEDIUM | src/tox/util/path.py | 18 | # This file is a cache directory tag created by tox. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/tox/tox_env/python/virtual_env/package/pyproject.py | 340 | # Step 1: Build the sdist in this (parent) environment | COMMENT |
| LOW⚡ | src/tox/tox_env/python/virtual_env/package/pyproject.py | 345 | # Step 2: Extract sdist to env_tmp_dir (auto-cleaned by tox lifecycle) | COMMENT |
| LOW⚡ | src/tox/tox_env/python/virtual_env/package/pyproject.py | 351 | # Step 3: Get wheel_build_env child and point it at extracted sdist | COMMENT |
| LOW⚡ | src/tox/tox_env/python/virtual_env/package/pyproject.py | 360 | # Step 4: Build the wheel | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/tox/tox_env/python/virtual_env/package/pyproject.py | 340 | # Step 1: Build the sdist in this (parent) environment | COMMENT |
| LOW⚡ | src/tox/tox_env/python/virtual_env/package/pyproject.py | 345 | # Step 2: Extract sdist to env_tmp_dir (auto-cleaned by tox lifecycle) | COMMENT |
| LOW⚡ | src/tox/tox_env/python/virtual_env/package/pyproject.py | 351 | # Step 3: Get wheel_build_env child and point it at extracted sdist | COMMENT |
| LOW⚡ | src/tox/tox_env/python/virtual_env/package/pyproject.py | 360 | # Step 4: Build the wheel | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_provision.py | 48 | if worker_id == "master": # if not running under xdist we can just return | CODE |
| LOW | src/tox/tox_env/python/api.py | 61 | (?P<impl>py|pypy|cpython|jython|graalpy|rustpython|ironpython) # the interpreter; most users will simply use 'py' | CODE |
| LOW | src/tox/tox_env/python/pip/req/file.py | 355 | # For editable requirements, we don't support per-requirement options, so just return the parsed requirement. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/tox/tox_env/package.py | 103 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/tox/tox_env/python/virtual_env/package/pyproject.py | 124 | # Therefore, we make sure to close the existing back-end executor in the case of an existing PEP 517 frontend. | COMMENT |