o ,W @sdZddlmZddlmZddlmZddlmZddl m Z ddZ Gd d d eZ eeGd d d eZ e d ZzddlmZWn eyMYnwedd[eZddZde fddZdde fddZdddZdddZdS)zGlobal components support ) implementer)AdapterRegistry) Components)IComponentLookup)_BLANKcCs t||SN)getattr) components registryNamer ?/usr/lib/python3/dist-packages/zope/component/globalregistry.pyGARs r cs(eZdZdZfddZddZZS)GlobalAdapterRegistryz~A global adapter registry This adapter registry's main purpose is to be picklable in combination with a site manager.cs||_||_tt|dSr) __parent____name__superr__init__)selfparentname __class__r r r szGlobalAdapterRegistry.__init__cCst|j|jffSr)r rrrr r r __reduce__%sz GlobalAdapterRegistry.__reduce__)r __module__ __qualname____doc__rr __classcell__r r rr rs rc@seZdZddZddZdS)BaseGlobalComponentscCst|d|_t|d|_dS)Nadapters utilities)rrr rr r r _init_registries+s z%BaseGlobalComponents._init_registriescCs|jSr)rrr r r r/szBaseGlobalComponents.__reduce__N)rrrr!rr r r r r(s rbase) addCleanUpcCs tdS)Nr")r"rr r r r :s r$cCstSr)globalSiteManagerr r r r getGlobalSiteManager>sr&NcCtj|||dddSNF)event)r"registerUtility) componentprovidesrr r r provideUtilityEr-cCstj||||dddSr()r"registerAdapter)factoryadaptsr,rr r r provideAdapterHsr2cCr'r()r"registerSubscriptionAdapter)r0r1r,r r r provideSubscriptionAdapterKr.r4cCstj||dddSr()r"registerHandler)r0r1r r r provideHandlerNsr6)NNr)rzope.interfacerzope.interface.adapterrzope.interface.registryrzope.component.interfacesrzope.component._compatrr rrr"zope.testing.cleanupr# ImportErrorr%r&r-r2r4r6r r r r s0