code: def close(self):
      if self._closed:
          return
      self._closed = True
  
      for proto in self._pipes.values():
          if proto is None:
              continue
          proto.pipe.close()
  
      if (
          self._proc is not None
          and
          # has the child process finished?
          self._returncode is None
          and
          # the child process has finished, but the
          # transport hasn't been notified yet?
          self._proc.poll() is None
      ):
          if self._loop.get_debug():
              logger.warning(
                  "Close running child process: kill %r", self
              )
  
          try:
              self._proc.kill()
          except ProcessLookupError:
              pass
  
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 7 for calling the BaseSubprocessTransport obj's underlying member method code with example usage: obj.close() without return types