View file File name : dbrecio.pyc Content :� �bc @ s5 d Z d d l Z d d l Z d d d � � YZ d S( s� File-like objects that read from or write to a bsddb record. This implements (nearly) all stdio methods. f = DBRecIO(db, key, txn=None) f.close() # explicitly release resources held flag = f.isatty() # always false pos = f.tell() # get current position f.seek(pos) # set current position f.seek(pos, mode) # mode 0: absolute; 1: relative; 2: relative to EOF buf = f.read() # read until EOF buf = f.read(n) # read up to n bytes f.truncate([size]) # truncate file at to at most size (default: current pos) f.write(buf) # write at current position f.writelines(list) # for line in list: f.write(line) Notes: - fileno() is left unimplemented so that code which uses it triggers an exception early. - There's a simple test set (see end of this file) - not yet updated for DBRecIO. - readline() is not implemented yet. From: Itamar Shtull-Trauring <itamar@maxnm.com> i����Nt DBRecIOc B st e Z d d � Z d � Z d � Z d d � Z d � Z d d � Z d Z d d � Z d � Z d � Z d � Z RS( c C sC | | _ | | _ | | _ d | _ d | _ d | _ d | _ d S( Ni ( t dbt keyt txnt Nonet lent post closedt softspace( t selfR R R ( ( s# /usr/lib/python2.7/bsddb/dbrecio.pyt __init__# s c C s% | j s! d | _ | ` | ` n d S( Ni ( R R R ( R ( ( s# /usr/lib/python2.7/bsddb/dbrecio.pyt close, s c C s | j r t d � n d S( Ns I/O operation on closed filei ( R t ValueError( R ( ( s# /usr/lib/python2.7/bsddb/dbrecio.pyt isatty1 s i c C sc | j r t d � n | d k r1 | | j } n | d k rM | | j } n t d | � | _ d S( Ns I/O operation on closed filei i i ( R R R R t max( R R t mode( ( s# /usr/lib/python2.7/bsddb/dbrecio.pyt seek6 s c C s | j r t d � n | j S( Ns I/O operation on closed file( R R R ( R ( ( s# /usr/lib/python2.7/bsddb/dbrecio.pyt tell? s i����c C s� | j r t d � n | d k r- | j } n t | j | | j � } | | j } | j j | j d | j d | d | j �} | | _ | S( Ns I/O operation on closed filei R t dlent doff( R R R t minR R t getR R ( R t nt newposR t r( ( s# /usr/lib/python2.7/bsddb/dbrecio.pyt readD s - s| def readline(self, length=None): if self.closed: raise ValueError, "I/O operation on closed file" if self.buflist: self.buf = self.buf + string.joinfields(self.buflist, '') self.buflist = [] i = string.find(self.buf, ' ', self.pos) if i < 0: newpos = self.len else: newpos = i+1 if length is not None: if self.pos + length < newpos: newpos = self.pos + length r = self.buf[self.pos:newpos] self.pos = newpos return r def readlines(self, sizehint = 0): total = 0 lines = [] line = self.readline() while line: lines.append(line) total += len(line) if 0 < sizehint <= total: break line = self.readline() return lines c C s� | j r t d � n | d k r- | j } n<