diff --git a/src/python/jw/pkg/lib/base.py b/src/python/jw/pkg/lib/base.py index 8e417da2..a627d750 100644 --- a/src/python/jw/pkg/lib/base.py +++ b/src/python/jw/pkg/lib/base.py @@ -1,7 +1,7 @@ from __future__ import annotations from enum import Enum, auto -from typing import NamedTuple, TypeAlias, TYPE_CHECKING +from typing import TYPE_CHECKING, NamedTuple, TypeAlias if TYPE_CHECKING: import os @@ -54,6 +54,23 @@ class Result: def encoding(self, value: str) -> None: self.__encoding = value + def __stdout_footprint(self, quote = False) -> str: + if self.__stdout is None: + ret = '' + else: + ret = self.stdout_str[:20] + if quote: + ret = '"{ret}"' + return ret + + def __repr__(self) -> str: + ret = f'{self.__status}:' + if self.status != 0: + ret += f' err: {self.stderr_str_or_none}' + else: + ret += f' out: {self.__stdout_footprint(quote=True)}' + return ret + @property def strip(self) -> bool: return self.__strip