code: def _try_finish(self):
      assert not self._finished
      if self._returncode is None:
          return
      if all(
          p is not None and p.disconnected for p in self._pipes.values()
      ):
          self._finished = True
          self._call(self._call_connection_lost, None)
  
imports: import collections
  import subprocess
  import warnings
  from .None import protocols
  from .None import transports
  from .log import logger
label_desc: Use image node_id 20 for calling the BaseSubprocessTransport obj's underlying member method code with example usage: obj._try_finish() without return types