def read(self, size=0): if not self.readable(): raise IOError, 'cannot read' if size: return m2.bio_read(self.bio, size) else: return m2.bio_read(self.bio, m2.bio_ctrl_pending(self.bio))
def __iter__(self): if not self.readable(): raise IOError, "cannot read" data = m2.bio_read(self.bio, 4096) while data: yield data data = m2.bio_read(self.bio, 4096)
def read(self, size=None): if not self.readable(): raise IOError, 'cannot read' if size is None: buf = StringIO() while 1: data = m2.bio_read(self.bio, 4096) if not data: break buf.write(data) return buf.getvalue() elif size == 0: return '' elif size < 0: raise ValueError, 'read count is negative' else: return m2.bio_read(self.bio, size)