diff --git a/podman/domain/containers_run.py b/podman/domain/containers_run.py index dda445a5..7ab60f97 100644 --- a/podman/domain/containers_run.py +++ b/podman/domain/containers_run.py @@ -25,7 +25,7 @@ def run( stderr=False, remove: bool = False, **kwargs, - ) -> Union[Container, Union[Generator[str, None, None], Iterator[str]]]: + ) -> Union[Container, Union[Generator[bytes, None, None], Iterator[bytes]]]: """Run a container. By default, run() will wait for the container to finish and return its logs. @@ -66,20 +66,22 @@ def run( APIError: when Podman service reports an error """ if isinstance(image, Image): - image = image.id + image_id = image.id + else: + image_id = image if isinstance(command, str): command = [command] try: - container = self.create(image=image, command=command, **kwargs) + container = self.create(image=image_id, command=command, **kwargs) # type: ignore[attr-defined] except ImageNotFound: - self.podman_client.images.pull( - image, + self.podman_client.images.pull( # type: ignore[attr-defined] + image_id, auth_config=kwargs.get("auth_config"), platform=kwargs.get("platform"), policy=kwargs.get("policy", "missing"), ) - container = self.create(image=image, command=command, **kwargs) + container = self.create(image=image_id, command=command, **kwargs) # type: ignore[attr-defined] container.start() container.reload() @@ -116,6 +118,6 @@ def remove_container(container_object: Container) -> None: container.remove() if exit_status != 0: - raise ContainerError(container, exit_status, command, image, log_iter) + raise ContainerError(container, exit_status, command, image_id, log_iter) - return log_iter if kwargs.get("stream", False) or log_iter is None else b"".join(log_iter) + return log_iter if kwargs.get("stream", False) or log_iter is None else b"".join(log_iter) # type: ignore[return-value] diff --git a/podman/errors/exceptions.py b/podman/errors/exceptions.py index f92d886c..0f237627 100644 --- a/podman/errors/exceptions.py +++ b/podman/errors/exceptions.py @@ -115,7 +115,7 @@ def __init__( exit_status: int, command: Union[str, list[str]], image: str, - stderr: Optional[Iterable[str]] = None, + stderr: Optional[Iterable[bytes]] = None, ): # pylint: disable=too-many-positional-arguments """Initialize ContainerError. diff --git a/pyproject.toml b/pyproject.toml index 9f8effc9..ac2846ab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -141,7 +141,6 @@ module = [ "podman.domain.config", "podman.domain.containers", "podman.domain.containers_create", - "podman.domain.containers_run", "podman.domain.events", "podman.domain.images_build", "podman.domain.images_manager",