summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Sutherland <brian@vanguardistas.net>2016-11-15 17:20:51 +0100
committerBrian Sutherland <brian@vanguardistas.net>2016-11-15 17:20:51 +0100
commit0a5748f24b66d982450487f2ef4edd0fe8e4948a (patch)
treed413726508cdad26aec0c51d61d78254debb52a3
parentbcc55d40382f47784d93606daa174d454436e95a (diff)
downloadzope-interface-fix-optimization-imports-under-python3.tar.gz
see https://github.com/zopefoundation/zope.interface/issues/60
-rw-r--r--src/zope/interface/adapter.py4
-rw-r--r--src/zope/interface/declarations.py14
-rw-r--r--src/zope/interface/interface.py6
-rw-r--r--src/zope/interface/tests/test_optimizations.py12
4 files changed, 24 insertions, 12 deletions
diff --git a/src/zope/interface/adapter.py b/src/zope/interface/adapter.py
index 625b7be..c36ce72 100644
--- a/src/zope/interface/adapter.py
+++ b/src/zope/interface/adapter.py
@@ -398,7 +398,7 @@ class LookupBaseFallback(object):
LookupBasePy = LookupBaseFallback # BBB
try:
- from _zope_interface_coptimizations import LookupBase
+ from ._zope_interface_coptimizations import LookupBase
except ImportError: #pragma NO COVER
LookupBase = LookupBaseFallback
@@ -434,7 +434,7 @@ class VerifyingBaseFallback(LookupBaseFallback):
VerifyingBasePy = VerifyingBaseFallback #BBB
try:
- from _zope_interface_coptimizations import VerifyingBase
+ from ._zope_interface_coptimizations import VerifyingBase
except ImportError: #pragma NO COVER
VerifyingBase = VerifyingBaseFallback
diff --git a/src/zope/interface/declarations.py b/src/zope/interface/declarations.py
index 48e459a..7ccd123 100644
--- a/src/zope/interface/declarations.py
+++ b/src/zope/interface/declarations.py
@@ -640,11 +640,11 @@ ClassProvidesBase = ClassProvidesBaseFallback
# Try to get C base:
try:
- import _zope_interface_coptimizations
+ from . import _zope_interface_coptimizations
except ImportError: #pragma NO COVERAGE
pass
else: #pragma NO COVERAGE
- from _zope_interface_coptimizations import ClassProvidesBase
+ from ._zope_interface_coptimizations import ClassProvidesBase
class ClassProvides(Declaration, ClassProvidesBase):
@@ -917,13 +917,13 @@ def _normalizeargs(sequence, output = None):
_empty = Declaration()
try:
- import _zope_interface_coptimizations
+ from . import _zope_interface_coptimizations
except ImportError: #pragma NO COVER
pass
else: #pragma NO COVER PyPy
- from _zope_interface_coptimizations import implementedBy
- from _zope_interface_coptimizations import providedBy
- from _zope_interface_coptimizations import getObjectSpecification
- from _zope_interface_coptimizations import ObjectSpecificationDescriptor
+ from ._zope_interface_coptimizations import implementedBy
+ from ._zope_interface_coptimizations import providedBy
+ from ._zope_interface_coptimizations import getObjectSpecification
+ from ._zope_interface_coptimizations import ObjectSpecificationDescriptor
objectSpecificationDescriptor = ObjectSpecificationDescriptor()
diff --git a/src/zope/interface/interface.py b/src/zope/interface/interface.py
index e7eff5d..35d3734 100644
--- a/src/zope/interface/interface.py
+++ b/src/zope/interface/interface.py
@@ -114,7 +114,7 @@ class SpecificationBasePy(object):
SpecificationBase = SpecificationBasePy
try:
- from _zope_interface_coptimizations import SpecificationBase
+ from ._zope_interface_coptimizations import SpecificationBase
except ImportError: #pragma NO COVER
pass
@@ -155,14 +155,14 @@ class InterfaceBasePy(object):
InterfaceBase = InterfaceBasePy
try:
- from _zope_interface_coptimizations import InterfaceBase
+ from ._zope_interface_coptimizations import InterfaceBase
except ImportError: #pragma NO COVER
pass
adapter_hooks = []
try:
- from _zope_interface_coptimizations import adapter_hooks
+ from ._zope_interface_coptimizations import adapter_hooks
except ImportError: #pragma NO COVER
pass
diff --git a/src/zope/interface/tests/test_optimizations.py b/src/zope/interface/tests/test_optimizations.py
new file mode 100644
index 0000000..3d41268
--- /dev/null
+++ b/src/zope/interface/tests/test_optimizations.py
@@ -0,0 +1,12 @@
+from platform import python_implementation
+import unittest
+
+class TestOptimizations(unittest.TestCase):
+
+ def test_optimizations(self):
+ if python_implementation() != 'CPython':
+ return
+ from zope.interface import _zope_interface_coptimizations
+ from zope.interface.adapter import LookupBase
+ self.assertTrue(LookupBase is _zope_interface_coptimizations.LookupBase)
+