docs: def flush(self, n=4096):
          """
          Flush `n` bytes of data from the reader Stream to the writer Stream.
  
          Returns the number of bytes that were actually flushed. A return value
          of zero is not an error.
  
          If EOF has been reached, `None` is returned.
          """
  
          try:
              read = self.from_stream.read(n)
  
              if read is None or len(read) == 0:
                  self.eof = True
                  if self.propagate_close:
                      self.to_stream.close()
                  return None
  
              return self.to_stream.write(read)
          except OSError as e:
              if e.errno != errno.EPIPE:
                  raise e