Skip to content

Commit

Permalink
Remove __hash__ and __eq__ from OCIContainerEngineConfig using tuple
Browse files Browse the repository at this point in the history
  • Loading branch information
joerick committed Apr 26, 2024
1 parent 291921a commit a36c38d
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 31 deletions.
16 changes: 2 additions & 14 deletions cibuildwheel/oci_container.py
Expand Up @@ -32,7 +32,7 @@
@dataclass(frozen=True)
class OCIContainerEngineConfig:
name: ContainerEngineName
create_args: list[str] = field(default_factory=list)
create_args: tuple[str, ...] = field(default_factory=tuple)
disable_host_mount: bool = False

@staticmethod
Expand All @@ -58,7 +58,7 @@ def from_config_string(config_string: str) -> OCIContainerEngineConfig:
)

return OCIContainerEngineConfig(
name=name, create_args=create_args, disable_host_mount=disable_host_mount
name=name, create_args=tuple(create_args), disable_host_mount=disable_host_mount
)

def options_summary(self) -> str | dict[str, str]:
Expand All @@ -71,18 +71,6 @@ def options_summary(self) -> str | dict[str, str]:
"disable_host_mount": str(self.disable_host_mount),
}

def __eq__(self, value: object) -> bool:
if not isinstance(value, OCIContainerEngineConfig):
return False
return (
self.name == value.name
and self.create_args == value.create_args
and self.disable_host_mount == value.disable_host_mount
)

def __hash__(self) -> int:
return hash((self.name, tuple(self.create_args), self.disable_host_mount))


DEFAULT_ENGINE = OCIContainerEngineConfig("docker")

Expand Down
2 changes: 1 addition & 1 deletion unit_test/linux_build_steps_test.py
Expand Up @@ -89,5 +89,5 @@ def container_engines(step):
assert identifiers(build_steps[3]) == ["cp310-manylinux_x86_64"]
assert before_alls(build_steps[3]) == [""]
assert container_engines(build_steps[3]) == [
OCIContainerEngineConfig(name="docker", create_args=["--privileged"])
OCIContainerEngineConfig(name="docker", create_args=("--privileged",))
]
16 changes: 8 additions & 8 deletions unit_test/oci_container_test.py
Expand Up @@ -340,7 +340,7 @@ def test_create_args_volume(tmp_path: Path, container_engine):
test_mount_dir.mkdir()
(test_mount_dir / "test_file.txt").write_text("1234")
container_engine = OCIContainerEngineConfig(
name="docker", create_args=[f"--volume={test_mount_dir}:/test_mount"]
name="docker", create_args=(f"--volume={test_mount_dir}:/test_mount",)
)

with OCIContainer(
Expand All @@ -356,37 +356,37 @@ def test_create_args_volume(tmp_path: Path, container_engine):
(
"docker",
"docker",
[],
(),
),
(
"docker;create_args:",
"docker",
[],
(),
),
(
"docker;create_args:--abc --def",
"docker",
["--abc", "--def"],
("--abc", "--def"),
),
(
"docker; create_args: --abc --def",
"docker",
["--abc", "--def"],
("--abc", "--def"),
),
(
"name:docker; create_args: --abc --def",
"docker",
["--abc", "--def"],
("--abc", "--def"),
),
(
'docker; create_args: --some-option="value with spaces"',
"docker",
["--some-option=value with spaces"],
("--some-option=value with spaces",),
),
(
'docker; create_args: --some-option="value; with; semicolons" --another-option',
"docker",
["--some-option=value; with; semicolons", "--another-option"],
("--some-option=value; with; semicolons", "--another-option"),
),
],
)
Expand Down
16 changes: 8 additions & 8 deletions unit_test/options_test.py
Expand Up @@ -206,49 +206,49 @@ def test_toml_environment_quoting(tmp_path: Path, toml_assignment, result_value)
(
'container-engine = "podman"',
"podman",
[],
(),
False,
),
(
'container-engine = {name = "podman"}',
"podman",
[],
(),
False,
),
(
'container-engine = "docker; create_args: --some-option"',
"docker",
["--some-option"],
("--some-option",),
False,
),
(
'container-engine = {name = "docker", create-args = ["--some-option"]}',
"docker",
["--some-option"],
("--some-option",),
False,
),
(
'container-engine = {name = "docker", create-args = ["--some-option", "value that contains spaces"]}',
"docker",
["--some-option", "value that contains spaces"],
("--some-option", "value that contains spaces"),
False,
),
(
'container-engine = {name = "docker", create-args = ["--some-option", "value;that;contains;semicolons"]}',
"docker",
["--some-option", "value;that;contains;semicolons"],
("--some-option", "value;that;contains;semicolons"),
False,
),
(
'container-engine = {name = "docker", disable-host-mount = true}',
"docker",
[],
(),
True,
),
(
'container-engine = {name = "docker", disable_host_mount = true}',
"docker",
[],
(),
True,
),
],
Expand Down

0 comments on commit a36c38d

Please sign in to comment.