golden hour
/usr/lib/python2.7/site-packages/zope/component
⬆️ Go Up
Upload
File/Folder
Size
Actions
__init__.py
2.64 KB
Del
OK
__init__.pyc
2.16 KB
Del
OK
__init__.pyo
2.16 KB
Del
OK
_api.py
8.83 KB
Del
OK
_api.pyc
7.49 KB
Del
OK
_api.pyo
7.49 KB
Del
OK
_compat.py
1.03 KB
Del
OK
_compat.pyc
822 B
Del
OK
_compat.pyo
822 B
Del
OK
_declaration.py
1.79 KB
Del
OK
_declaration.pyc
2.25 KB
Del
OK
_declaration.pyo
2.25 KB
Del
OK
configure.zcml
444 B
Del
OK
event.py
1.2 KB
Del
OK
event.pyc
1.03 KB
Del
OK
event.pyo
1.03 KB
Del
OK
eventtesting.py
2.04 KB
Del
OK
eventtesting.pyc
2.12 KB
Del
OK
eventtesting.pyo
2.12 KB
Del
OK
factory.py
1.71 KB
Del
OK
factory.pyc
1.87 KB
Del
OK
factory.pyo
1.87 KB
Del
OK
globalregistry.py
2.67 KB
Del
OK
globalregistry.pyc
3.77 KB
Del
OK
globalregistry.pyo
3.77 KB
Del
OK
hookable.py
1.29 KB
Del
OK
hookable.pyc
1.71 KB
Del
OK
hookable.pyo
1.71 KB
Del
OK
hooks.py
4 KB
Del
OK
hooks.pyc
4.15 KB
Del
OK
hooks.pyo
4.15 KB
Del
OK
interface.py
4.25 KB
Del
OK
interface.pyc
4.07 KB
Del
OK
interface.pyo
3.97 KB
Del
OK
interfaces.py
16.28 KB
Del
OK
interfaces.pyc
20.13 KB
Del
OK
interfaces.pyo
20.13 KB
Del
OK
meta.zcml
1.12 KB
Del
OK
persistentregistry.py
2.05 KB
Del
OK
persistentregistry.pyc
2.54 KB
Del
OK
persistentregistry.pyo
2.54 KB
Del
OK
registry.py
2.14 KB
Del
OK
registry.pyc
2.01 KB
Del
OK
registry.pyo
2.01 KB
Del
OK
security.py
3.54 KB
Del
OK
security.pyc
3.31 KB
Del
OK
security.pyo
3.31 KB
Del
OK
standalonetests.py
1.16 KB
Del
OK
standalonetests.pyc
2.38 KB
Del
OK
standalonetests.pyo
2.3 KB
Del
OK
testfiles
-
Del
OK
testing.py
1.23 KB
Del
OK
testing.pyc
1.52 KB
Del
OK
testing.pyo
1.52 KB
Del
OK
testlayer.py
4.09 KB
Del
OK
testlayer.pyc
5.64 KB
Del
OK
testlayer.pyo
5.64 KB
Del
OK
tests
-
Del
OK
zcml.py
19.72 KB
Del
OK
zcml.pyc
16.92 KB
Del
OK
zcml.pyo
16.92 KB
Del
OK
Edit: interface.py
############################################################################## # # Copyright (c) 2001, 2002 Zope Foundation and Contributors. # All Rights Reserved. # # This software is subject to the provisions of the Zope Public License, # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """Interface utility functions """ from zope.interface import alsoProvides from zope.interface.interfaces import IInterface from zope.component.globalregistry import getGlobalSiteManager from zope.component.interfaces import ComponentLookupError 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'. """ if not id: id = "%s.%s" % (interface.__module__, interface.__name__) if not IInterface.providedBy(interface): if not isinstance(interface, CLASS_TYPES): raise TypeError(id, "is not an interface or class") return if iface_type is not None: if not iface_type.extends(IInterface): raise TypeError(iface_type, "is not an interface type") alsoProvides(interface, iface_type) else: iface_type = IInterface gsm = getGlobalSiteManager() gsm.registerUtility(interface, iface_type, id, info) def getInterface(context, id): """Return interface or raise ComponentLookupError """ iface = queryInterface(id, None) if iface is None: raise ComponentLookupError(id) return iface def queryInterface(id, default=None): """Return an interface or ``None`` """ return queryUtility(IInterface, id, default) def searchInterface(context, search_string=None, base=None): """Interfaces search """ return [iface_util[1] for iface_util in searchInterfaceUtilities(context, search_string, base)] def searchInterfaceIds(context, search_string=None, base=None): """Interfaces search """ return [iface_util[0] for iface_util in searchInterfaceUtilities(context, search_string, base)] def searchInterfaceUtilities(context, search_string=None, base=None): gsm = getGlobalSiteManager() iface_utilities = gsm.getUtilitiesFor(IInterface) if search_string: search_string = search_string.lower() iface_utilities = [iface_util for iface_util in iface_utilities if (getInterfaceAllDocs(iface_util[1]).\ find(search_string) >= 0)] if base: 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] return res def getInterfaceAllDocs(interface): iface_id = '%s.%s' %(interface.__module__, interface.__name__) docs = [str(iface_id).lower(), str(interface.__doc__).lower()] if IInterface.providedBy(interface): for name in sorted(interface): docs.append( str(interface.getDescriptionFor(name).__doc__).lower()) return '\n'.join(docs) def nameToInterface(context, id): if id == 'None': return None iface = getInterface(context, id) return iface def interfaceToName(context, interface): if interface is None: return 'None' # XXX this search is pointless: we are always going to return the # same value whether or not we find anything. items = searchInterface(context, base=interface) ids = [('%s.%s' %(iface.__module__, iface.__name__)) for iface in items if iface == interface] if not ids: # Do not fail badly, instead resort to the standard # way of getting the interface name, cause not all interfaces # may be registered as utilities. return interface.__module__ + '.' + interface.__name__ assert len(ids) == 1, "Ambiguous interface names: %s" % ids return ids[0]
Save