79 """a script to check the definitions of (reflex) plugins
80 across multiple so-called 'rootmap' files
85 print (
"::: chk-rflx :::")
88 import PyUtils.Dso
as Dso
91 'TMath' : (
'libCore.so',
'libMathCore.so'),
92 'string': (
'libGaudiKernelDict.so',
94 'liblcg_PyCoolDict.so',
96 '__pf__::CNV_71_9631': (
'libDataModelTestDataReadCnvPoolCnv.so',
97 'libDataModelTestDataWriteCnvPoolCnv.so',),
98 '__pf__::CNV_71_9632': (
'libDataModelTestDataReadCnvPoolCnv.so',
99 'libDataModelTestDataWriteCnvPoolCnv.so',),
100 '__pf__::CNV_71_9633': (
'libDataModelTestDataReadCnvPoolCnv.so',
101 'libDataModelTestDataWriteCnvPoolCnv.so',),
102 '__pf__::CNV_71_9634': (
'libDataModelTestDataReadCnvPoolCnv.so',
103 'libDataModelTestDataWriteCnvPoolCnv.so',),
104 '__pf__::CNV_71_9639': (
'libDataModelTestDataReadCnvPoolCnv.so',
105 'libDataModelTestDataWriteCnvPoolCnv.so',),
107 '__pf__::RootCollection': (
'liblcg_RootCollection.so',
108 'libAthAnalysisTools.so',),
114 def print_db( db, detailedDump = False ):
115 if detailedDump : fct =
lambda x: x
116 else: fct = os.path.basename
129 if args.capabilities:
130 libname = args.capabilities
132 capabilities = dsodb.capabilities(libname)
133 print (
"::: capabilities of [%s]" % (libname,))
134 print (os.linesep.join([
" %s"%c
for c
in capabilities]))
140 libname = args.chk_dups
142 print (
"::: checking duplicates for [%s]..." % (libname,))
143 dups = dsodb.duplicates(libname, pedantic=args.pedantic)
146 print (os.linesep.join([
" %s"%v
for v
in dups[k]]))
147 if len(dups.keys())>0:
153 if args.dump_content:
154 print (
"::: dumping content of all known plugins...")
155 entries = dsodb.content(pedantic=args.pedantic)
156 print_db(entries, args.detailed_dump)
157 print (
"::: known entries:",len(entries.keys()))
160 print (
"::: dumping all known libraries...")
161 libs = dsodb.libs(detailedDump=args.detailed_dump)
164 print (
"::: known libs:",len(libs))
167 print (
"::: dumping all known dso/rootmap files...")
168 dso_files = [dso
for dso
in dsodb.dsoFiles]
170 for dso_file
in dso_files:
171 if not args.detailed_dump:
172 dso_file = os.path.basename(dso_file)
173 print (
" -",dso_file)
174 print (
"::: known dsos:",len(dso_files))
176 if args.check_dict_dups:
177 print (
":: checking dict. duplicates...")
178 dups = dsodb.dictDuplicates(pedantic=args.pedantic)
183 if k
in _suppression_dct:
184 suppressed = [os.path.basename(ii)
in _suppression_dct[k]
187 suppression_log.append(k[:])
196 print_db(dups, args.detailed_dump)
197 if len(suppression_log):
199 print (
"## ignoring the following dups':")
200 for k
in suppression_log:
203 print (
"## all dups:",len(dups.keys()))
204 print (
"## dups:",len(dups.keys())-len(suppression_log))
206 if args.check_pf_dups:
207 print (
"::: checking (plugin factories) components dups...")
208 dups = dsodb.pfDuplicates(pedantic=args.pedantic)
213 if k
in _suppression_dct:
214 suppressed = [os.path.basename(ii)
in _suppression_dct[k]
217 suppression_log.append(k[:])
226 print_db(dups, args.detailed_dump)
227 if len(suppression_log):
229 print (
"## ignoring the following dups':")
230 for k
in suppression_log:
233 print (
"## all dups:",len(dups.keys()))
234 print (
"## dups:",len(dups.keys())-len(suppression_log))
236 if args.check_all_dups:
237 print (
"::: checking all components dups...")
238 dups = dsodb.pfDuplicates(pedantic=args.pedantic)
239 dups.update(dsodb.dictDuplicates(pedantic=args.pedantic))
245 if k
in _suppression_dct:
246 suppressed = [os.path.basename(ii)
in _suppression_dct[k]
249 suppression_log.append(k[:])
258 print_db(dups, args.detailed_dump)
259 if len(suppression_log):
261 print (
"## ignoring the following dups':")
262 for k
in suppression_log:
265 print (
"## all dups:",len(dups.keys()))
266 print (
"## dups:",len(dups.keys())-len(suppression_log))
269 print (
"::: ERROR !!")
271 print (
"::: All good.")