code: def read(self, nbytes: int = 0) -> bytes:
          
          if nbytes == 0 or len(self.output) <= nbytes:
              data = bytes(self.output)
              del self.output[:]
              return data
          data = bytes(self.output[:nbytes])
          del self.output[:nbytes]
          return data
docs: read *at most* ``nbytes``