Commit 94805fac authored by Dom Sekotill's avatar Dom Sekotill
Browse files

Fix overload of exec_io

MyPy could not get a geturn type for exec_io, apparently because it
though there might be a default `deserialiser` argument?!
parent 0ac76efc
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -230,7 +230,7 @@ class Container(Item):
			self.start()
			yield self

	def is_running(self) -> bool:
	def is_running(self, raise_on_exit: bool = False) -> bool:
		"""
		Return whether the container is running
		"""
@@ -243,6 +243,10 @@ class Container(Item):
				logging.getLogger(__name__).warning(
					f"container {self.cid} exited ({code})",
				)
			if raise_on_exit:
				cmd = details.path("$.Config.Entrypoint", list[str])
				cmd.extend(details.path("$.Config.Cmd", list[str]))
				raise CalledProcessError(code, cmd)
		return (
			self.cid is not None
			and details.path('$.State.Running', bool)
@@ -596,9 +600,9 @@ class Cli:
		cmd = self.container.get_exec_args([*self.cmd, *args], interactive=bool(data))

		if deserialiser:
			return exec_io(cmd, data, deserialiser=deserialiser, **kwargs)
			return exec_io(cmd, data=data, deserialiser=deserialiser, **kwargs)

		rcode = exec_io(cmd, data, **kwargs)
		rcode = exec_io(cmd, data=data, **kwargs)
		if query:
			return rcode
		if not isinstance(rcode, int):
+4 −4
Original line number Diff line number Diff line
@@ -51,16 +51,16 @@ def coerce_args(args: Arguments) -> Iterator[str]:

@overload
def exec_io(
	cmd: Arguments,
	cmd: Arguments, *,
	data: bytes = b'',
	deserialiser: Deserialiser[T] = ...,
	deserialiser: Deserialiser[T],
	**kwargs: Any,
) -> T: ...


@overload
def exec_io(
	cmd: Arguments,
	cmd: Arguments, *,
	data: bytes = b'',
	deserialiser: None = None,
	**kwargs: Any,
@@ -68,7 +68,7 @@ def exec_io(


def exec_io(
	cmd: Arguments,
	cmd: Arguments, *,
	data: bytes = b'',
	deserialiser: Deserialiser[Any]|None = None,
	**kwargs: Any,