ACC SHELL
Ńň
q&ÄMc @ s5 d Z d d k Z d d k 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.6/bsddb/dbrecio.pyt __init__# s c C s' | i p d | _ | ` | ` n d S( Ni ( R R R ( R ( ( s# /usr/lib/python2.6/bsddb/dbrecio.pyt close, s
c C s | i o
t d n d S( Ns I/O operation on closed filei ( R t
ValueError( R ( ( s# /usr/lib/python2.6/bsddb/dbrecio.pyt isatty1 s
i c C si | i o
t d n | d j o | | i } n | d j o | | i } 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.6/bsddb/dbrecio.pyt seek6 s
c C s | i o
t d n | i S( Ns I/O operation on closed file( R R R ( R ( ( s# /usr/lib/python2.6/bsddb/dbrecio.pyt tell? s
i˙˙˙˙c C s | i o
t d n | d j o
| i } n t | i | | i } | | i } | i i | i d | i d | d | i } | | _ | 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.6/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§ | i o
t d n | d j o
| i } nA | d j o t t i d n | | i j o
| | _ n | i i | i d d | i
d | i | d | d S( Ns I/O operation on closed filei s Negative size not allowedt R R R ( R R R R t IOErrort errnot EINVALR t putR R R ( R t size( ( s# /usr/lib/python2.6/bsddb/dbrecio.pyt truncater s
c C s¸ | i o
t d n | p d S| i | i j o. | i i d | i | i | i | _ n | i t | } | i i | i | d | i d t | d | i | | _ d S( Ns I/O operation on closed filet R R R (
R R R R t buflistt appendR R R R ( R t sR ( ( s# /usr/lib/python2.6/bsddb/dbrecio.pyt write~ s
4c C s | i t i | d d S( NR ( R% t stringt
joinfields( R t list( ( s# /usr/lib/python2.6/bsddb/dbrecio.pyt
writelines s c C s | i o
t d n d S( Ns I/O operation on closed file( R R ( R ( ( s# /usr/lib/python2.6/bsddb/dbrecio.pyt flush s
N( t __name__t
__module__R R
R R
R R R t _DBRecIO__fixmeR R% R) R* ( ( ( s# /usr/lib/python2.6/bsddb/dbrecio.pyR "