Update of /cvsroot/tmda/tmda/TMDA
In directory usw-pr-cvs1:/tmp/cvs-serv24340/TMDA
Modified Files:
ChangeLog Util.py
Log Message:
Bugfix. Util.build_cdb() wasn't using a unique name for ftmp when
doing a cdbmake. As a result, simultaneous cdbmakes could result in a
truncated cdb file.
Reported by Brian Lalor in <[EMAIL PROTECTED]> on
tmda-users.
Thanks to MJ Pomraning (python-cdb author) for his off-line
disagnosis of the problem.
Index: ChangeLog
===================================================================
RCS file: /cvsroot/tmda/tmda/TMDA/ChangeLog,v
retrieving revision 1.239
retrieving revision 1.240
diff -u -r1.239 -r1.240
--- ChangeLog 9 Nov 2002 00:56:29 -0000 1.239
+++ ChangeLog 10 Nov 2002 23:21:08 -0000 1.240
@@ -1,3 +1,7 @@
+2002-11-10 Jason R. Mastaler <[EMAIL PROTECTED]>
+
+ * Util.py (build_cdb): Uniquify ftmp when doing cdbmake.
+
2002-11-08 Jason R. Mastaler <[EMAIL PROTECTED]>
* Defaults.py (SUMMARY_HEADERS): New variable.
Index: Util.py
===================================================================
RCS file: /cvsroot/tmda/tmda/TMDA/Util.py,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -r1.72 -r1.73
--- Util.py 1 Nov 2002 22:53:08 -0000 1.72
+++ Util.py 10 Nov 2002 23:21:08 -0000 1.73
@@ -452,7 +452,8 @@
import cdb
try:
cdbname = filename + '.cdb'
- cdb = cdb.cdbmake(cdbname, cdbname + '.tmp')
+ tmpname = os.path.split(tempfile.mktemp())[1]
+ cdb = cdb.cdbmake(cdbname, cdbname + '.' + tmpname)
for line in file_to_list(filename):
linef = line.split()
key = linef[0].lower()
@@ -469,16 +470,15 @@
def build_dbm(filename):
+ """Build a DBM file from a text file."""
import anydbm
import glob
-
try:
- (dbmpath, dbmname) = os.path.split(filename)
+ dbmpath, dbmname = os.path.split(filename)
dbmname += '.db'
tempfile.tempdir = dbmpath
tmpname = tempfile.mktemp()
-
- dbm = anydbm.open(tmpname,'n')
+ dbm = anydbm.open(tmpname, 'n')
for line in file_to_list(filename):
linef = line.split()
key = linef[0].lower()
@@ -488,10 +488,9 @@
value = ''
dbm[key] = value
dbm.close()
-
for f in glob.glob(tmpname + '*'):
(tmppath, tmpname) = os.path.split(tmpname)
- newf = f.replace(tmpname,dbmname)
+ newf = f.replace(tmpname, dbmname)
newf = os.path.join(tmppath, newf)
os.rename(f, newf)
except:
_______________________________________
tmda-cvs mailing list
http://tmda.net/lists/listinfo/tmda-cvs