diff options
author | Jason Madden <jamadden@gmail.com> | 2021-03-18 13:40:26 -0500 |
---|---|---|
committer | Jason Madden <jamadden@gmail.com> | 2021-03-18 13:40:26 -0500 |
commit | 7a1d3c575104608d4081553b216e95e3797bbbb2 (patch) | |
tree | a90c8c7ea60f84409f4f863c7a55284943db7510 /src/zope/component/interface.py | |
parent | 950b4a47655ccfbb9016c72add622cc74318a952 (diff) | |
download | zope-component-issue10.tar.gz |
Fix provideInterface et al to use the current site manager.issue10
instead of always the global site manager.
Fixes #10
Diffstat (limited to 'src/zope/component/interface.py')
-rw-r--r-- | src/zope/component/interface.py | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/zope/component/interface.py b/src/zope/component/interface.py index 35fecbe..2317149 100644 --- a/src/zope/component/interface.py +++ b/src/zope/component/interface.py @@ -16,14 +16,19 @@ from zope.interface import alsoProvides from zope.interface.interfaces import IInterface -from zope.component.globalregistry import getGlobalSiteManager from zope.interface.interfaces import ComponentLookupError +from zope.component._api import getSiteManager from zope.component._api import queryUtility from zope.component._compat import CLASS_TYPES def provideInterface(id, interface, iface_type=None, info=''): - """ Mark 'interface' as a named utilty providing 'iface_type'. + """ + Mark *interface* as a named utility providing *iface_type*'. + + .. versionchanged:: 5.0.0 + The named utility is registered in the current site manager. + Previously it was always registered in the global site manager. """ if not id: id = "%s.%s" % (interface.__module__, interface.__name__) @@ -40,8 +45,8 @@ def provideInterface(id, interface, iface_type=None, info=''): else: iface_type = IInterface - gsm = getGlobalSiteManager() - gsm.registerUtility(interface, iface_type, id, info) + site_man = getSiteManager() + site_man.registerUtility(interface, iface_type, id, info) def getInterface(context, id): @@ -74,8 +79,8 @@ def searchInterfaceIds(context, search_string=None, base=None): def searchInterfaceUtilities(context, search_string=None, base=None): - gsm = getGlobalSiteManager() - iface_utilities = gsm.getUtilitiesFor(IInterface) + site_man = getSiteManager() + iface_utilities = site_man.getUtilitiesFor(IInterface) if search_string: search_string = search_string.lower() @@ -86,7 +91,7 @@ def searchInterfaceUtilities(context, search_string=None, base=None): res = [iface_util for iface_util in iface_utilities if iface_util[1].isOrExtends(base)] else: - res = [iface_util for iface_util in iface_utilities] + res = list(iface_utilities) return res |