def execute(self, factory, config, infos, **kw): if not infos: return False infos = infos.values() for info in infos: if info.public and not IContainer.implementedBy(factory): raise GrokError( "Cannot set public to True with grok.local_utility as " "the site (%r) is not a container." % factory, factory) # Store the list of info objects in their "natural" order on the # site class. They will be picked up by a subscriber doing the # actual registrations in definition order. factory.__grok_utilities_to_install__ = sorted(infos) adapts = (factory, IObjectAddedEvent) config.action( discriminator=None, callable=grokcore.component.provideHandler, args=(localUtilityRegistrationSubscriber, adapts), ) return True
def execute(self, factory, config, infos, install_on, **kw): if not infos: return False infos = infos.values() for info in infos: if info.public and not IContainer.implementedBy(factory): raise GrokError( "Cannot set public to True with grok.local_utility as " "the site (%r) is not a container." % factory, factory) # Store the list of info objects in their "natural" order on the # site class. They will be picked up by a subscriber doing the # actual registrations in definition order. factory.__grok_utilities_to_install__ = sorted(infos) adapts = (factory, install_on) config.action( discriminator=None, callable=grokcore.component.provideHandler, args=(localUtilityRegistrationSubscriber, adapts), ) return True