3232
3333class _Database :
3434
35- def __init__ (self , file ):
35+ def __init__ (self , file , mode ):
36+ self ._mode = mode
3637 self ._dirfile = file + _os .extsep + 'dir'
3738 self ._datfile = file + _os .extsep + 'dat'
3839 self ._bakfile = file + _os .extsep + 'bak'
3940 # Mod by Jack: create data file if needed
4041 try :
4142 f = _open (self ._datfile , 'r' )
4243 except IOError :
43- f = _open (self ._datfile , 'w' )
44+ f = _open (self ._datfile , 'w' , self . _mode )
4445 f .close ()
4546 self ._update ()
4647
@@ -63,7 +64,7 @@ def _commit(self):
6364 except _os .error : pass
6465 try : _os .rename (self ._dirfile , self ._bakfile )
6566 except _os .error : pass
66- f = _open (self ._dirfile , 'w' )
67+ f = _open (self ._dirfile , 'w' , self . _mode )
6768 for key , (pos , siz ) in self ._index .items ():
6869 f .write ("%s, (%s, %s)\n " % (`key` , `pos` , `siz` ))
6970 f .close ()
@@ -100,7 +101,7 @@ def _setval(self, pos, val):
100101
101102 def _addkey (self , key , (pos , siz )):
102103 self ._index [key ] = (pos , siz )
103- f = _open (self ._dirfile , 'a' )
104+ f = _open (self ._dirfile , 'a' , self . _mode )
104105 f .write ("%s, (%s, %s)\n " % (`key` , `pos` , `siz` ))
105106 f .close ()
106107
@@ -146,6 +147,6 @@ def close(self):
146147 self ._datfile = self ._dirfile = self ._bakfile = None
147148
148149
149- def open (file , flag = None , mode = None ):
150+ def open (file , flag = None , mode = 0666 ):
150151 # flag, mode arguments are currently ignored
151- return _Database (file )
152+ return _Database (file , mode )
0 commit comments