diff --git a/Control/AthenaConfiguration/python/ComponentAccumulator.py b/Control/AthenaConfiguration/python/ComponentAccumulator.py index a4d253ad2baec563cbdc4a79d1974ded0e38629c..d100edbfac63e9c88f16d2c3e2626862530ec70e 100644 --- a/Control/AthenaConfiguration/python/ComponentAccumulator.py +++ b/Control/AthenaConfiguration/python/ComponentAccumulator.py @@ -7,7 +7,7 @@ from AthenaCommon.AlgSequence import AthSequencer from AthenaConfiguration.AthConfigFlags import AthConfigFlags import GaudiKernel.GaudiHandles as GaudiHandles -from GaudiKernel.GaudiHandles import PublicToolHandle, PublicToolHandleArray, ServiceHandle, PrivateToolHandle +from GaudiKernel.GaudiHandles import PublicToolHandle, PublicToolHandleArray, ServiceHandle, PrivateToolHandle, PrivateToolHandleArray import ast import collections @@ -72,10 +72,13 @@ class ComponentAccumulator(object): continue propstr = str(propval) - if propval.__class__ == PublicToolHandleArray: - ths = [str(th) for th in propval] + if isinstance(propval,PublicToolHandleArray): + ths = [th.getFullName() for th in propval] propstr = "PublicToolHandleArray([ {0} ])".format(', '.join(ths)) - elif ConfigurableAlgTool in propval.__class__.__bases__: + elif isinstance(propval,PrivateToolHandleArray): + ths = [th.getFullName() for th in propval] + propstr = "PrivateToolHandleArray([ {0} ])".format(', '.join(ths)) + elif isinstance(propval,ConfigurableAlgTool): propstr = propval.getFullName() self._msg.info( " "*nestLevel +" * {0}: {1}".format(propname,propstr) ) return @@ -426,7 +429,7 @@ class ComponentAccumulator(object): existingAlg = findAlgorithm( dest, c.name(), depth=1 ) if existingAlg: if existingAlg != c: # if it is the same we can just skip it, else this indicates an error - raise ConfigurationError( "Duplicate algorithm %s in source and destination sequences %s" % ( c.name(), src.name() ) ) + raise ConfigurationError( "Duplicate algorithm %s in source and destination sequences %s" % ( c.name(), src.name() ) ) else: # absent, adding self._msg.debug(" Merging algorithm %s to a sequence %s", c.name(), dest.name() ) dest += c