Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions hermeto/core/package_managers/pip/__init__.py

This file was deleted.

4 changes: 4 additions & 0 deletions hermeto/core/package_managers/python/pip/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# SPDX-License-Identifier: GPL-3.0-only
Comment thread
mohamedbouchtout marked this conversation as resolved.
from hermeto.core.package_managers.python.pip.main import fetch_pip_source

__all__ = ["fetch_pip_source"]
Original file line number Diff line number Diff line change
Expand Up @@ -31,19 +31,19 @@
extract_git_info,
get_vcs_qualifiers,
)
from hermeto.core.package_managers.pip.package_distributions import (
from hermeto.core.package_managers.python.pip.package_distributions import (
DistributionPackageInfo,
process_package_distributions,
)
from hermeto.core.package_managers.pip.packages import (
from hermeto.core.package_managers.python.pip.packages import (
PipPackage,
PipPackageInfo,
PyPIPackage,
URLPackage,
VCSPackage,
)
from hermeto.core.package_managers.pip.project_files import PyProjectTOML, SetupCFG, SetupPY
from hermeto.core.package_managers.pip.requirements import (
from hermeto.core.package_managers.python.pip.project_files import PyProjectTOML, SetupCFG, SetupPY
from hermeto.core.package_managers.python.pip.requirements import (
ALL_FILE_EXTENSIONS,
SDIST_FILE_EXTENSIONS,
WHEEL_FILE_EXTENSION,
Expand All @@ -53,7 +53,7 @@
validate_requirements,
validate_requirements_hashes,
)
from hermeto.core.package_managers.pip.rust import (
from hermeto.core.package_managers.python.pip.rust import (
filter_packages_with_rust_code,
find_and_fetch_rust_dependencies,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
from hermeto.core.config import get_config
from hermeto.core.errors import FetchError, PackageRejected
from hermeto.core.models.input import PipBinaryFilters
from hermeto.core.package_managers.pip.requirements import PipRequirement
from hermeto.core.package_managers.python.pip.requirements import PipRequirement
from hermeto.core.rooted_path import RootedPath

log = logging.getLogger(__name__)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
from hermeto.core.models.input import CargoPackageInput, Request
from hermeto.core.models.output import EnvironmentVariable, ProjectFile, RequestOutput
from hermeto.core.package_managers.cargo import fetch_cargo_source
from hermeto.core.package_managers.pip.packages import PipPackage
from hermeto.core.package_managers.pip.project_files import PyProjectTOML, SetupCFG, SetupPY
from hermeto.core.package_managers.pip.requirements import WHEEL_FILE_EXTENSION
from hermeto.core.package_managers.python.pip.packages import PipPackage
from hermeto.core.package_managers.python.pip.project_files import PyProjectTOML, SetupCFG, SetupPY
from hermeto.core.package_managers.python.pip.requirements import WHEEL_FILE_EXTENSION
from hermeto.core.rooted_path import RootedPath

log = logging.getLogger(__name__)
Expand Down
2 changes: 1 addition & 1 deletion hermeto/core/resolver.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
generic,
gomod,
maven,
pip,
rpm,
)
from hermeto.core.package_managers.javascript import metayarn, npm, pnpm
from hermeto.core.package_managers.python import pip
from hermeto.core.rooted_path import RootedPath
from hermeto.core.utils import copy_directory

Expand Down
Empty file.
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
)
from hermeto.core.models.input import CargoPackageInput, Request
from hermeto.core.package_managers.cargo.main import PackageWithCorruptLockfileRejected
from hermeto.core.package_managers.pip import main as pip
from hermeto.core.package_managers.pip.packages import PipPackageInfo, URLPackage, VCSPackage
from hermeto.core.package_managers.python.pip import main as pip
from hermeto.core.package_managers.python.pip.packages import PipPackageInfo, URLPackage, VCSPackage
from hermeto.core.rooted_path import RootedPath
from tests.common_utils import GIT_REF

Expand Down Expand Up @@ -101,7 +101,7 @@ def test_get_pip_metadata_from_project_file(
mock_target: str,
rooted_tmp_path: RootedPath,
) -> None:
with mock.patch(f"hermeto.core.package_managers.pip.main.{mock_target}") as mock_cls:
with mock.patch(f"hermeto.core.package_managers.python.pip.main.{mock_target}") as mock_cls:
instance = mock_cls.return_value
instance.exists.return_value = True
instance.get_name.return_value = "foo"
Expand All @@ -112,9 +112,9 @@ def test_get_pip_metadata_from_project_file(
assert version == "0.1.0"


@mock.patch("hermeto.core.package_managers.pip.main.PyProjectTOML")
@mock.patch("hermeto.core.package_managers.pip.main.SetupCFG")
@mock.patch("hermeto.core.package_managers.pip.main.SetupPY")
@mock.patch("hermeto.core.package_managers.python.pip.main.PyProjectTOML")
@mock.patch("hermeto.core.package_managers.python.pip.main.SetupCFG")
@mock.patch("hermeto.core.package_managers.python.pip.main.SetupPY")
def test_extract_metadata_from_config_files_with_fallbacks(
mock_setup_py: mock.Mock,
mock_setup_cfg: mock.Mock,
Expand Down Expand Up @@ -175,9 +175,9 @@ def test_extract_metadata_from_config_files_with_fallbacks(
"origin_exists",
[True, False],
)
@mock.patch("hermeto.core.package_managers.pip.main.PyProjectTOML")
@mock.patch("hermeto.core.package_managers.pip.main.SetupPY")
@mock.patch("hermeto.core.package_managers.pip.main.SetupCFG")
@mock.patch("hermeto.core.package_managers.python.pip.main.PyProjectTOML")
@mock.patch("hermeto.core.package_managers.python.pip.main.SetupPY")
@mock.patch("hermeto.core.package_managers.python.pip.main.SetupCFG")
def test_get_pip_metadata_from_remote_origin(
mock_setup_cfg: mock.Mock,
mock_setup_py: mock.Mock,
Expand Down Expand Up @@ -215,7 +215,7 @@ def test_get_pip_metadata_from_remote_origin(
class TestDownload:
"""Tests for dependency downloading."""

@mock.patch("hermeto.core.package_managers.pip.main.clone_as_tarball")
@mock.patch("hermeto.core.package_managers.python.pip.main.clone_as_tarball")
def test_download_vcs_package(
self,
mock_clone_as_tarball: Any,
Expand Down Expand Up @@ -257,10 +257,10 @@ def test_download_vcs_package(
],
)
@mock.patch(
"hermeto.core.package_managers.pip.main._checksum_must_match_or_path_unlink",
"hermeto.core.package_managers.python.pip.main._checksum_must_match_or_path_unlink",
return_value=True,
)
@mock.patch("hermeto.core.package_managers.pip.main.download_binary_file")
@mock.patch("hermeto.core.package_managers.python.pip.main.download_binary_file")
def test_download_url_package(
self,
mock_download_file: Any,
Expand Down Expand Up @@ -314,10 +314,10 @@ def test_download_url_package(
],
)
@mock.patch(
"hermeto.core.package_managers.pip.main._checksum_must_match_or_path_unlink",
"hermeto.core.package_managers.python.pip.main._checksum_must_match_or_path_unlink",
return_value=True,
)
@mock.patch("hermeto.core.package_managers.pip.main.download_binary_file")
@mock.patch("hermeto.core.package_managers.python.pip.main.download_binary_file")
def test_download_url_package_identifies_wheel_from_url(
self,
mock_download_file: Any,
Expand Down Expand Up @@ -630,7 +630,7 @@ def test_download_rejects_missing_or_malformed_hash(
pytest.param("build_requirement_files", id="build_requirement_files"),
],
)
@mock.patch("hermeto.core.package_managers.pip.main._get_pip_metadata")
@mock.patch("hermeto.core.package_managers.python.pip.main._get_pip_metadata")
def test_resolve_pip_invalid_file_path(
mock_metadata: mock.Mock, rooted_tmp_path: RootedPath, file_kwarg: str
) -> None:
Expand Down Expand Up @@ -805,8 +805,8 @@ def test_generate_purl_main_package(
),
],
)
@mock.patch("hermeto.core.package_managers.pip.main.get_config")
@mock.patch("hermeto.core.package_managers.pip.main.get_repo_id")
@mock.patch("hermeto.core.package_managers.python.pip.main.get_config")
@mock.patch("hermeto.core.package_managers.python.pip.main.get_repo_id")
def test_generate_purl_main_package_permissive_mode_without_vcs_url(
mock_handle_get_repo_id: mock.Mock,
mock_get_config: mock.Mock,
Expand All @@ -830,8 +830,8 @@ def test_generate_purl_main_package_permissive_mode_without_vcs_url(
assert purl == expected_purl


@mock.patch("hermeto.core.package_managers.pip.main.get_config")
@mock.patch("hermeto.core.package_managers.pip.main.get_repo_id")
@mock.patch("hermeto.core.package_managers.python.pip.main.get_config")
@mock.patch("hermeto.core.package_managers.python.pip.main.get_repo_id")
def test_generate_purl_main_package_strict_mode_raises_without_git_repo(
mock_get_repo_id: mock.Mock,
mock_get_config: mock.Mock,
Expand Down Expand Up @@ -865,8 +865,8 @@ def test_generate_purl_main_package_strict_mode_raises_without_git_repo(
),
],
)
@mock.patch("hermeto.core.package_managers.pip.main.get_config")
@mock.patch("hermeto.core.package_managers.pip.main.get_repo_id")
@mock.patch("hermeto.core.package_managers.python.pip.main.get_config")
@mock.patch("hermeto.core.package_managers.python.pip.main.get_repo_id")
@mock.patch("hermeto.core.scm.GitRepo")
def test_generate_purl_main_package_permissive_mode_with_vcs_url(
mock_git_repo: mock.Mock,
Expand Down Expand Up @@ -896,7 +896,7 @@ def test_generate_purl_main_package_permissive_mode_with_vcs_url(
assert purl == expected_purl


@mock.patch("hermeto.core.package_managers.pip.main.get_repo_id")
@mock.patch("hermeto.core.package_managers.python.pip.main.get_repo_id")
def test_infer_package_name_raises_without_git_repo(
mock_handle_get_repo_id: mock.Mock,
rooted_tmp_path: RootedPath,
Expand All @@ -908,8 +908,8 @@ def test_infer_package_name_raises_without_git_repo(


@mock.patch("hermeto.core.scm.GitRepo")
@mock.patch("hermeto.core.package_managers.pip.main._replace_external_requirements")
@mock.patch("hermeto.core.package_managers.pip.main._resolve_pip")
@mock.patch("hermeto.core.package_managers.python.pip.main._replace_external_requirements")
@mock.patch("hermeto.core.package_managers.python.pip.main._resolve_pip")
@mock.patch("hermeto.core.package_managers.cargo.main.run_cmd")
@mock.patch("hermeto.core.package_managers.cargo.main._verify_lockfile_is_present")
def test_fetch_pip_source_correctly_reraises_when_there_is_a_dependency_cargo_lock_mismatch(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@
from hermeto.core.checksum import ChecksumInfo
from hermeto.core.errors import FetchError, PackageRejected
from hermeto.core.models.input import PipBinaryFilters
from hermeto.core.package_managers.pip.package_distributions import (
from hermeto.core.package_managers.python.pip.package_distributions import (
WheelsFilter,
_process_prefer_binary_mode,
_sdist_preference,
process_package_distributions,
)
from hermeto.core.rooted_path import RootedPath
from tests.unit.package_managers.pip.test_main import (
from tests.unit.package_managers.python.pip.test_main import (
mock_distribution_package_info,
mock_requirement,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

from hermeto.core.models.property_semantics import PropertySet
from hermeto.core.models.sbom import PROXY_COMMENT, PROXY_REF_TYPE
from hermeto.core.package_managers.pip.packages import (
from hermeto.core.package_managers.python.pip.packages import (
PyPIPackage,
URLPackage,
VCSPackage,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import pytest

from hermeto.core.errors import BaseError, PackageRejected
from hermeto.core.package_managers.pip.project_files import PyProjectTOML, SetupCFG, SetupPY
from hermeto.core.package_managers.python.pip.project_files import PyProjectTOML, SetupCFG, SetupPY
from hermeto.core.rooted_path import PathOutsideRoot, RootedPath
from tests.common_utils import Symlink, write_file_tree

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@
import pytest

from hermeto.core.errors import UnexpectedFormat, UnsupportedFeature
from hermeto.core.package_managers.pip.requirements import PipRequirement, PipRequirementsFile
from hermeto.core.package_managers.python.pip.requirements import (
PipRequirement,
PipRequirementsFile,
)
from hermeto.core.rooted_path import RootedPath


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import tomlkit

from hermeto.core.models.output import ProjectFile
from hermeto.core.package_managers.pip.rust import (
from hermeto.core.package_managers.python.pip.rust import (
_get_rust_root_dir,
_merge_cargo_config_files,
_shortest_path_parent,
Expand Down