/usr/src/WrapITK/Python/Tests/findEmptyClasses.py is in libinsighttoolkit3-dev 3.20.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | import itk, re, sys
# itk.auto_progress(True)
from itkTemplate import itkTemplate
# sets are not in builtin with python older than 2.4
import sets
set = sets.Set
# dirty but easier: a global var to count the empty classes
count = 0
def exploreTpl(tpl):
for cl in tpl.itervalues():
exploreMethods(cl)
# try to instanciate the class
try :
obj = cl.New()
exploreMethods(obj)
except:
pass
try :
exploreMethods(cl())
except:
pass
def exploreMethods(obj):
global count
excludeList = ['this', 'thisown']
attrNameList = [i for i in dir(obj) if isinstance(i, str) and i[0].isupper() and i not in excludeList]
if attrNameList == [] :
count += 1
print obj
excluded = set([
"PeriodicBoundaryCondition",
"BandNode",
"DefaultDynamicMeshTraits",
"DefaultStaticMeshTraits",
"NormalBandNode",
"ZeroFluxNeumannBoundaryCondition",
])
attrNameList = set([i for i in dir(itk) if i[0].isupper() and len(i) > 2]) - excluded
for name in attrNameList:
# use it because of lazy loading
exec "attr = itk."+name
# print "-----------", name, "-----------"
if isinstance(attr, itkTemplate) :
exploreTpl(attr)
else :
exploreMethods(attr)
try :
exploreMethods(cl.New())
except:
pass
try :
exploreMethods(cl())
except:
pass
sys.exit(count)
|