[Checkins] SVN: martian/trunk/ Clean up scan_for_classes.
Martijn Faassen
faassen at infrae.com
Sun May 4 12:10:23 EDT 2008
Log message for revision 86393:
Clean up scan_for_classes.
Changed:
U martian/trunk/CHANGES.txt
U martian/trunk/src/martian/tests/scan_for_classes.txt
U martian/trunk/src/martian/util.py
-=-
Modified: martian/trunk/CHANGES.txt
===================================================================
--- martian/trunk/CHANGES.txt 2008-05-04 15:47:13 UTC (rev 86392)
+++ martian/trunk/CHANGES.txt 2008-05-04 16:10:23 UTC (rev 86393)
@@ -4,7 +4,10 @@
0.9.5 (unreleased)
==================
-* ...
+* ``scan_for_classes`` just needs a single second argument specifying
+ an interface. The support for scanning for subclasses directly has
+ been removed as it became unnecessary (due to changes in
+ grokcore.component).
0.9.4 (2008-05-04)
==================
Modified: martian/trunk/src/martian/tests/scan_for_classes.txt
===================================================================
--- martian/trunk/src/martian/tests/scan_for_classes.txt 2008-05-04 15:47:13 UTC (rev 86392)
+++ martian/trunk/src/martian/tests/scan_for_classes.txt 2008-05-04 16:10:23 UTC (rev 86393)
@@ -10,26 +10,23 @@
>>> from martian.util import scan_for_classes
>>> from martian.tests.scanforclasses import test1
- >>> list(scan_for_classes(test1, interface=IContext))
+ >>> list(scan_for_classes(test1, IContext))
[]
Now we look at a module with a single ``Context`` subclass::
>>> from martian.tests.scanforclasses import test2
- >>> list(scan_for_classes(test2, interface=IContext))
+ >>> list(scan_for_classes(test2, IContext))
[<class 'martian.tests.scanforclasses.test2.MyContext'>]
Now we'll look at a module with a single class that implements ``IContext``::
>>> from martian.tests.scanforclasses import test3
- >>> list(scan_for_classes(test3, interface=IContext))
+ >>> list(scan_for_classes(test3, IContext))
[<class 'martian.tests.scanforclasses.test3.MyContext'>]
Let's finish by looking at a module which defines multiple contexts::
>>> from martian.tests.scanforclasses import test4
- >>> len(list(scan_for_classes(test4, interface=IContext)))
+ >>> len(list(scan_for_classes(test4, IContext)))
4
-
-
-
Modified: martian/trunk/src/martian/util.py
===================================================================
--- martian/trunk/src/martian/util.py 2008-05-04 15:47:13 UTC (rev 86392)
+++ martian/trunk/src/martian/util.py 2008-05-04 16:10:23 UTC (rev 86393)
@@ -83,7 +83,7 @@
"(use grok.provides to specify which one to use)."
% obj, obj)
-def scan_for_classes(module, classes=None, interface=None):
+def scan_for_classes(module, iface):
"""Given a module, scan for classes.
"""
for name in dir(module):
@@ -96,12 +96,7 @@
if not defined_locally(obj, module.__name__) or not isclass(obj):
continue
- if classes is not None:
- for class_ in classes:
- if check_subclass(obj, class_):
- yield obj
-
- if interface is not None and interface.implementedBy(obj):
+ if iface.implementedBy(obj):
yield obj
def methods_from_class(class_):
More information about the Checkins
mailing list