[Checkins] SVN: zope.interface/branches/regebro-python3/ 107 tests pass, 45 failures to go.
Lennart Regebro
regebro at gmail.com
Tue Apr 7 16:16:49 EDT 2009
Log message for revision 98993:
107 tests pass, 45 failures to go.
Changed:
U zope.interface/branches/regebro-python3/build_ext_3.py
U zope.interface/branches/regebro-python3/src/zope/interface/__init__.py
U zope.interface/branches/regebro-python3/src/zope/interface/declarations.py
U zope.interface/branches/regebro-python3/src/zope/interface/interfaces.py
U zope.interface/branches/regebro-python3/src/zope/interface/tests/test_interface.py
-=-
Modified: zope.interface/branches/regebro-python3/build_ext_3.py
===================================================================
--- zope.interface/branches/regebro-python3/build_ext_3.py 2009-04-07 20:04:45 UTC (rev 98992)
+++ zope.interface/branches/regebro-python3/build_ext_3.py 2009-04-07 20:16:49 UTC (rev 98993)
@@ -140,6 +140,7 @@
self.fixer_names = get_fixers_from_package('lib2to3.fixes') + \
get_fixers_from_package('zope.fixers')
self.run_2to3(self.updated_files)
+ self.run_2to3(self.updated_files, doctests_only=True)
self.run_2to3(self.possible_doctests, doctests_only=True)
# Remaining base class code
Modified: zope.interface/branches/regebro-python3/src/zope/interface/__init__.py
===================================================================
--- zope.interface/branches/regebro-python3/src/zope/interface/__init__.py 2009-04-07 20:04:45 UTC (rev 98992)
+++ zope.interface/branches/regebro-python3/src/zope/interface/__init__.py 2009-04-07 20:16:49 UTC (rev 98993)
@@ -63,7 +63,7 @@
from zope.interface.declarations import providedBy, implementedBy
from zope.interface.declarations import classImplements, classImplementsOnly
from zope.interface.declarations import directlyProvidedBy, directlyProvides
-from zope.interface.declarations import alsoProvides
+from zope.interface.declarations import alsoProvides, provider
from zope.interface.declarations import implementer, implementer_only
from zope.interface.declarations import implements, implementsOnly
from zope.interface.declarations import classProvides, moduleProvides
Modified: zope.interface/branches/regebro-python3/src/zope/interface/declarations.py
===================================================================
--- zope.interface/branches/regebro-python3/src/zope/interface/declarations.py 2009-04-07 20:04:45 UTC (rev 98992)
+++ zope.interface/branches/regebro-python3/src/zope/interface/declarations.py 2009-04-07 20:16:49 UTC (rev 98993)
@@ -1127,13 +1127,6 @@
>>> [i.getName() for i in C().__providedBy__]
['IFoo']
- If classProvides is called outside of a class definition, it fails.
-
- >>> classProvides(IFooFactory)
- Traceback (most recent call last):
- ...
- TypeError: classProvides can be used only from a class definition.
-
"""
frame = sys._getframe(1)
locals = frame.f_locals
@@ -1156,6 +1149,16 @@
directlyProvides(cls, *interfaces)
return cls
+class provider:
+ """Class decorator version of classProvides"""
+
+ def __init__(self, *interfaces):
+ self.interfaces = interfaces
+
+ def __call__(self, ob):
+ directlyProvides(ob, *self.interfaces)
+ return ob
+
def moduleProvides(*interfaces):
"""Declare interfaces provided by a module
Modified: zope.interface/branches/regebro-python3/src/zope/interface/interfaces.py
===================================================================
--- zope.interface/branches/regebro-python3/src/zope/interface/interfaces.py 2009-04-07 20:04:45 UTC (rev 98992)
+++ zope.interface/branches/regebro-python3/src/zope/interface/interfaces.py 2009-04-07 20:16:49 UTC (rev 98993)
@@ -621,6 +621,8 @@
after the class has been created.
"""
+ def provider(*interfaces):
+ """A class decorator version of classProvides"""
def moduleProvides(*interfaces):
"""Declare interfaces provided by a module
Modified: zope.interface/branches/regebro-python3/src/zope/interface/tests/test_interface.py
===================================================================
--- zope.interface/branches/regebro-python3/src/zope/interface/tests/test_interface.py 2009-04-07 20:04:45 UTC (rev 98992)
+++ zope.interface/branches/regebro-python3/src/zope/interface/tests/test_interface.py 2009-04-07 20:16:49 UTC (rev 98993)
@@ -255,6 +255,9 @@
def testIssue228(self):
# Test for http://collector.zope.org/Zope3-dev/228
+ if sys.version[0] == '3':
+ # No old style classes in Python 3, so the test becomes moot.
+ return
class I(Interface):
"xxx"
class Bad:
More information about the Checkins
mailing list