Python packaging and dependency management made easy
This report summarizes scanner evidence for python-poetry/poetry, a Python project with 34,302 GitHub stars. SynthScan examined 86,323 lines of code across 372 source files, recording 1849 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 23.4 (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? 1421 finding(s).
Are imports declared and package/API names verified? 363 finding(s).
Are wrappers, guards, and repeated structures necessary? 1375 finding(s).
Which changes need focused human review? 1849 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 1849 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/conftest.py | 176 | def set_default_service_credential( | CODE |
| LOW | tests/conftest.py | 255 | def with_chained_fail_keyring(mocker: MockerFixture) -> None: | CODE |
| LOW | tests/conftest.py | 266 | def with_chained_null_keyring(mocker: MockerFixture) -> None: | CODE |
| LOW | tests/conftest.py | 663 | def disable_http_status_force_list(mocker: MockerFixture) -> Iterator[None]: | CODE |
| LOW | tests/conftest.py | 675 | def tmp_session_working_directory(tmp_path_factory: TempPathFactory) -> Iterator[Path]: | CODE |
| LOW | tests/conftest.py | 783 | def mocked_pythons_version_map() -> dict[str, findpython.PythonVersion]: | CODE |
| LOW | tests/conftest.py | 941 | def without_mocked_findpython( | CODE |
| LOW | tests/conftest.py | 1025 | def mocked_poetry_managed_python_register( | CODE |
| LOW | tests/conftest.py | 1054 | def wheel_with_path_traversal(tmp_path: Path, request: pytest.FixtureRequest) -> Path: | CODE |
| LOW | tests/conftest.py | 1087 | def wheel_with_path_traversal_via_symlink( | CODE |
| LOW | tests/test_conftest.py | 22 | def test_conftest_create_package( | CODE |
| LOW⚡ | tests/test_factory.py | 236 | def test_create_poetry_non_package_mode(fixture_dir: FixtureDirGetter) -> None: | CODE |
| LOW⚡ | tests/test_factory.py | 242 | def test_create_poetry_version_ok(fixture_dir: FixtureDirGetter) -> None: | CODE |
| LOW⚡ | tests/test_factory.py | 250 | def test_create_poetry_version_not_ok(fixture_dir: FixtureDirGetter) -> None: | CODE |
| LOW⚡ | tests/test_factory.py | 259 | def test_create_poetry_check_version_before_validation( | CODE |
| LOW | tests/test_factory.py | 161 | def test_create_pyproject_from_package( | CODE |
| LOW | tests/test_factory.py | 193 | def test_create_poetry_with_packages_and_includes( | CODE |
| LOW | tests/test_factory.py | 224 | def test_create_poetry_with_multi_constraints_dependency( | CODE |
| LOW | tests/test_factory.py | 274 | def test_poetry_with_primary_source( | CODE |
| LOW | tests/test_factory.py | 287 | def test_poetry_with_multiple_supplemental_sources( | CODE |
| LOW | tests/test_factory.py | 302 | def test_poetry_with_multiple_sources( | CODE |
| LOW | tests/test_factory.py | 315 | def test_poetry_with_multiple_sources_pypi( | CODE |
| LOW | tests/test_factory.py | 330 | def test_poetry_with_no_default_source(fixture_dir: FixtureDirGetter) -> None: | CODE |
| LOW | tests/test_factory.py | 339 | def test_poetry_with_supplemental_source( | CODE |
| LOW | tests/test_factory.py | 355 | def test_poetry_with_explicit_source( | CODE |
| LOW | tests/test_factory.py | 372 | def test_poetry_with_explicit_pypi_and_other( | CODE |
| LOW | tests/test_factory.py | 387 | def test_poetry_with_pypi_explicit_only( | CODE |
| LOW | tests/test_factory.py | 395 | def test_poetry_with_build_constraints(fixture_dir: FixtureDirGetter) -> None: | CODE |
| LOW | tests/test_factory.py | 413 | def test_poetry_with_empty_build_constraints(fixture_dir: FixtureDirGetter) -> None: | CODE |
| LOW | tests/test_factory.py | 442 | def test_create_poetry_fails_on_invalid_configuration( | CODE |
| LOW | tests/test_factory.py | 456 | def test_create_poetry_fails_on_nameless_project( | STRING |
| LOW | tests/test_factory.py | 470 | def test_create_poetry_with_local_config(fixture_dir: FixtureDirGetter) -> None: | STRING |
| LOW | tests/test_factory.py | 480 | def test_create_poetry_with_plugins( | STRING |
| LOW | tests/test_factory.py | 501 | def test_create_package_source_invalid( | STRING |
| LOW⚡ | tests/test_helpers.py | 44 | def test_returns_package_with_name_and_version(self) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 50 | def test_returns_package_not_yanked_by_default(self) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 54 | def test_returns_yanked_package_with_string_reason(self) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 58 | def test_returns_yanked_package_with_bool(self) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 64 | def test_returns_dependency_with_wildcard_constraint(self) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 69 | def test_returns_dependency_with_version_constraint(self) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 73 | def test_returns_dependency_with_dict_constraint(self) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 77 | def test_returns_optional_dependency(self) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 81 | def test_returns_dependency_with_groups(self) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 86 | def test_returns_dependency_allowing_prereleases(self) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 139 | def test_stores_path_as_string(self, tmp_path: Path) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 149 | def test_head_returns_mock_revision(self, tmp_path: Path) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 153 | def test_ignores_extra_kwargs(self, tmp_path: Path) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 160 | def test_clones_fixture_to_source_root(self, tmp_path: Path) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 169 | def test_clones_fixture_with_nested_path(self, tmp_path: Path) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 179 | def test_is_not_locked_by_default(self, tmp_path: Path) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 184 | def test_locked_sets_locked_state(self, tmp_path: Path) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 393 | def test_flattens_with_default_delimiter(self) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 397 | def test_flattens_deeply_nested_dict(self) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 401 | def test_returns_flat_dict_unchanged(self) -> None: | CODE |
| LOW⚡ | tests/test_helpers.py | 410 | def test_redirects_to_original_url(self, http: RequestsMock) -> None: | CODE |
| LOW | tests/test_helpers.py | 101 | def test_overwrites_existing_file(self, tmp_path: Path) -> None: | CODE |
| LOW | tests/test_helpers.py | 122 | def test_overwrites_existing_directory(self, tmp_path: Path) -> None: | CODE |
| LOW | tests/test_helpers.py | 198 | def test_is_fresh_always_returns_true(self, tmp_path: Path) -> None: | CODE |
| LOW | tests/test_helpers.py | 203 | def test_mock_lock_data_sets_data(self, tmp_path: Path) -> None: | CODE |
| LOW | tests/test_helpers.py | 214 | def test_write_lock_data_without_write_stores_in_memory( | CODE |
| 1246 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tests/utils/test_download.py | 19 | from poetry.utils.helpers import get_file_hash | CODE |
| CRITICAL⚡ | tests/utils/test_helpers.py | 16 | from poetry.utils.helpers import directory | CODE |
| CRITICAL⚡ | tests/utils/test_helpers.py | 17 | from poetry.utils.helpers import ensure_path | CODE |
| CRITICAL⚡ | tests/utils/test_helpers.py | 18 | from poetry.utils.helpers import extractall | CODE |
| CRITICAL⚡ | tests/utils/test_helpers.py | 19 | from poetry.utils.helpers import get_file_hash | CODE |
| CRITICAL⚡ | tests/utils/test_helpers.py | 20 | from poetry.utils.helpers import get_highest_priority_hash_type | CODE |
| CRITICAL⚡ | tests/utils/test_helpers.py | 21 | from poetry.utils.helpers import merge_dicts | CODE |
| CRITICAL | tests/pyproject/test_pyproject_toml_file.py | 7 | from poetry.core.exceptions import PoetryCoreError | CODE |
| CRITICAL⚡ | tests/console/commands/test_version.py | 129 | old_pyproject = tester.command.poetry.file.path.read_text(encoding="utf-8") | CODE |
| CRITICAL⚡ | tests/console/commands/test_version.py | 132 | new_pyproject = tester.command.poetry.file.path.read_text(encoding="utf-8") | CODE |
| CRITICAL | tests/console/commands/test_add.py | 567 | demo_path = app.poetry.file.path.parent.joinpath(path).resolve().as_posix() | STRING |
| CRITICAL | tests/console/commands/test_add.py | 790 | demo_path = app.poetry.file.path.parent.joinpath(path).resolve().as_posix() | STRING |
| CRITICAL | tests/console/commands/test_add.py | 829 | demo_path = app.poetry.file.path.parent.joinpath(path).resolve().as_posix() | STRING |
| CRITICAL | tests/console/commands/test_add.py | 859 | demo_path = app.poetry.file.path.parent.joinpath(path).resolve().as_posix() | STRING |
| CRITICAL | tests/console/commands/test_add.py | 895 | demo_path = app.poetry.file.path.parent.joinpath(path).resolve().as_posix() | STRING |
| CRITICAL | tests/console/commands/test_build.py | 18 | from poetry.utils.helpers import remove_directory | CODE |
| CRITICAL | src/poetry/toml/exceptions.py | 3 | from poetry.core.exceptions import PoetryCoreError | CODE |
| CRITICAL | src/poetry/config/config.py | 221 | from poetry.utils.helpers import merge_dicts | CODE |
| CRITICAL | src/poetry/masonry/builders/editable.py | 21 | from poetry.utils.helpers import is_dir_writable | CODE |
| CRITICAL | src/poetry/masonry/builders/editable.py | 284 | "url": self._poetry.file.path.parent.absolute().as_uri(), | STRING |
| CRITICAL | src/poetry/utils/cache.py | 21 | from poetry.utils.helpers import get_highest_priority_hash_type | CODE |
| CRITICAL | src/poetry/repositories/http_repository.py | 41 | from poetry.utils.helpers import get_highest_priority_hash_type | CODE |
| CRITICAL | src/poetry/installation/uninstaller.py | 43 | from poetry.utils.helpers import remove_directory | CODE |
| CRITICAL | src/poetry/installation/chooser.py | 14 | from poetry.utils.helpers import get_highest_priority_hash_type | CODE |
| CRITICAL | src/poetry/installation/chef.py | 11 | from poetry.utils.helpers import extractall | CODE |
| CRITICAL⚡ | src/poetry/installation/executor.py | 31 | from poetry.utils.helpers import get_file_hash | CODE |
| CRITICAL⚡ | src/poetry/installation/executor.py | 32 | from poetry.utils.helpers import get_highest_priority_hash_type | CODE |
| CRITICAL⚡ | src/poetry/installation/executor.py | 33 | from poetry.utils.helpers import pluralize | CODE |
| CRITICAL⚡ | src/poetry/installation/executor.py | 34 | from poetry.utils.helpers import remove_directory | CODE |
| CRITICAL | src/poetry/inspection/info.py | 26 | from poetry.utils.helpers import extractall | CODE |
| CRITICAL | src/poetry/vcs/git/backend.py | 32 | from poetry.utils.helpers import remove_directory | CODE |
| CRITICAL | src/poetry/packages/direct_origin.py | 15 | from poetry.utils.helpers import get_file_hash | CODE |
| CRITICAL | src/poetry/console/application.py | 26 | from poetry.utils.helpers import directory | CODE |
| CRITICAL | src/poetry/console/application.py | 27 | from poetry.utils.helpers import ensure_path | CODE |
| CRITICAL | src/poetry/console/commands/build.py | 17 | from poetry.utils.helpers import remove_directory | CODE |
| CRITICAL | src/poetry/console/commands/show.py | 298 | from poetry.utils.helpers import get_package_version_display_string | CODE |
| CRITICAL | src/poetry/console/commands/self/self_command.py | 20 | from poetry.utils.helpers import directory | CODE |
| CRITICAL | src/poetry/console/commands/self/show/plugins.py | 59 | from poetry.utils.helpers import pluralize | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 1 | CODE | |
| LOW | tests/test_conftest.py | 1 | CODE | |
| LOW | tests/test_factory.py | 1 | CODE | |
| LOW | tests/types.py | 1 | CODE | |
| LOW | tests/test_helpers.py | 1 | CODE | |
| LOW | tests/helpers.py | 1 | CODE | |
| LOW | tests/test_main.py | 1 | CODE | |
| LOW | tests/publishing/test_uploader.py | 1 | CODE | |
| LOW | tests/publishing/test_publisher.py | 1 | CODE | |
| LOW | tests/publishing/test_hash_manager.py | 1 | CODE | |
| LOW | tests/toml/test_file.py | 1 | CODE | |
| LOW | tests/mixology/test_incompatibility.py | 1 | CODE | |
| LOW | tests/mixology/helpers.py | 1 | CODE | |
| LOW | tests/mixology/version_solver/conftest.py | 1 | CODE | |
| LOW | tests/mixology/version_solver/test_backtracking.py | 1 | CODE | |
| LOW | tests/mixology/version_solver/__init__.py | 1 | CODE | |
| LOW | tests/mixology/version_solver/test_unsolvable.py | 1 | CODE | |
| LOW | tests/mixology/version_solver/test_python_constraint.py | 1 | CODE | |
| LOW | tests/mixology/version_solver/test_dependency_cache.py | 1 | CODE | |
| LOW | tests/mixology/version_solver/test_with_lock.py | 1 | CODE | |
| LOW | tests/mixology/version_solver/test_basic_graph.py | 1 | CODE | |
| LOW | tests/puzzle/test_transaction.py | 1 | CODE | |
| LOW | tests/puzzle/conftest.py | 1 | CODE | |
| LOW | tests/puzzle/test_provider.py | 1 | CODE | |
| LOW | tests/puzzle/test_solver_internals.py | 1 | CODE | |
| LOW | tests/puzzle/test_solver.py | 1 | CODE | |
| LOW | tests/config/test_file_config_source.py | 1 | CODE | |
| LOW | tests/config/test_source.py | 1 | CODE | |
| LOW | tests/config/test_config_source.py | 1 | CODE | |
| LOW | tests/config/test_config.py | 1 | CODE | |
| LOW | tests/config/test_dict_config_source.py | 1 | CODE | |
| LOW | tests/plugins/test_plugin_manager.py | 1 | CODE | |
| LOW | tests/integration/test_utils_vcs_git.py | 1 | CODE | |
| LOW | tests/masonry/builders/test_editable_builder.py | 1 | CODE | |
| LOW | tests/utils/conftest.py | 1 | CODE | |
| LOW | tests/utils/test_authenticator.py | 1 | CODE | |
| LOW | tests/utils/test_download.py | 1 | CODE | |
| LOW | tests/utils/test_threading.py | 1 | CODE | |
| LOW | tests/utils/test_password_manager.py | 1 | CODE | |
| LOW | tests/utils/test_isolated_build.py | 1 | CODE | |
| LOW | tests/utils/test_dependency_specification.py | 1 | CODE | |
| LOW | tests/utils/test_patterns.py | 1 | CODE | |
| LOW | tests/utils/test_wheel.py | 1 | CODE | |
| LOW | tests/utils/test_extras.py | 1 | CODE | |
| LOW | tests/utils/test_pip.py | 1 | CODE | |
| LOW | tests/utils/test_compat.py | 1 | CODE | |
| LOW | tests/utils/test_helpers.py | 1 | CODE | |
| LOW | tests/utils/test_python_manager.py | 1 | CODE | |
| LOW | tests/utils/test_cache.py | 1 | CODE | |
| LOW | tests/utils/test_log_utils.py | 1 | CODE | |
| LOW | tests/repositories/test_repository.py | 1 | CODE | |
| LOW | tests/repositories/conftest.py | 1 | CODE | |
| LOW | tests/repositories/test_pypi_repository.py | 1 | CODE | |
| LOW | tests/repositories/test_installed_repository.py | 1 | CODE | |
| LOW | tests/repositories/test_lockfile_repository.py | 1 | CODE | |
| LOW | tests/repositories/test_cached_repository.py | 1 | CODE | |
| LOW | tests/repositories/test_legacy_repository.py | 1 | CODE | |
| LOW | tests/repositories/test_repository_pool.py | 1 | CODE | |
| LOW | tests/repositories/test_http_repository.py | 1 | CODE | |
| LOW | tests/repositories/test_single_page_repository.py | 1 | CODE | |
| 263 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 531 | CODE | |
| LOW | tests/conftest.py | 541 | CODE | |
| LOW | tests/mixology/helpers.py | 43 | CODE | |
| LOW | tests/puzzle/test_transaction.py | 361 | CODE | |
| LOW | tests/installation/test_uninstaller.py | 41 | CODE | |
| LOW | tests/inspection/test_lazy_wheel.py | 76 | CODE | |
| LOW | tests/packages/test_locker.py | 1740 | CODE | |
| LOW | tests/console/commands/test_check.py | 318 | CODE | |
| LOW | tests/console/commands/test_check.py | 379 | CODE | |
| LOW | src/poetry/factory.py | 251 | CODE | |
| LOW | src/poetry/publishing/uploader.py | 200 | CODE | |
| LOW | src/poetry/publishing/uploader.py | 340 | CODE | |
| LOW | src/poetry/mixology/version_solver.py | 257 | CODE | |
| LOW | src/poetry/mixology/version_solver.py | 318 | CODE | |
| LOW | src/poetry/mixology/version_solver.py | 531 | CODE | |
| LOW | src/poetry/mixology/incompatibility.py | 108 | CODE | |
| LOW | src/poetry/mixology/failure.py | 143 | CODE | |
| LOW | src/poetry/puzzle/solver.py | 416 | CODE | |
| LOW | src/poetry/puzzle/solver.py | 470 | CODE | |
| LOW | src/poetry/puzzle/solver.py | 84 | CODE | |
| LOW | src/poetry/puzzle/solver.py | 190 | CODE | |
| LOW | src/poetry/puzzle/solver.py | 353 | CODE | |
| LOW | src/poetry/puzzle/provider.py | 282 | CODE | |
| LOW | src/poetry/puzzle/provider.py | 507 | CODE | |
| LOW | src/poetry/puzzle/provider.py | 849 | CODE | |
| LOW | src/poetry/puzzle/provider.py | 870 | CODE | |
| LOW | src/poetry/puzzle/provider.py | 1023 | CODE | |
| LOW | src/poetry/puzzle/transaction.py | 45 | CODE | |
| LOW | src/poetry/masonry/builders/editable.py | 143 | CODE | |
| LOW | src/poetry/utils/authenticator.py | 214 | CODE | |
| LOW | src/poetry/utils/download.py | 28 | CODE | |
| LOW | src/poetry/utils/download.py | 108 | CODE | |
| LOW | src/poetry/utils/cache.py | 248 | CODE | |
| LOW | src/poetry/utils/dependency_specification.py | 32 | CODE | |
| LOW | src/poetry/utils/helpers.py | 283 | CODE | |
| LOW | src/poetry/repositories/http_repository.py | 275 | CODE | |
| LOW | src/poetry/repositories/http_repository.py | 308 | CODE | |
| LOW | src/poetry/repositories/http_repository.py | 511 | CODE | |
| LOW | src/poetry/repositories/installed_repository.py | 41 | CODE | |
| LOW | src/poetry/repositories/installed_repository.py | 109 | CODE | |
| LOW | src/poetry/repositories/installed_repository.py | 243 | CODE | |
| LOW | src/poetry/repositories/parsers/pypi_search_parser.py | 41 | CODE | |
| LOW | src/poetry/repositories/link_sources/html.py | 36 | CODE | |
| LOW | src/poetry/installation/installer.py | 216 | CODE | |
| LOW | src/poetry/installation/executor.py | 157 | CODE | |
| LOW | src/poetry/installation/executor.py | 274 | CODE | |
| LOW | src/poetry/installation/executor.py | 531 | CODE | |
| LOW | src/poetry/installation/executor.py | 585 | CODE | |
| LOW | src/poetry/installation/executor.py | 883 | CODE | |
| LOW | src/poetry/inspection/lazy_wheel.py | 598 | CODE | |
| LOW | src/poetry/inspection/lazy_wheel.py | 704 | CODE | |
| LOW | src/poetry/inspection/info.py | 117 | CODE | |
| LOW | src/poetry/inspection/info.py | 369 | CODE | |
| LOW | src/poetry/inspection/info.py | 435 | CODE | |
| LOW | src/poetry/vcs/git/backend.py | 520 | CODE | |
| LOW | src/poetry/packages/locker.py | 95 | CODE | |
| LOW | src/poetry/packages/locker.py | 387 | CODE | |
| LOW | src/poetry/packages/locker.py | 518 | CODE | |
| LOW | src/poetry/console/application.py | 255 | CODE | |
| LOW | src/poetry/console/application.py | 424 | CODE | |
| 12 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 151 | def set_password(self, service: str, username: str, password: str) -> None: | CODE |
| LOW | tests/conftest.py | 187 | def set_password(self, service: str, username: str, password: str) -> None: | CODE |
| LOW | tests/conftest.py | 610 | def set_simple_log_formatter() -> None: | CODE |
| LOW | tests/test_helpers.py | 518 | def set_password(self, service: str, username: str, password: str) -> None: | CODE |
| LOW | tests/helpers.py | 368 | def set_keyring_backend(backend: KeyringBackend) -> None: | CODE |
| LOW | tests/mixology/version_solver/conftest.py | 20 | def set_package_python_versions(self, python_versions: str) -> None: | CODE |
| LOW | tests/puzzle/test_solver.py | 69 | def set_package_python_versions(provider: Provider, python_versions: str) -> None: | CODE |
| LOW | tests/installation/test_executor.py | 60 | def set_directory_wheel(self, wheels: Path | list[Path]) -> None: | CODE |
| LOW | tests/installation/test_executor.py | 66 | def set_sdist_wheel(self, wheels: Path | list[Path]) -> None: | CODE |
| LOW | src/poetry/factory.py | 44 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/publishing/__init__.py | 6 | __all__ = ["Publisher"] | CODE |
| LOW | src/poetry/publishing/publisher.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/toml/__init__.py | 7 | __all__ = ["TOMLError", "TOMLFile"] | CODE |
| LOW | src/poetry/puzzle/provider.py | 60 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/puzzle/provider.py | 108 | def _set_context(context: str | None) -> None: | CODE |
| LOW | src/poetry/puzzle/provider.py | 226 | def set_overrides(self, overrides: dict[Package, dict[str, Dependency]]) -> None: | CODE |
| LOW | src/poetry/puzzle/__init__.py | 6 | __all__ = ["Solver"] | CODE |
| LOW | src/poetry/config/config.py | 146 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/plugins/__init__.py | 7 | __all__ = ["ApplicationPlugin", "Plugin"] | CODE |
| LOW | src/poetry/plugins/plugin_manager.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/masonry/api.py | 10 | __all__ = [ | CODE |
| LOW | src/poetry/masonry/builders/editable.py | 89 | def _setup_build(self) -> None: | STRING |
| LOW | src/poetry/masonry/builders/__init__.py | 9 | __all__ = ["BUILD_FORMATS", "EditableBuilder"] | CODE |
| LOW | src/poetry/utils/authenticator.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/utils/cache.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/utils/password_manager.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/utils/password_manager.py | 111 | def set_password(self, name: str, username: str, password: str) -> None: | CODE |
| LOW | src/poetry/utils/password_manager.py | 212 | def set_pypi_token(self, repo_name: str, token: str) -> None: | CODE |
| LOW | src/poetry/utils/password_manager.py | 258 | def set_http_password(self, repo_name: str, username: str, password: str) -> None: | CODE |
| LOW | src/poetry/utils/_compat.py | 95 | __all__ = [ | CODE |
| LOW | src/poetry/utils/helpers.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/utils/wheel.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/repositories/__init__.py | 7 | __all__ = ["Repository", "RepositoryPool"] | CODE |
| LOW | src/poetry/repositories/installed_repository.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/repositories/pypi_repository.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/repositories/link_sources/base.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/installation/uninstaller.py | 54 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/installation/__init__.py | 6 | __all__ = ["Installer"] | CODE |
| LOW | src/poetry/installation/chooser.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/installation/wheel_installer.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/installation/operations/__init__.py | 8 | __all__ = ["Install", "Uninstall", "Update"] | CODE |
| LOW | src/poetry/inspection/lazy_wheel.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/inspection/lazy_wheel.py | 361 | def _setup_content(self) -> None: | CODE |
| LOW | src/poetry/inspection/info.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/vcs/git/backend.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/poetry/vcs/git/backend.py | 148 | def _set_head(self, remote_refs: FetchPackResult, repo: Repo) -> None: | CODE |
| LOW | src/poetry/vcs/git/__init__.py | 6 | __all__ = ["Git"] | CODE |
| LOW | src/poetry/packages/locker.py | 47 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | src/poetry/packages/locker.py | 133 | def set_pyproject_data(self, pyproject_data: dict[str, Any]) -> None: | CODE |
| LOW⚡ | src/poetry/packages/locker.py | 137 | def set_local_config(self, local_config: dict[str, Any]) -> None: | CODE |
| LOW | src/poetry/packages/__init__.py | 8 | __all__ = ["DependencyPackage", "Locker", "PackageCollection"] | CODE |
| LOW | src/poetry/console/commands/installer_command.py | 34 | def set_installer(self, installer: Installer) -> None: | CODE |
| LOW | src/poetry/console/commands/command.py | 28 | def set_poetry(self, poetry: Poetry) -> None: | CODE |
| LOW | src/poetry/console/commands/env_command.py | 24 | def set_env(self, env: Env) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/installation/test_uninstaller.py | 278 | # Create a sibling directory next to env.path that shares a name prefix. | COMMENT |
| MEDIUM | tests/vcs/git/test_backend.py | 303 | # Create a source repository with an annotated tag | COMMENT |
| MEDIUM | tests/vcs/git/test_backend.py | 320 | # Create an annotated tag | COMMENT |
| MEDIUM | tests/vcs/git/test_backend.py | 365 | # Create a source repository with nested annotated tags | COMMENT |
| MEDIUM | tests/vcs/git/test_backend.py | 466 | # Create a source repository with LFS support | COMMENT |
| MEDIUM | tests/vcs/git/test_backend.py | 483 | # Create a regular file | COMMENT |
| MEDIUM | tests/vcs/git/test_backend.py | 488 | # Create an LFS file with a pointer | COMMENT |
| MEDIUM | .github/scripts/backport.sh | 142 | # Create a temporary directory in which to hold worktrees for each backport attempt. | COMMENT |
| MEDIUM | .github/scripts/backport.sh | 161 | # Create a new backport branch, in a new worktree, based on the target branch. | COMMENT |
| MEDIUM | .github/scripts/backport.sh | 177 | # Create a derived title and label for the PR. | COMMENT |
| MEDIUM | .github/scripts/backport.sh | 195 | # Create a new pull request from the backport branch, against the target branch. | COMMENT |
| MEDIUM | src/poetry/mixology/version_solver.py | 415 | # Create a new incompatibility by combining incompatibility with the | COMMENT |
| MEDIUM | src/poetry/repositories/parsers/pypi_search_parser.py | 14 | # The following code was originally written for PDM project | COMMENT |
| MEDIUM | src/poetry/packages/locker.py | 263 | # The following code is roughly equivalent to | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/poetry/mixology/version_solver.py | 611 | except Exception: # noqa: BLE001, S110 | CODE |
| HIGH | src/poetry/installation/uninstaller.py | 252 | except FileNotFoundError: | CODE |
| HIGH | src/poetry/packages/locker.py | 254 | except RuntimeError: | CODE |
| HIGH | src/poetry/packages/locker.py | 111 | except InvalidVersionError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/backport.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | src/poetry/mixology/version_solver.py | 221 | COMMENT | |
| LOW | src/poetry/mixology/version_solver.py | 341 | COMMENT | |
| LOW | src/poetry/mixology/version_solver.py | 421 | new_terms = [ | COMMENT |
| LOW | src/poetry/mixology/partial_solution.py | 21 | # total solution. | COMMENT |
| LOW | src/poetry/puzzle/solver.py | 221 | _package.add_dependency(dep) | COMMENT |
| LOW | src/poetry/puzzle/provider.py | 61 | COMMENT | |
| LOW | src/poetry/puzzle/provider.py | 661 | locked = self.get_locked(dep) | COMMENT |
| LOW | src/poetry/puzzle/provider.py | 761 | if not deps or (len(deps) == 1 and deps[0].constraint.is_empty()): | COMMENT |
| LOW | src/poetry/puzzle/provider.py | 1081 | constraint = constraint.intersect(dep.constraint) | COMMENT |
| LOW | src/poetry/plugins/plugin_manager.py | 161 | return | COMMENT |
| LOW | src/poetry/installation/uninstaller.py | 101 | # Create local cache of normalize_path results. Creating an UninstallPathSet | COMMENT |
| LOW | src/poetry/installation/wheel_installer.py | 101 | # Attention: Path.absolute() is not sufficient because it does not | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/plugins/test_plugin_manager.py | 612 | # just use a file dependency so that we do not have to set up a repository | COMMENT |
| MEDIUM | tests/utils/test_dependency_specification.py | 96 | ( # allow several equivalent versions to make test more robust | CODE |
| MEDIUM | src/poetry/installation/uninstaller.py | 107 | # because we are robust against files that may have been deleted | COMMENT |
| LOW | src/poetry/packages/locker.py | 425 | # so we just set both file and hash. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/utils/test_cache.py | 359 | except Exception: # noqa: BLE001 | CODE |
| LOW | src/poetry/mixology/version_solver.py | 611 | except Exception: # noqa: BLE001, S110 | CODE |
| LOW | src/poetry/config/file_config_source.py | 106 | except Exception: | CODE |
| LOW | src/poetry/installation/executor.py | 316 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | src/poetry/installation/executor.py | 725 | except Exception: | CODE |
| LOW | src/poetry/inspection/lazy_wheel.py | 96 | except Exception as e: | CODE |
| LOW | src/poetry/console/logging/io_handler.py | 29 | except Exception: # noqa: BLE001 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/utils/test_download.py | 70 | def handle_request(request: PreparedRequest) -> HttpResponse: | CODE |
| LOW⚡ | tests/utils/test_download.py | 103 | def handle_request(request: PreparedRequest) -> HttpResponse: | CODE |
| LOW⚡ | tests/utils/test_download.py | 121 | def handle_request(request: PreparedRequest) -> tuple[int, dict[str, Any], bytes]: | CODE |
| LOW | tests/utils/test_download.py | 145 | def handle_request(request: PreparedRequest) -> tuple[int, dict[str, Any], bytes]: | CODE |
| LOW | tests/inspection/test_lazy_wheel.py | 130 | def handle_request(request: PreparedRequest) -> HttpResponse: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/poetry/publishing/publisher.py | 64 | # Check if we have a token first | COMMENT |
| LOW | src/poetry/puzzle/provider.py | 1101 | # Set constraint to empty to mark dependency as "not required". | COMMENT |
| LOW | src/poetry/installation/installer.py | 102 | # Check if refresh | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 460 | CODE | |
| LOW | tests/types.py | 56 | CODE | |
| LOW | src/poetry/inspection/info.py | 53 | CODE | |
| LOW | src/poetry/layouts/layout.py | 62 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/pyproject.md | 215 | { name = "John Smith", email = "johnsmith@example.org" }, | CODE |
| LOW | docs/pyproject.md | 216 | { name = "Jane Smith", email = "janesmith@example.org" }, | CODE |