本文整理汇总了Python中zope.interface.providedBy函数的典型用法代码示例。如果您正苦于以下问题:Python providedBy函数的具体用法?Python providedBy怎么用?Python providedBy使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了providedBy函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: get_view
def get_view(name=None, context=None, request=None):
"""Get a BrowserView object.
:param name: [required] Name of the view.
:type name: string
:param context: [required] Context on which to get view.
:type context: context object
:param request: [required] Request on which to get view.
:type request: request object
:raises:
:class:`~plone.api.exc.MissingParameterError`,
:class:`~plone.api.exc.InvalidParameterError`
:Example: :ref:`content_get_view_example`
"""
try:
return getMultiAdapter((context, request), name=name)
except:
# get a list of all views so we can display their names in the error
# msg
sm = getSiteManager()
views = sm.adapters.lookupAll(
required=(providedBy(context), providedBy(request)),
provided=Interface,
)
views_names = [view[0] for view in views]
raise InvalidParameterError(
"Cannot find a view with name '{0}'.\n"
"Available views are:\n"
"{1}".format(name, '\n'.join(sorted(views_names)))
)
开发者ID:niteoweb,项目名称:plone.api,代码行数:32,代码来源:content.py
示例2: test_marker_interface
def test_marker_interface(self):
"""Test that Folder and Collection provides IVirtualGalleryEnabled
marker interface.
"""
from hexagonit.virtualgallery.browser.interfaces import IVirtualgalleryEnabled
self.assertTrue(IVirtualgalleryEnabled in providedBy(self.portal.folder))
self.assertTrue(IVirtualgalleryEnabled in providedBy(self.portal.collection))
开发者ID:hexagonit,项目名称:hexagonit.virtualgallery,代码行数:7,代码来源:test_setup.py
示例3: update
def update(self):
request = self.request
context = self.context
self.view_name = view_name = request.GET.get('view', '')
adapters = request.registry.adapters
view_callable = adapters.lookup(
(IViewClassifier, providedBy(request), providedBy(context)),
IView, name=view_name, default=None)
if not isinstance(view_callable, PyramidView):
raise HTTPNotFound()
view_renderer = None
layout_renderer = None
for r in view_callable.renderers:
if isinstance(r, view.LayoutRenderer):
layout_renderer = r
if isinstance(r, view.ViewRenderer):
view_renderer = r
if layout_renderer is not None:
self.layout = view.query_layout_chain(
context, request, layout_renderer.layout)
self.view = view_renderer
self.action = view_callable.__config_action__
self.info = view_callable.__config_action__.info
if self.layout is None:
raise HTTPNotFound()
开发者ID:WouterVH,项目名称:ptah,代码行数:34,代码来源:layout.py
示例4: __call__
def __call__(self, *args):
if len(args) == 1:
ast=args[0]
processer = p
else:
processer, ast = args
# raise Exception()
continuation = processer.continuation
continuation['initialCallDepth'] += 1
continuation['targetCallDepth'] = processer.callDepth
callback = callccCallback(continuation, self)
# processer.popStack([ast[0], callback])
# processer.stackPointer-=1
if Procedure in providedBy(ast[0]):
processer.pushStack([[ast[0], callback]])
r = processer.process([[ast[0], callback]], processer.cenv)
# processer.popStack(r)
elif Macro in providedBy(ast[0]):
r = ast[0](processer, [callback])
processer.pushStack(r)
r = processer.process(r, processer.cenv)
processer.popStack(r)
else:
r = ast[0](callback)
return r
开发者ID:perkinslr,项目名称:schemepy,代码行数:27,代码来源:callcc.py
示例5: diff
def diff(source, target, *interfaces):
"""Get a list of (field, changed, result) 3-tuples, for "diff-able" fields.
"""
if not len(interfaces):
interfaces = interface.providedBy(source)
results = []
for iface in interfaces:
# the order is locked on the order returned by of interface.names()
for name in iface.names():
#!+VERSIONS(miano, 2 may 2012) something changed in the last couple
# of weeks that makes removeSecurityPolicy below required yet
# it wasn't before.
field = removeSecurityProxy(iface[name])
# only consider for diffing fields of this type
#!+VERSIONS(miano, 2 May 2012) This was an isinstance check before.
# switched it to check on interfaces.
if set((schema.interfaces.IText, schema.interfaces.ITextLine,
schema.interfaces.ISet)).isdisjoint(
set(interface.providedBy(field))):
continue
bound = field.bind(source)
source_value = bound.query(source, field.default)
target_value = bound.query(target, field.default)
if source_value is None or target_value is None:
continue
hresult = htmldiff(source_value, target_value)
results.append((field, bool(hresult!=source_value), hresult))
return results
开发者ID:BenoitTalbot,项目名称:bungeni-portal,代码行数:28,代码来源:versions.py
示例6: execute
def execute(self, clear=True):
for event in self._events:
handler = None
if event.origin is not None:
# 1. Lookup customization with the original field
required = (providedBy(event.origin), event.interface)
# 1.a Original field and name
handler = self._origin.lookup(
required, Interface, event.field.identifier)
if handler is None:
# 1.b Original field without name
handler = self._origin.lookup(required, Interface)
if handler is not None:
handler(event.field)
if handler is None:
# 2. No customization found, lookup with the zeam.form field
required = (providedBy(event.field), event.interface)
# 2.a zeam.form field and name
handler = self._field.lookup(
required, Interface, event.field.identifier)
if handler is None:
# 2.b zeam.form field without name
handler = self._field.lookup(required, Interface)
if handler is not None:
handler(event.field)
if clear:
del self._events[:]
self._scheduled = False
开发者ID:Acidburn0zzz,项目名称:Zeam-Form-ZTK,代码行数:28,代码来源:customizations.py
示例7: get_view
def get_view(name=None, context=None, request=None):
"""Get a BrowserView object.
:param name: [required] Name of the view.
:type name: string
:param context: [required] Context on which to get view.
:type context: context object
:param request: [required] Request on which to get view.
:type request: request object
:raises:
:class:`~plone.api.exc.MissingParameterError`,
:class:`~plone.api.exc.InvalidParameterError`
:Example: :ref:`content_get_view_example`
"""
# It happens sometimes that ACTUAL_URL is not set in tests. To be nice
# and not throw strange errors, we set it to be the same as URL.
# TODO: if/when we have api.env.test_mode() boolean in the future, use that
config = getConfiguration()
if config.dbtab.__module__ == "plone.testing.z2":
request["ACTUAL_URL"] = request["URL"]
try:
return getMultiAdapter((context, request), name=name)
except:
# get a list of all views so we can display their names in the error
# msg
sm = getSiteManager()
views = sm.adapters.lookupAll(required=(providedBy(context), providedBy(request)), provided=Interface)
views_names = [view[0] for view in views]
raise InvalidParameterError(
"Cannot find a view with name '{0}'.\n"
"Available views are:\n"
"{1}".format(name, "\n".join(sorted(views_names)))
)
开发者ID:pingviini,项目名称:plone.api,代码行数:35,代码来源:content.py
示例8: test_backward_compat
def test_backward_compat(self):
class C1(object): __implemented__ = I1
class C2(C1): __implemented__ = I2, I5
class C3(C2): __implemented__ = I3, C2.__implemented__
self.assert_(C3.__implemented__.__class__ is tuple)
self.assertEqual(
[i.getName() for i in providedBy(C3())],
['I3', 'I2', 'I5'],
)
class C4(C3):
implements(I4)
self.assertEqual(
[i.getName() for i in providedBy(C4())],
['I4', 'I3', 'I2', 'I5'],
)
self.assertEqual(
[i.getName() for i in C4.__implemented__],
['I4', 'I3', 'I2', 'I5'],
)
# Note that C3.__implemented__ should now be a sequence of interfaces
self.assertEqual(
[i.getName() for i in C3.__implemented__],
['I3', 'I2', 'I5'],
)
self.failIf(C3.__implemented__.__class__ is tuple)
开发者ID:Alberto-Beralix,项目名称:Beralix,代码行数:32,代码来源:test_declarations.py
示例9: test_directlyProvides
def test_directlyProvides(self):
class IA1(Interface): pass
class IA2(Interface): pass
class IB(Interface): pass
class IC(Interface): pass
class A(Odd):
pass
classImplements(A, IA1, IA2)
class B(Odd):
pass
classImplements(B, IB)
class C(A, B):
pass
classImplements(C, IC)
ob = C()
directlyProvides(ob, I1, I2)
self.assertTrue(I1 in providedBy(ob))
self.assertTrue(I2 in providedBy(ob))
self.assertTrue(IA1 in providedBy(ob))
self.assertTrue(IA2 in providedBy(ob))
self.assertTrue(IB in providedBy(ob))
self.assertTrue(IC in providedBy(ob))
directlyProvides(ob, directlyProvidedBy(ob)-I2)
self.assertTrue(I1 in providedBy(ob))
self.assertFalse(I2 in providedBy(ob))
self.assertFalse(I2 in providedBy(ob))
directlyProvides(ob, directlyProvidedBy(ob), I2)
self.assertTrue(I2 in providedBy(ob))
开发者ID:Architektor,项目名称:PySnip,代码行数:33,代码来源:test_odd_declarations.py
示例10: getLayouts
def getLayouts(self):
context = self.context
request = context.REQUEST
if ICollageAlias.providedBy(self.context):
target = self.context.get_target()
if target is not None:
context = target
ifaces = mark_request(context, request)
sm = getSiteManager()
layouts = sm.adapters.lookupAll(
required=(providedBy(context), providedBy(request)),
provided=Interface
)
directlyProvides(request, *ifaces)
layouts = [(name, getattr(layout, 'title', name))
for (name, layout) in layouts
if isinstance(layout, type) and
issubclass(layout, BrowserView) and
not getattr(layout, 'hide', False)]
layouts.sort(lambda a, b: cmp(a[1], b[1]))
return layouts
开发者ID:affinitic,项目名称:Products.Collage,代码行数:25,代码来源:viewmanager.py
示例11: get_root
def get_root(self, node):
'''Get the root of the page-tree
The root node is a node that provides the
IGSContentManagerFolderMarker interface but does not have a
parent that provides the IGSContentManagerFolderMarker
interface.
ARGUMENTS
node A node in the tree to start searching from.
RETURNS
The root node of the tree.
SIDE EFFECTS
None
'''
parent = node.aq_parent
if (IGSContentManagerFolderMarker in providedBy(parent)):
retval = self.get_root(parent)
else:
retval = node
assert retval
assert IGSContentManagerFolderMarker in providedBy(retval)
return retval
开发者ID:groupserver,项目名称:Products.GSContentManager,代码行数:25,代码来源:pagetree.py
示例12: checkObject
def checkObject(container, name, object):
"""Check containement constraints for an object and container
"""
# check __setitem__ precondition
containerProvided = providedBy(container)
__setitem__ = containerProvided.get("__setitem__")
if __setitem__ is not None:
precondition = __setitem__.queryTaggedValue("precondition")
if precondition is not None:
precondition(container, name, object)
# check the constraint on __parent__
__parent__ = providedBy(object).get("__parent__")
if __parent__ is not None:
try:
validate = __parent__.validate
except AttributeError:
pass
else:
validate(container)
if not containerProvided.extends(IContainer):
# If it doesn't implement IContainer, it can't contain stuff.
raise TypeError(_("Container is not a valid Zope container."))
开发者ID:wpjunior,项目名称:proled,代码行数:25,代码来源:constraints.py
示例13: get_tree
def get_tree(self, node):
'''Get the tree below of the node
ARGUMENTS
A node in the tree.
RETURNS
A 2-tuple of (node, (children\ldots)). The node supports
the IGSContentManagerFolderMarker interface.
SIDE EFFECTS
None
'''
assert IGSContentManagerFolderMarker in providedBy(node)
objectValueTypes = ('Folder (Ordered)', 'Folder')
childFolders = node.objectValues(objectValueTypes)
children = [self.get_tree(c) for c in childFolders
if(IGSContentManagerFolderMarker in providedBy(c))]
retval = (node, tuple(children))
assert len(retval) == 2
assert retval[0] == node
assert IGSContentManagerFolderMarker in providedBy(retval[0])
return retval
开发者ID:groupserver,项目名称:Products.GSContentManager,代码行数:25,代码来源:pagetree.py
示例14: test_directlyProvides
def test_directlyProvides(self):
class IA1(Interface): pass
class IA2(Interface): pass
class IB(Interface): pass
class IC(Interface): pass
class A(Odd):
implements(IA1, IA2)
class B(Odd):
implements(IB)
class C(A, B):
implements(IC)
ob = C()
directlyProvides(ob, I1, I2)
self.assert_(I1 in providedBy(ob))
self.assert_(I2 in providedBy(ob))
self.assert_(IA1 in providedBy(ob))
self.assert_(IA2 in providedBy(ob))
self.assert_(IB in providedBy(ob))
self.assert_(IC in providedBy(ob))
directlyProvides(ob, directlyProvidedBy(ob)-I2)
self.assert_(I1 in providedBy(ob))
self.failIf(I2 in providedBy(ob))
self.failIf(I2 in providedBy(ob))
directlyProvides(ob, directlyProvidedBy(ob), I2)
self.assert_(I2 in providedBy(ob))
开发者ID:ConduitTeam,项目名称:hue,代码行数:30,代码来源:test_odd_declarations.py
示例15: getAvailableLayouts
def getAvailableLayouts(self):
# Get the layouts registered for this object from its FTI.
fti = self.getTypeInfo()
if fti is None:
return ()
result = []
method_ids = fti.getAvailableViewMethods(self)
spec = (providedBy(self), providedBy(self.REQUEST))
gsm = getSiteManager()
for mid in method_ids:
if not isinstance(mid, six.string_types):
mid = mid.decode()
factory = gsm.adapters.lookup(spec, Interface, mid)
if factory is not None:
menu = getUtility(
IBrowserMenu,
'plone_displayviews'
)
item = menu.getMenuItemByAction(self, self.REQUEST, mid)
title = item and item.title or mid
result.append((mid, title))
else:
method = getattr(self, mid, None)
if method is not None:
# a method might be a template, script or method
try:
title = method.aq_inner.aq_explicit.title_or_id()
except AttributeError:
title = mid
result.append((mid, title))
return result
开发者ID:plone,项目名称:Products.CMFDynamicViewFTI,代码行数:31,代码来源:browserdefault.py
示例16: test_builtins
def test_builtins(self):
# Setup
intspec = implementedBy(int)
olddeclared = intspec.declared
classImplements(int, I1)
class myint(int):
implements(I2)
x = 42
self.assertEqual([i.getName() for i in providedBy(x)],
['I1'])
x = myint(42)
directlyProvides(x, I3)
self.assertEqual([i.getName() for i in providedBy(x)],
['I3', 'I2', 'I1'])
# cleanup
intspec.declared = olddeclared
classImplements(int)
x = 42
self.assertEqual([i.getName() for i in providedBy(x)],
[])
开发者ID:Alberto-Beralix,项目名称:Beralix,代码行数:26,代码来源:test_declarations.py
示例17: get_view
def get_view(name=None, context=None, request=None):
"""Get a BrowserView object.
:param name: [required] Name of the view.
:type name: string
:param context: [required] Context on which to get view.
:type context: context object
:param request: [required] Request on which to get view.
:type request: request object
:raises:
:class:`~plone.api.exc.MissingParameterError`,
:class:`~plone.api.exc.InvalidParameterError`
:Example: :ref:`content_get_view_example`
"""
# We do not use exceptionhandling to detect if the requested view is
# available, because the __init__ of said view will contain
# errors in client code.
# Get all available views...
sm = getSiteManager()
available_views = sm.adapters.lookupAll(
required=(providedBy(context), providedBy(request)),
provided=Interface,
)
# and get their names.
available_view_names = [view[0] for view in available_views]
# Raise an error if the requested view is not available.
if name not in available_view_names:
raise InvalidParameterError(
"Cannot find a view with name '{0}'.\n"
"Available views are:\n"
"{1}".format(name, '\n'.join(sorted(available_view_names)))
)
return getMultiAdapter((context, request), name=name)
开发者ID:gyst,项目名称:plone.api,代码行数:35,代码来源:content.py
示例18: _fixup_zope_interface
def _fixup_zope_interface():
# Make sure the provided and implementedBy objects
# can be iterated.
# Note that we DO NOT use the _iteratorChecker, but instead
# we use NoProxy to be sure that the results (of iteration or not) are not
# proxied. On Python 2, these objects are builtin and don't go through the
# checking process at all, much like BTrees, so NoProxy is necessary for
# compatibility. On Python 3, prior to this, iteration was simply not allowed.
from zope.interface import providedBy
from zope.interface import alsoProvides
class I1(Interface):
pass
class I2(Interface):
pass
@implementer(I1)
class O(object):
pass
o = O()
# This will be athe zope.interface.implementedBy from the class
# a zope.interface.declarations.Implements
_default_checkers[type(providedBy(o))] = NoProxy
alsoProvides(o, I2)
# This will be the zope.interface.Provides from the instance
_default_checkers[type(providedBy(o))] = NoProxy
开发者ID:zopefoundation,项目名称:zope.security,代码行数:31,代码来源:checker.py
示例19: setUp
def setUp(self):
super(self.__class__, self).setUp()
# load file content
filedata = get_file_content('example.zip')
# create an ATFile w/ the content
self.loginAsPortalOwner()
# self.portal.invokeFactory("File", 'archive')
_createObjectByType("File", self.portal, id='archive')
self.archive = archive = self.portal.archive
# we should not have IArchiveFile
self.assertTrue(IArchiveFile not in providedBy(archive))
archive.setFile(filedata)
# trigger modified event since we have a subscriber for that
event = ObjectModifiedEvent(archive)
notify(event)
# now we must have IArchiveFile
self.assertTrue(IArchiveFile in providedBy(archive))
# look for a zip reader
zipreader = component.queryAdapter(archive, IArchiveReader,
name=archive.getContentType())
self.failIf(zipreader is None)
self.logout()
开发者ID:collective,项目名称:collective.archiveviewer,代码行数:28,代码来源:test_file.py
示例20: render_view
def render_view(name, context, request):
adapters = config.registry.adapters
view_callable = adapters.lookup(
(IViewClassifier, providedBy(request), providedBy(context)),
IView, name=name, default=None)
return view_callable(context, request)
开发者ID:mcdonc,项目名称:ptah,代码行数:8,代码来源:view.py
注:本文中的zope.interface.providedBy函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论