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)