Files
PowerToys/PythonHome/Lib/bsddb/dbrecio.pyc

69 lines
5.0 KiB
Plaintext
Raw Normal View History

2014-07-09 18:15:23 +08:00
<03>
<EFBFBD>W`Sc@s5dZddlZddlZddd<00><00>YZdS(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<EFBFBD><EFBFBD><EFBFBD><EFBFBD>NtDBRecIOcBsteZd d<00>Zd<00>Zd<00>Zdd<00>Zd<00>Zdd<00>ZdZ d d <00>Z
d
<00>Z d <00>Z d <00>Z RS(cCsC||_||_||_d|_d|_d|_d|_dS(Ni(tdbtkeyttxntNonetlentpostclosedt softspace(tselfRRR((s.\Lib\bsddb\dbrecio.pyt__init__#s      cCs%|js!d|_|`|`ndS(Ni(RRR(R ((s.\Lib\bsddb\dbrecio.pytclose,s  cCs|jrtd<00>ndS(NsI/O operation on closed filei(Rt
ValueError(R ((s.\Lib\bsddb\dbrecio.pytisatty1s  icCsc|jrtd<00>n|dkr1||j}n|dkrM||j}ntd|<00>|_dS(NsI/O operation on closed fileiii(RR RRtmax(R Rtmode((s.\Lib\bsddb\dbrecio.pytseek6s    cCs|jrtd<00>n|jS(NsI/O operation on closed file(RR R(R ((s.\Lib\bsddb\dbrecio.pyttell?s  i<><69><EFBFBD><EFBFBD>cCs<>|jrtd<00>n|dkr-|j}nt|j||j<00>}||j}|jj|jd|jd|d|j<00>}||_|S(NsI/O operation on closed fileiRtdlentdoff( RR RtminRRtgetRR(R tntnewposRtr((s.\Lib\bsddb\dbrecio.pytreadDs     - 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 Cs<>|jrtd<00>n|dkr-|j}n<|dkrNttjd<00><00>n||jkri||_n|jj|j dd|j
d|j |d|<00>dS(NsI/O operation on closed fileisNegative size not allowedtRRR( RR RRtIOErrorterrnotEINVALRtputRRR(R tsize((s.\Lib\bsddb\dbrecio.pyttruncaters        c Cs<>|jrtd<00>n|sdS|j|jkr^|jjd|j|j<14>|j|_n|jt|<00>}|jj|j|d|j dt|<00>d|j<00>||_dS(NsI/O operation on closed filetRRR(
RR RRtbuflisttappendRRRR(R tsR((s.\Lib\bsddb\dbrecio.pytwrite~s  4cCs|jtj|d<00><00>dS(NR(R%tstringt
joinfields(R tlist((s.\Lib\bsddb\dbrecio.pyt
writelines<65>scCs|jrtd<00>ndS(NsI/O operation on closed file(RR (R ((s.\Lib\bsddb\dbrecio.pytflush<73>s N(t__name__t
__module__RR
R R RRRt_DBRecIO__fixmeR R%R)R*(((s.\Lib\bsddb\dbrecio.pyR"s    , ((t__doc__RR&R(((s.\Lib\bsddb\dbrecio.pyt<module>s  <13>