Source code for seaworthy.utils

from docker.models.containers import ExecResult


[docs]def output_lines(output, encoding='utf-8', error_exc=None): """ Convert bytestring container output or the result of a container exec command into a sequence of unicode lines. :param output: Container output bytes or an :class:`docker.models.containers.ExecResult` instance. :param encoding: The encoding to use when converting bytes to unicode (default ``utf-8``). :param error_exc: Optional exception to raise if ``output`` is an ``ExecResult`` with a nonzero exit code. :returns: list[str] """ if isinstance(output, ExecResult): exit_code, output = output if exit_code != 0 and error_exc is not None: raise error_exc(output.decode(encoding)) return output.decode(encoding).splitlines()