tzh
2024-08-22 c7d0944258c7d0943aa7b2211498fd612971ce27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
X\¬Qc@s5dZddlZddlZddd„ƒ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ÿÿÿÿNtDBRecIOcBsteZd d„Zd„Zd„Zdd„Zd„Zdd„ZdZ    d d    „Z
d
„Z d „Z d „Z RS(cCsC||_||_||_d|_d|_d|_d|_dS(Ni(tdbtkeyttxntNonetlentpostclosedt    softspace(tselfRRR((sU/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/dbrecio.pyt__init__#s                        cCs%|js!d|_|`|`ndS(Ni(RRR(R    ((sU/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/dbrecio.pytclose,s        cCs|jrtd‚ndS(NsI/O operation on closed filei(Rt
ValueError(R    ((sU/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/dbrecio.pytisatty1s     icCsc|jrtd‚n|dkr1||j}n|dkrM||j}ntd|ƒ|_dS(NsI/O operation on closed fileiii(RR RRtmax(R    Rtmode((sU/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/dbrecio.pytseek6s       cCs|jrtd‚n|jS(NsI/O operation on closed file(RR R(R    ((sU/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/dbrecio.pyttell?s     iÿÿÿÿcCs|jrtd‚n|dkr-|j}nt|j||jƒ}||j}|jj|jd|jd|d|jƒ}||_|S(NsI/O operation on closed fileiRtdlentdoff(    RR RtminRRtgetRR(R    tntnewposRtr((sU/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/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‚n|dkr-|j}n<|dkrNttjdƒ‚n||jkri||_n|jj|j    dd|j
d|j |d|ƒdS(NsI/O operation on closed fileisNegative size not allowedtRRR( RR RRtIOErrorterrnotEINVALRtputRRR(R    tsize((sU/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/dbrecio.pyttruncaters              c    Cs²|jrtd‚n|sdS|j|jkr^|jjd|j|jƒ|j|_n|jt|ƒ}|jj|j|d|j    dt|ƒd|jƒ||_dS(NsI/O operation on closed filetRRR(
RR RRtbuflisttappendRRRR(R    tsR((sU/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/dbrecio.pytwrite~s     4cCs|jtj|dƒƒdS(NR(R%tstringt
joinfields(R    tlist((sU/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/dbrecio.pyt
writelines‰scCs|jrtd‚ndS(NsI/O operation on closed file(RR (R    ((sU/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/dbrecio.pytflushŒs    N(t__name__t
__module__RR
R R RRRt_DBRecIO__fixmeR R%R)R*(((sU/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/dbrecio.pyR"s                     ,        ((t__doc__RR&R(((sU/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/dbrecio.pyt<module>s  œ