[Zope3-checkins] CVS: Zope3/src/zope/app/content - __init__.py:1.7
Nathan Yergler
nathan at yergler.net
Sat Mar 20 17:10:04 EST 2004
Update of /cvs-repository/Zope3/src/zope/app/content
In directory cvs.zope.org:/tmp/cvs-serv8398/src/zope/app/content
Modified Files:
__init__.py
Log Message:
Refactored queryContentType to use queryType.
=== Zope3/src/zope/app/content/__init__.py 1.6 => 1.7 ===
--- Zope3/src/zope/app/content/__init__.py:1.6 Fri Mar 5 17:09:00 2004
+++ Zope3/src/zope/app/content/__init__.py Sat Mar 20 17:10:03 2004
@@ -14,67 +14,13 @@
"""
$Id$
"""
+
+from zope.app.interface import queryType
from zope.app.content.interfaces import IContentType
-from zope.interface.declarations import providedBy
def queryContentType(object):
- """returns object content type
-
- >>> from zope.interface import Interface, implements, directlyProvides
- >>> class I(Interface):
- ... pass
- >>> directlyProvides(I, IContentType)
- >>> class C:
- ... implements(I)
- >>> obj = C()
- >>> c1_ctype = queryContentType(obj)
- >>> c1_ctype.__name__
- 'I'
- >>> class I1(I):
- ... pass
- >>> class I2(I1):
- ... pass
- >>> class I3(Interface):
- ... pass
- >>> class C1:
- ... implements(I1)
- >>> obj1 = C1()
- >>> c1_ctype = queryContentType(obj1)
- >>> c1_ctype.__name__
- 'I'
- >>> class C2:
- ... implements(I2)
- >>> obj2 = C2()
- >>> c2_ctype = queryContentType(obj2)
- >>> c2_ctype.__name__
- 'I'
- >>> class C3:
- ... implements(I3)
- >>> obj3 = C3()
-
- If Interface doesn't provide IContentType, queryContentType returns None.
-
- >>> c3_ctype = queryContentType(obj3)
- >>> c3_ctype
- >>> class I4(I):
- ... pass
- >>> directlyProvides(I4, IContentType)
- >>> class C4:
- ... implements(I4)
- >>> obj4 = C4()
- >>> c4_ctype = queryContentType(obj4)
- >>> c4_ctype.__name__
- 'I4'
-
+ """Returns the interface implemented by object which implements IContentType.
"""
-
- object_iro = providedBy(object).__iro__
- for iface in object_iro:
- if IContentType.providedBy(iface):
- return iface
-
- return None
-
-
+ return queryType(object, IContentType)
More information about the Zope3-Checkins
mailing list