import subprocess as _subprocess import sys as _sys import typing as _t def try_wait(timeout: _t.Optional[float]) -> None: try: result: _subprocess.CompletedProcess = _subprocess.run( ['sh', '-c', 'echo "Start" ; sleep 2 ; echo "Done"'], text=True, stdout=_subprocess.PIPE, timeout=timeout, ) except _subprocess.TimeoutExpired as exc: print(f'Timeout STDOUT Type: {type(exc.stdout)}') print(f'Timeout STDOUT Content: {exc.stdout!r}') else: print(f'Completed STDOUT Type: {type(result.stdout)}') print(f'Completed STDOUT Content: {result.stdout!r}') print(f'Version and interpreter information: {_sys.implementation}') try_wait(None) try_wait(1)