src/pyams_utils/registry.py
changeset 437 b5131bd64de7
parent 419 05ff71a02b2d
equal deleted inserted replaced
436:f7154a8ec9eb 437:b5131bd64de7
   236                 if len(provides) == 1:
   236                 if len(provides) == 1:
   237                     provides = provides[0]
   237                     provides = provides[0]
   238                 else:
   238                 else:
   239                     raise TypeError("Missing 'provides' argument")
   239                     raise TypeError("Missing 'provides' argument")
   240 
   240 
   241             config = context.config.with_package(info.module)  # pylint: disable=no-member
       
   242             LOGGER.debug("Registering utility {0} named '{1}' providing {2}".format(
   241             LOGGER.debug("Registering utility {0} named '{1}' providing {2}".format(
   243                 str(component) if component else str(factory),
   242                 str(component) if component else str(factory),
   244                 settings.get('name', ''),
   243                 settings.get('name', ''),
   245                 str(provides)))
   244                 str(provides)))
   246             registry = settings.get('registry', config.registry)
   245             registry = settings.get('registry')
       
   246             if registry is None:
       
   247                 config = context.config.with_package(info.module)  # pylint: disable=no-member
       
   248                 registry = config.registry
   247             registry.registerUtility(component=component, factory=factory,
   249             registry.registerUtility(component=component, factory=factory,
   248                                      provided=provides, name=settings.get('name', ''))
   250                                      provided=provides, name=settings.get('name', ''))
   249 
   251 
   250         info = self.venusian.attach(wrapped, callback, category='pyams_utility',
   252         info = self.venusian.attach(wrapped, callback, category='pyams_utility',
   251                                     depth=depth + 1)
   253                                     depth=depth + 1)