Python exception while running softbounce.py in OpenEMM 2013
Posted: Fri Jun 07, 2013 9:07 am
We just stumbled over some Python exceptions while running softbounce.py:
Seems that in agn.py calls to DBCursor.reformat and DBCursor.cleanup in the methods DBCursor.query and DBCursor.update should be swapped to work as expected.
Diff output of our changes to agn.py:
By changing these lines no more exceptions are thrown while running softbounce.py
Can somebody confirm these changes are useful, please.
Code: Select all
CAUGHT EXCEPTION:
Traceback (most recent call last):
File "bin/scripts/softbounce.py", line 167, in <module>
data = scurs.querys (squery, parm, cleanup = True)
File "/home/openemm-2013/bin/scripts/agn.py", line 2065, in querys
for rec in self.query (req, parm, cleanup, rtype):
File "/home/openemm-2013/bin/scripts/agn.py", line 2028, in query
self.curs.execute (req, parm)
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 159, in execute
query = query % db.literal(args)
TypeError: not enough arguments for format string
Diff output of our changes to agn.py:
Code: Select all
$ diff -c3 original/agn.py updated/agn.py
*** original/agn.py 2013-02-05 16:58:12.000000000 +0100
--- updated/agn.py 2013-06-07 09:58:04.823461818 +0200
***************
*** 2009,2018 ****
if self.log: self.log ('Query: %s' % req)
self.curs.execute (req)
else:
- if self.needReformat:
- (req, parm) = self.reformat (req, parm)
if cleanup:
parm = self.cleanup (req, parm)
if self.log: self.log ('Query: %s using %s' % (req, parm))
self.curs.execute (req, parm)
if self.log: self.log ('Query started')
--- 2009,2018 ----
if self.log: self.log ('Query: %s' % req)
self.curs.execute (req)
else:
if cleanup:
parm = self.cleanup (req, parm)
+ if self.needReformat:
+ (req, parm) = self.reformat (req, parm)
if self.log: self.log ('Query: %s using %s' % (req, parm))
self.curs.execute (req, parm)
if self.log: self.log ('Query started')
***************
*** 2095,2104 ****
if self.log: self.log ('Update: %s' % req)
self.curs.execute (req)
else:
- if self.needReformat:
- (req, parm) = self.reformat (req, parm)
if cleanup:
parm = self.cleanup (req, parm)
if self.log: self.log ('Update: %s using %r' % (req, parm))
self.curs.execute (req, parm)
if self.log: self.log ('Update affected %d rows' % self.curs.rowcount)
--- 2095,2104 ----
if self.log: self.log ('Update: %s' % req)
self.curs.execute (req)
else:
if cleanup:
parm = self.cleanup (req, parm)
+ if self.needReformat:
+ (req, parm) = self.reformat (req, parm)
if self.log: self.log ('Update: %s using %r' % (req, parm))
self.curs.execute (req, parm)
if self.log: self.log ('Update affected %d rows' % self.curs.rowcount)
Can somebody confirm these changes are useful, please.