class SubclassableCStringIO(object): """A wrapper around cStringIO to allow for subclassing""" __csio = None def __init__(self, *a, **kw): from cStringIO import StringIO self.__csio = StringIO(*a, **kw) def __iter__(self): return self.__csio.__iter__() def next(self): return self.__csio.next() def close(self): return self.__csio.close() def isatty(self): return self.__csio.isatty() def seek(self, pos, mode=0): return self.__csio.seek(pos, mode) def tell(self): return self.__csio.tell() def read(self, n=-1): return self.__csio.read(n) def readline(self, length=None): return self.__csio.readline(length) def readlines(self, sizehint=0): return self.__csio.readlines(sizehint) def truncate(self, size=None): return self.__csio.truncate(size) def write(self, s): return self.__csio.write(s) def writelines(self, list): return self.__csio.writelines(list) def flush(self): return self.__csio.flush() def getvalue(self): return self.__csio.getvalue()
class StringIO(object): def __init__(self, stringio = None): self.encoding = None self.stringio_object = stringio if self.stringio_object is None: self.stringio_object = WrappedStringIO() def close (self): return self.stringio_object.close() def closed(self, x): return self.stringio_object.closed(x) def flush(self): return self.stringio_object.flush() def getvalue(self, use_pos=None): return self.stringio_object.getvalue(use_pos) def isatty(self): return self.stringio_object.isatty() def next(self): return self.stringio_object.next() def read(self, s=None): return self.stringio_object.read(s) def readline(self): return self.stringio_object.readline() def readlines(self): return self.stringio_object.readlines() def reset(self): return self.stringio_object.reset() def seek(self, position): return self.stringio_object.seek(position) def softspace(self, x, base = None): return self.stringio_object.softspace(x, base) def tell(self): return self.stringio_object.tell() def truncate(self): return self.stringio_object.truncate() def write(self, s): return self.stringio_object.write(s) def writelines(self, sequence_of_strings): return self.stringio_object.writelines(sequence_of_strings)
class SubclassableCStringIO(object): """ A wrapper around cStringIO to allow for subclassing. """ __csio = None def __init__(self, *a, **kw): from cStringIO import StringIO self.__csio = StringIO(*a, **kw) def __iter__(self): return self.__csio.__iter__() def next(self): return self.__csio.next() def close(self): return self.__csio.close() def isatty(self): return self.__csio.isatty() def seek(self, pos, mode=0): return self.__csio.seek(pos, mode) def tell(self): return self.__csio.tell() def read(self, n=-1): return self.__csio.read(n) def readline(self, length=None): return self.__csio.readline(length) def readlines(self, sizehint=0): return self.__csio.readlines(sizehint) def truncate(self, size=None): return self.__csio.truncate(size) def write(self, s): return self.__csio.write(s) def writelines(self, list): return self.__csio.writelines(list) def flush(self): return self.__csio.flush() def getvalue(self): return self.__csio.getvalue()
class RO_StringIO: def __init__(self, name, str=''): self.__sio = StringIO(str) self.closed = 0 self.mode = 'r' self.name = name def read(self, n=-1): return self.__sio.read(n) def readline(self, length=None): return self.__sio.readline(length) def readlines(self, sizehint=0): return self.__sio.readlines(sizehint) def xreadlines(self): return xreadlines(self.__sio) def close(self): self.__sio.close() self.closed = 1 def flush(self): raise VFSException, "unsupported operation: truncate" def isatty(self): return self.__sio.isatty() def seek(self, pos, mode=0): self.__sio.seek(pos, mode) def tell(self): return self.__sio.tell() def truncate(self, size=None): raise VFSException, "unsupported operation: truncate" def write(self, s): raise VFSException, "unsupported operation: write" def writelines(self, list): raise VFSException, "unsupported operation: writelines"
class RO_StringIO: def __init__(self, name, str=''): self.__sio=StringIO(str) self.closed=0 self.mode='r' self.name=name def read(self, n=-1): return self.__sio.read(n) def readline(self, length=None): return self.__sio.readline(length) def readlines(self, sizehint=0): return self.__sio.readlines(sizehint) def close(self): self.__sio.close() self.closed=1 def flush(self): raise VFSException, "unsupported operation: flush" def isatty(self): return self.__sio.isatty() def seek(self, pos, mode=0): self.__sio.seek(pos, mode) def tell(self): return self.__sio.tell() def truncate(self, size=None): raise VFSException, "unsupported operation: truncate" def write(self, s): raise VFSException, "unsupported operation: write" def writelines(self, list): raise VFSException, "unsupported operation: writelines" def __iter__(self): return self.readlines().__iter__()
class DataIO(object): def __init__(self, f): if isinstance(f,file): self.f=f elif isinstance(f,str): self.f=StringIO(f) else: raise TypeError def __getitem__(self,i): self.f.seek(i.start,0) return self.f.read(i.stop-i.start) def read(self,size=-1): return self.f.read(size) def readline(self,size=-1): return self.f.readline(size) def readlines(self,size=-1): return self.f.readlines(size) def xreadlines(self,size=-1): return self.f.xreadlines(size) def write(self,s): return self.f.write(s) def writelines(self,l): return self.f.writelines(l) def seek(self,offset,whence=0): return self.f.seek(offset,whence) def tell(self): return self.f.tell() def flush(self): return self.f.flush() def fileno(self): return self.f.fileno() def isatty(self): return self.f.isatty() def next(self): return self.f.next() def truncate(self,size=0): return self.f.truncate(size) def close(self): return self.f.close() @property def closed(self): return self.f.closed @property def encoding(self): return self.f.encoding @property def errors(self): return self.f.errors @property def mode(self): return self.f.mode @property def name(self): try: return self.f.name except AttributeError: return self.f.getvalue() filename = name @property def newlines(self): return self.f.newlines @property def softspace(self): return self.f.softspace
class DataIO(object): def __init__(self, f): if isinstance(f, file): self.f = f elif isinstance(f, str): self.f = StringIO(f) else: raise TypeError def __getitem__(self, i): self.f.seek(i.start, 0) return self.f.read(i.stop - i.start) def read(self, size=-1): return self.f.read(size) def readline(self, size=-1): return self.f.readline(size) def readlines(self, size=-1): return self.f.readlines(size) def xreadlines(self, size=-1): return self.f.xreadlines(size) def write(self, s): return self.f.write(s) def writelines(self, l): return self.f.writelines(l) def seek(self, offset, whence=0): return self.f.seek(offset, whence) def tell(self): return self.f.tell() def flush(self): return self.f.flush() def fileno(self): return self.f.fileno() def isatty(self): return self.f.isatty() def next(self): return self.f.next() def truncate(self, size=0): return self.f.truncate(size) def close(self): return self.f.close() @property def closed(self): return self.f.closed @property def encoding(self): return self.f.encoding @property def errors(self): return self.f.errors @property def mode(self): return self.f.mode @property def name(self): try: return self.f.name except AttributeError: return self.f.getvalue() filename = name @property def newlines(self): return self.f.newlines @property def softspace(self): return self.f.softspace