Skip to content

Commit 79bbb9a

Browse files
committed
Small but helpful improvements in checksrc; some clean-up as suggested by this tool.
1 parent 685acfb commit 79bbb9a

35 files changed

+321
-316
lines changed

CGIWrapper/CGIWrapper.py

+19-16
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,10 @@
1010

1111
# We first record the starting time, in case we're being run as a CGI script.
1212
from time import time, localtime, asctime
13-
serverStartTime = time()
13+
serverStartTime = time()
1414

1515
# Some imports
1616
import cgi, os, sys, traceback
17-
from types import ClassType, DictType, FloatType
1817
from random import randint
1918
try:
2019
from cStringIO import StringIO
@@ -118,7 +117,7 @@ def userConfig(self):
118117
config = f.read()
119118
config = eval('dict(%s)' % config)
120119
f.close()
121-
assert isinstance(config, DictType)
120+
assert isinstance(config, dict)
122121
return config
123122

124123
def config(self):
@@ -231,8 +230,9 @@ def writeScriptLog(self):
231230
values = []
232231
for column in self.setting('ScriptLogColumns'):
233232
value = valueForName(self, column)
234-
if isinstance(value, FloatType):
235-
value = '%0.4f' % value # might need more flexibility in the future
233+
if isinstance(value, float):
234+
# might need more flexibility in the future
235+
value = '%0.4f' % value
236236
else:
237237
value = str(value)
238238
values.append(value)
@@ -257,17 +257,18 @@ def handleException(self, excInfo):
257257
self._scriptEndTime = time()
258258
self.logExceptionToConsole()
259259
self.reset()
260-
print self.htmlErrorPage(showDebugInfo=self.setting('ShowDebugInfoOnErrors'))
260+
print self.htmlErrorPage(
261+
showDebugInfo=self.setting('ShowDebugInfoOnErrors'))
261262
fullErrorMsg = None
262263
if self.setting('SaveErrorMessages'):
263-
fullErrorMsg = self.htmlErrorPage(showDebugInfo=1)
264+
fullErrorMsg = self.htmlErrorPage(showDebugInfo=True)
264265
filename = self.saveHTMLErrorPage(fullErrorMsg)
265266
else:
266267
filename = ''
267268
self.logExceptionToDisk(filename)
268269
if self.setting('EmailErrors'):
269270
if fullErrorMsg is None:
270-
fullErrorMsg = self.htmlErrorPage(showDebugInfo=1)
271+
fullErrorMsg = self.htmlErrorPage(showDebugInfo=True)
271272
self.emailException(fullErrorMsg)
272273

273274
def logExceptionToConsole(self, stderr=sys.stderr):
@@ -279,7 +280,8 @@ def logExceptionToConsole(self, stderr=sys.stderr):
279280
280281
"""
281282
# stderr logging
282-
stderr.write('[%s] [error] CGI Wrapper: Error while executing script %s\n' % (
283+
stderr.write('[%s] [error] CGI Wrapper:'
284+
' Error while executing script %s\n' % (
283285
asctime(localtime(self._scriptEndTime)), self._scriptPathname))
284286
traceback.print_exc(file=stderr)
285287

@@ -291,7 +293,8 @@ def reset(self):
291293
Currently resets headers and deletes cookies, if present.
292294
293295
"""
294-
# Set headers to basic text/html. We don't want stray headers from a script that failed.
296+
# Set headers to basic text/html. We don't want stray headers
297+
# from a script that failed.
295298
self._headers = self.makeHeaders()
296299
# Get rid of cookies, too
297300
if 'cookies' in self._namespace:
@@ -300,8 +303,8 @@ def reset(self):
300303
def htmlErrorPage(self, showDebugInfo=True):
301304
"""Return an HTML page explaining that there is an error.
302305
303-
There could be more options in the future so using named arguments
304-
(e.g., 'showDebugInfo=1') is recommended. Invoked by handleException().
306+
There could be more options in the future, so using named arguments
307+
(e.g. showDebugInfo=False) is recommended. Invoked by handleException().
305308
306309
"""
307310
html = ['''%s
@@ -387,16 +390,16 @@ def logExceptionToDisk(self, errorMsgFilename=None, excInfo=None):
387390
if not excInfo:
388391
excInfo = sys.exc_info()
389392
err, msg = excInfo[:2]
390-
if isinstance(err, ClassType):
391-
err, msg = err.__name__, str(msg)
392-
else: # string exception
393+
if isinstance(err, basestring): # string exception
393394
err, msg = '', str(msg or err)
395+
else:
396+
err, msg = err.__name__, str(msg)
394397
logline = (asctime(localtime(self._scriptEndTime)),
395398
os.path.split(self._scriptPathname)[1], self._scriptPathname,
396399
err, msg, errorMsgFilename or '')
397400
def fixElement(element):
398401
element = str(element)
399-
if element.find(',') >= 0 or element.find('"') >= 0:
402+
if ',' in element or '"' in element:
400403
element = element.replace('"', '""')
401404
element = '"%s"' % element
402405
return element

CGIWrapper/_dumpCSV.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,15 @@ def title(self):
4545
def writeBody(self):
4646
rows = LoadCSV(self._filename)
4747

48-
self.writeln('<table align="center" border="0" cellpadding="2" cellspacing="2">')
48+
self.writeln('<table align="center"'
49+
' border="0" cellpadding="2" cellspacing="2">')
4950

5051
# Head row gets special formatting
5152
self._headings = map(lambda name: name.strip(), rows[0])
5253
self.writeln('<tr>')
5354
for value in self._headings:
54-
self.writeln('<th style="color:white;font-family:Arial,Helvetica,sans-serif" bgcolor="#101040">',
55+
self.writeln('<th style="color:white;'
56+
'font-family:Arial,Helvetica,sans-serif" bgcolor="#101040">',
5557
value, '</th>')
5658
self.writeln('</tr>')
5759

COMKit/__init__.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ def InstallInWebKit(appServer):
2727

2828
# Set references to the COM initialize and uninitialize functions
2929
appServer._initCOM = pythoncom.COINIT_MULTITHREADED
30-
appServer.initCOM = pythoncom.CoInitializeEx
31-
appServer.closeCOM = pythoncom.CoUninitialize
30+
appServer.initCOM = pythoncom.CoInitializeEx
31+
appServer.closeCOM = pythoncom.CoUninitialize
3232

3333
# Monkey-patch this instance of the appServer
3434

DocSupport/.checksrc.config

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# checksrc.config
22
{
3-
'SkipFiles': ['autotoc', 'pytp', 'py2html']
3+
'SkipFiles': ['autotoc', 'buildhtml', 'pytp', 'py2html']
44
}

MiddleKit/Core/Klass.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ def __init__(self, klassContainer, rawDict=None):
2929
self._attrsByName = {}
3030
self._superklass = None
3131
self._subklasses = []
32-
self._pyClass = False # False means never computed. None would mean computed, but not found.
32+
# False means never computed; None would mean computed, but not found:
33+
self._pyClass = False
3334
self._backObjRefAttrs = None
3435
self._allAttrs = None
3536
if rawDict is not None:

MiddleKit/Core/Klasses.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -197,4 +197,5 @@ def dump(self):
197197
print klass
198198

199199
def debugString(self):
200-
return '<%s 0x%x model=%r>' % (self.__class__.__name__, id(self), getattr(self, '_model', '(none)'))
200+
return '<%s 0x%x model=%r>' % (self.__class__.__name__,
201+
id(self), getattr(self, '_model', '(none)'))

MiddleKit/Core/ObjRefAttr.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ def objRefJoin(klassId, serialNum):
77

88
def objRefSplit(objRef):
99
"""Return a tuple with (klassId, serialNum) given the 64-bit (e.g., long type) objRef."""
10-
return ((objRef & 0xFFFFFFFF00000000L) >> 32, objRef & 0xFFFFFFFFL)
10+
return (objRef & 0xFFFFFFFF00000000L) >> 32, objRef & 0xFFFFFFFFL
1111

1212

1313
class ObjRefAttr(Attr):
@@ -34,5 +34,6 @@ def awakeFromRead(self):
3434
self._targetKlass = self.model().klass(self.targetClassName(), None)
3535
if not self._targetKlass:
3636
from Model import ModelError
37-
raise ModelError('class %s: attr %s: cannot locate target class %s for this obj ref.' % (
37+
raise ModelError('class %s: attr %s:'
38+
'cannot locate target class %s for this obj ref.' % (
3839
self.klass().name(), self.name(), self.targetClassName()))

MiddleKit/Design/Doc.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -74,17 +74,17 @@ def generateHTML(self):
7474
''' % self.destStyleSheetFilename)
7575

7676
wr('<div class="head1">%s Model (MiddleKit)</div>\n'
77-
% self.model.name())
77+
% self.model.name())
7878
wr('Generated on %s <br>\n' % time.asctime())
7979
wr('From %s <br>\n' % self.model.filename())
8080

8181
wr('<br>\n')
8282

8383
wr('<table border="0" cellpadding="2" cellspacing="2">\n')
8484
wr('<tr class="Class">'
85-
'<td class="ClassName" colspan="3">Classes</td></tr>\n')
85+
'<td class="ClassName" colspan="3">Classes</td></tr>\n')
8686
wr('<tr class="AttrTitles"><td class=AttrTitles>In Alpha Order</td>'
87-
'<td class="AttrTitles">In Inheritance Order</td></tr>\n')
87+
'<td class="AttrTitles">In Inheritance Order</td></tr>\n')
8888
wr('<tr><td valign=top>\n')
8989
klasses = self.model.allKlassesInOrder()[:]
9090
klasses.sort(lambda a, b: cmp(a.name().lower(), b.name().lower()))
@@ -120,7 +120,7 @@ def generateHTML(self):
120120
wr('<table border="0" cellpadding="3" cellspacing="0">\n')
121121
if klass.get('isAbstract'):
122122
wr('<tr><td valign="top">abstract:</td>'
123-
'<td valign="top">yes</td></tr>\n')
123+
'<td valign="top">yes</td></tr>\n')
124124
wr('<tr><td valign="top">ancestors:</td><td valign="top">')
125125
ancestor = klass.superklass()
126126
if ancestor:

MiddleKit/Design/Generate.py

+13-9
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,19 @@ def usage(self, errorMsg=None):
5555
progName = os.path.basename(sys.argv[0])
5656
if errorMsg:
5757
print '%s: error: %s' % (progName, errorMsg)
58-
print 'Usage: %s --db DBNAME --model FILENAME [--sql] [--py] [--config FILENAME] [--outdir DIRNAME]' % progName
59-
print ' %s -h | --help' % progName
60-
print
61-
print ' * Known databases include: %s' % ', '.join(self.databases())
62-
print ' * If neither --sql nor --py are specified, both are generated.'
63-
print ' * If --outdir is not specified, then the base filename (sans extension) is used.'
64-
print ' * --config lets you specify a different config filename inside the model.'
65-
print ' This is mostly useful for the regression test suite.'
66-
print
58+
print
59+
print '''\
60+
Usage: %s --db DBNAME --model FILENAME \\
61+
[--sql] [--py] [--config FILENAME] [--outdir DIRNAME]
62+
%s -h | --help
63+
64+
* Known databases include: %s.
65+
* If neither --sql nor --py are specified, both are generated.
66+
* If --outdir is not specified,
67+
then the base filename (sans extension) is used.
68+
* --config lets you specify a different config filename inside the model.
69+
This is mostly useful for the regression test suite.
70+
''' % (progName, progName, ', '.join(self.databases()))
6771
sys.exit(1)
6872

6973
def options(self, args):

MiddleKit/Design/PythonGenerator.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,8 @@ def writePyAccessors(self, out):
205205
self.writePyGet(out)
206206
self.writePySet(out)
207207
if self.setting('AccessorStyle', 'methods') == 'properties':
208-
out.write('\n\n %s = property(%s, %s)\n\n' % (self.name(), self.pyGetName(), self.pySetName()))
208+
out.write('\n\n %s = property(%s, %s)\n\n' % (
209+
self.name(), self.pyGetName(), self.pySetName()))
209210

210211
def writePyGet(self, out):
211212
out.write('''
@@ -396,7 +397,8 @@ def %(getName)sString(self):
396397
''' % locals())
397398
if self.setting('AccessorStyle', 'methods') == 'properties':
398399
out.write('\n\n %(name)sString = property(%(getName)sString,'
399-
' "Returns the string form of %(name)s (instead of the integer value).")\n\n' % locals())
400+
' "Returns the string form of %(name)s'
401+
' (instead of the integer value).")\n\n' % locals())
400402

401403
def writePySetChecks(self, out):
402404
Attr.writePySetChecks.im_func(self, out)

MiddleKit/Design/SQLGenerator.py

+5-17
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class SQLGenerator(CodeGenerator):
4949
useDatabaseSQL()
5050
StringAttr
5151
EnumAttr
52-
52+
5353
"""
5454

5555
def sqlDatabaseName(self):
@@ -244,10 +244,9 @@ def writeInsertSamplesSQLForLines(self, lines, generator, file, filename):
244244
try:
245245
refByAttr = attr.targetKlass().lookupAttr(refByAttrName)
246246
except KeyError:
247-
raise SampleError(linenum,
248-
"Attribute %r of class %r has a 'by' of %r,"
249-
" but no such attribute can be found in target class %r."
250-
% (name, klass.name(),
247+
raise SampleError(linenum, "Attribute %r of class %r"
248+
" has a 'by' of %r, but no such attribute can be"
249+
" found in target class %r." % (name, klass.name(),
251250
refByAttrName, attr.targetKlass().name()))
252251
attr.refByAttr = refByAttr
253252
else:
@@ -627,19 +626,8 @@ def writeCreateSQL(self, generator, out):
627626
else:
628627
out.write(' /* %(Name)s %(Type)s - not a SQL column */' % self)
629628
except Exception:
630-
bar = '*'*78
631-
print
632-
print bar
633-
print 'exception for attribute:'
629+
print 'Exception for attribute:'
634630
print '%s.%s' % (self.klass().name(), self.name())
635-
print
636-
try:
637-
from pprint import pprint
638-
pprint(self.data)
639-
except Exception:
640-
pass
641-
print bar
642-
print
643631
raise
644632

645633
def writeRealCreateSQLColumn(self, generator, out):

MiddleKit/Run/MSSQLObjectStore.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,10 @@ def newConnection(self):
6161
args = self._dbArgs.copy()
6262
if args.get('DriverConnect'):
6363
# @@ problem here is that clear_auto_commit can't be set to zero
64-
# example: storeArgs = {'DriverConnect': 'DRIVER=SQL Server;UID=echuck;Trusted_Connection=Yes;WSID=ALIEN;SERVER=ALIEN'}
64+
# example: storeArgs = {'DriverConnect': 'DRIVER=SQL Server;'
65+
# 'UID=echuck;Trusted_Connection=Yes;WSID=ALIEN;SERVER=ALIEN'}
6566
# ODBC driver connection keywords are documented here:
66-
# http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbcsql/od_odbc_d_4x4k.asp
67+
# http://msdn.microsoft.com/de-de/library/ms131421.aspx
6768
s = args['DriverConnect']
6869
if 'DATABASE=' not in s:
6970
if not s.endswith(';'):

MiddleKit/Run/MiddleObject.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,8 @@ def readStoreData(self, store, row):
118118

119119
self._mk_initing = False
120120
self._mk_inStore = True
121-
self._mk_changed = False # setting the values above will have caused this to be set; clear it now
121+
# setting the values above will cause _mk_changed to be set
122+
self._mk_changed = False # clear it now
122123
finally:
123124
self._mk_cacheLock.release()
124125
return self

MiddleKit/Run/ObjectStore.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -267,10 +267,12 @@ def _deleteObject(self, obj, objectsToDel, detaches, superobject=None):
267267
if v:
268268
if superobject:
269269
cascadeString = 'cascade-'
270-
dueTo = ' due to deletion of %s.%i' % (superobject.klass().name(), superobject.serialNum())
270+
dueTo = ' due to deletion of %s.%i' % (
271+
superobject.klass().name(), superobject.serialNum())
271272
else:
272273
cascadeString = dueTo = ''
273-
print 'checking %sdelete of %s.%d%s' % (cascadeString, obj.klass().name(), obj.serialNum(), dueTo)
274+
print 'checking %sdelete of %s.%d%s' % (
275+
cascadeString, obj.klass().name(), obj.serialNum(), dueTo)
274276

275277
objectsToDel[id(obj)] = obj
276278

MiddleKit/Run/SQLObjectStore.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,8 @@ def fetchObject(self, aClass, serialNum, default=NoDefault):
359359
assert count == 1
360360
return objects[0]
361361

362-
def fetchObjectsOfClass(self, aClass, clauses='', isDeep=True, refreshAttrs=True, serialNum=None):
362+
def fetchObjectsOfClass(self, aClass,
363+
clauses='', isDeep=True, refreshAttrs=True, serialNum=None):
363364
"""Fetch a list of objects of a specific class.
364365
365366
The list may be empty if no objects are found.
@@ -390,15 +391,16 @@ def fetchObjectsOfClass(self, aClass, clauses='', isDeep=True, refreshAttrs=True
390391
deepObjs = []
391392
if isDeep:
392393
for subklass in klass.subklasses():
393-
deepObjs.extend(self.fetchObjectsOfClass(subklass, clauses, isDeep, refreshAttrs, serialNum))
394+
deepObjs.extend(self.fetchObjectsOfClass(
395+
subklass, clauses, isDeep, refreshAttrs, serialNum))
394396

395397
# Now get objects of this exact class
396398
objs = []
397399
if not klass.isAbstract():
398400
fetchSQLStart = klass.fetchSQLStart()
399401
className = klass.name()
400402
if serialNum is not None:
401-
serialNum = int(serialNum) # make sure it's a valid int (suppose it came in as a string: 'foo')
403+
serialNum = int(serialNum) # make sure it's a valid int
402404
clauses = 'where %s=%d' % (klass.sqlSerialColumnName(), serialNum)
403405
if self._markDeletes:
404406
clauses = self.addDeletedToClauses(clauses)
@@ -1041,7 +1043,7 @@ def sqlForNonNone(self, value):
10411043
if self.setting('UseBigIntObjRefColumns', False):
10421044
return str(value.sqlObjRef())
10431045
else:
1044-
return (str(value.klass().id()), str(value.serialNum()))
1046+
return str(value.klass().id()), str(value.serialNum())
10451047

10461048
def sqlUpdateExpr(self, value):
10471049
"""Return update assignments.

MiddleKit/Tests/MKDateTime.mkmodel/TestEmpty.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ def testMXDateTime(store):
6565
from mx.DateTime import DateTimeFrom, TimeFrom
6666
print 'Testing with mx.DateTime module.'
6767

68-
d = DateTimeFrom('2001-06-07')
69-
t = TimeFrom('12:42')
68+
d = DateTimeFrom('2001-06-07')
69+
t = TimeFrom('12:42')
7070
dt = DateTimeFrom('2001-06-07 12:42')
7171

7272
f = Foo()
@@ -76,8 +76,8 @@ def testMXDateTime(store):
7676

7777
storeFoo(store, f)
7878

79-
d = DateTimeFrom('2002-11-11')
80-
t = TimeFrom('16:04')
79+
d = DateTimeFrom('2002-11-11')
80+
t = TimeFrom('16:04')
8181
dt = DateTimeFrom('2002-11-11 16:04')
8282

8383
f.setD(d)

0 commit comments

Comments
 (0)