[Checkins] SVN: martian/branches/jw-philipp-using-ndir-directives/
Move check_provides_one to martian.
Philipp von Weitershausen
philikon at philikon.de
Sun May 4 06:51:20 EDT 2008
Log message for revision 86332:
Move check_provides_one to martian.
Changed:
U martian/branches/jw-philipp-using-ndir-directives/CHANGES.txt
U martian/branches/jw-philipp-using-ndir-directives/src/martian/util.py
-=-
Modified: martian/branches/jw-philipp-using-ndir-directives/CHANGES.txt
===================================================================
--- martian/branches/jw-philipp-using-ndir-directives/CHANGES.txt 2008-05-04 10:50:39 UTC (rev 86331)
+++ martian/branches/jw-philipp-using-ndir-directives/CHANGES.txt 2008-05-04 10:51:20 UTC (rev 86332)
@@ -4,6 +4,12 @@
0.9.4 (unreleased)
==================
+Features changes
+----------------
+
+* Added a ``martian.util.check_provides_one`` helper, in analogy to
+ ``check_implements_one``.
+
Bug fixes
---------
Modified: martian/branches/jw-philipp-using-ndir-directives/src/martian/util.py
===================================================================
--- martian/branches/jw-philipp-using-ndir-directives/src/martian/util.py 2008-05-04 10:50:39 UTC (rev 86331)
+++ martian/branches/jw-philipp-using-ndir-directives/src/martian/util.py 2008-05-04 10:51:20 UTC (rev 86332)
@@ -93,6 +93,16 @@
"(use grok.provides to specify which one to use)."
% class_, class_)
+def check_provides_one(obj):
+ provides = list(interface.providedBy(obj))
+ if len(provides) < 1:
+ raise GrokError("%r must provide at least one interface "
+ "(use zope.interface.classProvides to specify)."
+ % obj, obj)
+ if len(provides) > 1:
+ raise GrokError("%r provides more than one interface "
+ "(use grok.provides to specify which one to use)."
+ % obj, obj)
def scan_for_classes(module, classes):
"""Given a module, scan for classes.
More information about the Checkins
mailing list