class_docstr: Input that is send through a pipe.
  This is useful if we want to send the input programmatically into the
  application. Mostly useful for unit testing.
  
  Usage::
  
      with PosixPipeInput.create() as input:
          input.send_text('inputdata')
class_docstr_tok: ["Input","that","is","send","through","a","pipe",".","This","is","useful","if","we","want","to","send","the","input","programmatically","into","the","application",".","Mostly","useful","for","unit","testing",".","Usage",":",":","with","PosixPipeInput.create","(",")","as","input",":","input.send_text","(","'inputdata","'",")"]
docstr: Close pipe fds.
docstr_tok: ["Close","pipe","fds","."]
code: def close(self) -> None:
      "Close pipe fds."
      # Only close the write-end of the pipe. This will unblock the reader
      # callback (in vt100.py > _attached_input), which eventually will raise
      # `EOFError`. If we'd also close the read-end, then the event loop
      # won't wake up the corresponding callback because of this.
      self.pipe.close_write()
  
imports: from __future__ import annotations
  import sys
  import os
  from contextlib import contextmanager
  from typing import ContextManager, Iterator, TextIO, cast
  from ..utils import DummyContext
  from .base import PipeInput
  from .vt100 import Vt100Input
label_desc: Use image node_id 7 for calling the PosixPipeInput obj's underlying member method code with example usage: obj.close() without return types