#!/usr/bin/env python3
+# © Copyright 2021-2022, Scott Gasch
+
+"""Helper methods concerned with executing subprocesses."""
+
import atexit
import logging
import os
import sys
from typing import List, Optional
-
logger = logging.getLogger(__file__)
stderr=subprocess.PIPE,
universal_newlines=False,
) as p:
- sel.register(p.stdout, selectors.EVENT_READ)
- sel.register(p.stderr, selectors.EVENT_READ)
+ sel.register(p.stdout, selectors.EVENT_READ) # type: ignore
+ sel.register(p.stderr, selectors.EVENT_READ) # type: ignore
done = False
while not done:
for key, _ in sel.select():
- char = key.fileobj.read(1)
+ char = key.fileobj.read(1) # type: ignore
if not char:
sel.unregister(key.fileobj)
if len(sel.get_map()) == 0:
def kill_subproc() -> None:
try:
if subproc.poll() is None:
- logger.info(f'At exit handler: killing {subproc} ({command})')
+ logger.info('At exit handler: killing %s (%s)', subproc, command)
subproc.terminate()
subproc.wait(timeout=10.0)
except BaseException as be: