Patchwork D2930: thirdparty: port zope.interface to relative imports

login
register
mail settings
Submitter phabricator
Date March 22, 2018, 4:10 a.m.
Message ID <differential-rev-PHID-DREV-ye67mnvjffgnqfekaef5-req@phab.mercurial-scm.org>
Download mbox | patch
Permalink /patch/29772/
State Superseded
Headers show

Comments

phabricator - March 22, 2018, 4:10 a.m.
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  By using relative imports, we're guaranteed to get modules
  vendored with Mercurial rather than other random modules
  that might be in sys.path.
  
  My editor strips trailing whitespace on save. So some minor
  source code cleanup was also performed as part of this commit.
  
  1. no-check-commit because some modified lines have double newlines

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D2930

AFFECTED FILES
  mercurial/thirdparty/zope/interface/__init__.py
  mercurial/thirdparty/zope/interface/_compat.py
  mercurial/thirdparty/zope/interface/_flatten.py
  mercurial/thirdparty/zope/interface/_zope_interface_coptimizations.c
  mercurial/thirdparty/zope/interface/adapter.py
  mercurial/thirdparty/zope/interface/advice.py
  mercurial/thirdparty/zope/interface/common/idatetime.py
  mercurial/thirdparty/zope/interface/common/interfaces.py
  mercurial/thirdparty/zope/interface/common/mapping.py
  mercurial/thirdparty/zope/interface/common/sequence.py
  mercurial/thirdparty/zope/interface/declarations.py
  mercurial/thirdparty/zope/interface/document.py
  mercurial/thirdparty/zope/interface/exceptions.py
  mercurial/thirdparty/zope/interface/interface.py
  mercurial/thirdparty/zope/interface/interfaces.py
  mercurial/thirdparty/zope/interface/registry.py
  mercurial/thirdparty/zope/interface/ro.py
  mercurial/thirdparty/zope/interface/verify.py

CHANGE DETAILS




To: indygreg, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/mercurial/thirdparty/zope/interface/verify.py b/mercurial/thirdparty/zope/interface/verify.py
--- a/mercurial/thirdparty/zope/interface/verify.py
+++ b/mercurial/thirdparty/zope/interface/verify.py
@@ -13,10 +13,12 @@ 
 ##############################################################################
 """Verify interface implementations
 """
-from zope.interface.exceptions import BrokenImplementation, DoesNotImplement
-from zope.interface.exceptions import BrokenMethodImplementation
+from __future__ import absolute_import
+
+from .exceptions import BrokenImplementation, DoesNotImplement
+from .exceptions import BrokenMethodImplementation
 from types import FunctionType, MethodType
-from zope.interface.interface import fromMethod, fromFunction, Method
+from .interface import fromMethod, fromFunction, Method
 import sys
 
 # This will be monkey-patched when running under Zope 2, so leave this
diff --git a/mercurial/thirdparty/zope/interface/ro.py b/mercurial/thirdparty/zope/interface/ro.py
--- a/mercurial/thirdparty/zope/interface/ro.py
+++ b/mercurial/thirdparty/zope/interface/ro.py
@@ -13,6 +13,9 @@ 
 ##############################################################################
 """Compute a resolution order for an object and its bases
 """
+
+from __future__ import absolute_import
+
 __docformat__ = 'restructuredtext'
 
 def _mergeOrderings(orderings):
diff --git a/mercurial/thirdparty/zope/interface/registry.py b/mercurial/thirdparty/zope/interface/registry.py
--- a/mercurial/thirdparty/zope/interface/registry.py
+++ b/mercurial/thirdparty/zope/interface/registry.py
@@ -13,31 +13,34 @@ 
 ##############################################################################
 """Basic components support
 """
+
+from __future__ import absolute_import
+
 from collections import defaultdict
 
 try:
-    from zope.event import notify
+    from ..event import notify
 except ImportError: # pragma: no cover
     def notify(*arg, **kw): pass
 
-from zope.interface.interfaces import ISpecification
-from zope.interface.interfaces import ComponentLookupError
-from zope.interface.interfaces import IAdapterRegistration
-from zope.interface.interfaces import IComponents
-from zope.interface.interfaces import IHandlerRegistration
-from zope.interface.interfaces import ISubscriptionAdapterRegistration
-from zope.interface.interfaces import IUtilityRegistration
-from zope.interface.interfaces import Registered
-from zope.interface.interfaces import Unregistered
+from .interfaces import ISpecification
+from .interfaces import ComponentLookupError
+from .interfaces import IAdapterRegistration
+from .interfaces import IComponents
+from .interfaces import IHandlerRegistration
+from .interfaces import ISubscriptionAdapterRegistration
+from .interfaces import IUtilityRegistration
+from .interfaces import Registered
+from .interfaces import Unregistered
 
-from zope.interface.interface import Interface
-from zope.interface.declarations import implementedBy
-from zope.interface.declarations import implementer
-from zope.interface.declarations import implementer_only
-from zope.interface.declarations import providedBy
-from zope.interface.adapter import AdapterRegistry
-from zope.interface._compat import CLASS_TYPES
-from zope.interface._compat import STRING_TYPES
+from .interface import Interface
+from .declarations import implementedBy
+from .declarations import implementer
+from .declarations import implementer_only
+from .declarations import providedBy
+from .adapter import AdapterRegistry
+from ._compat import CLASS_TYPES
+from ._compat import STRING_TYPES
 
 
 class _UnhashableComponentCounter(object):
diff --git a/mercurial/thirdparty/zope/interface/interfaces.py b/mercurial/thirdparty/zope/interface/interfaces.py
--- a/mercurial/thirdparty/zope/interface/interfaces.py
+++ b/mercurial/thirdparty/zope/interface/interfaces.py
@@ -13,11 +13,14 @@ 
 ##############################################################################
 """Interface Package Interfaces
 """
+
+from __future__ import absolute_import
+
 __docformat__ = 'restructuredtext'
 
-from zope.interface.interface import Attribute
-from zope.interface.interface import Interface
-from zope.interface.declarations import implementer
+from .interface import Attribute
+from .interface import Interface
+from .declarations import implementer
 
 
 _BLANK = u''
@@ -447,10 +450,10 @@ 
         Instances of ``C`` provide only ``I1``, ``I2``, and regardless of
         whatever interfaces instances of ``A`` and ``B`` implement.
         """
-        
+
     def implementer_only(*interfaces):
-        """Create a decorator for declaring the only interfaces implemented 
-        
+        """Create a decorator for declaring the only interfaces implemented
+
         A callable is returned that makes an implements declaration on
         objects passed to it.
         """
diff --git a/mercurial/thirdparty/zope/interface/interface.py b/mercurial/thirdparty/zope/interface/interface.py
--- a/mercurial/thirdparty/zope/interface/interface.py
+++ b/mercurial/thirdparty/zope/interface/interface.py
@@ -13,16 +13,16 @@ 
 ##############################################################################
 """Interface object implementation
 """
-from __future__ import generators
+from __future__ import absolute_import, generators
 
 import sys
 from types import MethodType
 from types import FunctionType
 import warnings
 import weakref
 
-from zope.interface.exceptions import Invalid
-from zope.interface.ro import ro
+from .exceptions import Invalid
+from .ro import ro
 
 
 CO_VARARGS = 4
@@ -114,7 +114,7 @@ 
 
 SpecificationBase = SpecificationBasePy
 try:
-    from zope.interface._zope_interface_coptimizations import SpecificationBase
+    from ._zope_interface_coptimizations import SpecificationBase
 except ImportError:
     pass
 
@@ -155,14 +155,14 @@ 
 
 InterfaceBase = InterfaceBasePy
 try:
-    from zope.interface._zope_interface_coptimizations import InterfaceBase
+    from ._zope_interface_coptimizations import InterfaceBase
 except ImportError:
     pass
 
 
 adapter_hooks = []
 try:
-    from zope.interface._zope_interface_coptimizations import adapter_hooks
+    from ._zope_interface_coptimizations import adapter_hooks
 except ImportError:
     pass
 
@@ -665,22 +665,22 @@ 
 
 # Now we can create the interesting interfaces and wire them up:
 def _wire():
-    from zope.interface.declarations import classImplements
+    from .declarations import classImplements
 
-    from zope.interface.interfaces import IAttribute
+    from .interfaces import IAttribute
     classImplements(Attribute, IAttribute)
 
-    from zope.interface.interfaces import IMethod
+    from .interfaces import IMethod
     classImplements(Method, IMethod)
 
-    from zope.interface.interfaces import IInterface
+    from .interfaces import IInterface
     classImplements(InterfaceClass, IInterface)
 
-    from zope.interface.interfaces import ISpecification
+    from .interfaces import ISpecification
     classImplements(Specification, ISpecification)
 
 # We import this here to deal with module dependencies.
-from zope.interface.declarations import implementedBy
-from zope.interface.declarations import providedBy
-from zope.interface.exceptions import InvalidInterface
-from zope.interface.exceptions import BrokenImplementation
+from .declarations import implementedBy
+from .declarations import providedBy
+from .exceptions import InvalidInterface
+from .exceptions import BrokenImplementation
diff --git a/mercurial/thirdparty/zope/interface/exceptions.py b/mercurial/thirdparty/zope/interface/exceptions.py
--- a/mercurial/thirdparty/zope/interface/exceptions.py
+++ b/mercurial/thirdparty/zope/interface/exceptions.py
@@ -14,6 +14,8 @@ 
 """Interface-specific exceptions
 """
 
+from __future__ import absolute_import
+
 class Invalid(Exception):
     """A specification is violated
     """
diff --git a/mercurial/thirdparty/zope/interface/document.py b/mercurial/thirdparty/zope/interface/document.py
--- a/mercurial/thirdparty/zope/interface/document.py
+++ b/mercurial/thirdparty/zope/interface/document.py
@@ -16,8 +16,10 @@ 
 This module provides a function, asStructuredText, for rendering an
 interface as structured text.
 """
-import zope.interface
 
+from __future__ import absolute_import
+
+from . import Interface
 
 def asStructuredText(I, munge=0, rst=False):
     """ Output structured text format.  Note, this will whack any existing
@@ -41,7 +43,7 @@ 
 
     bases = [base
              for base in I.__bases__
-             if base is not zope.interface.Interface
+             if base is not Interface
              ]
     if bases:
         outp(_justify_and_indent("This interface extends:", level, munge))
diff --git a/mercurial/thirdparty/zope/interface/declarations.py b/mercurial/thirdparty/zope/interface/declarations.py
--- a/mercurial/thirdparty/zope/interface/declarations.py
+++ b/mercurial/thirdparty/zope/interface/declarations.py
@@ -24,20 +24,22 @@ 
     provided by objects.
 
 """
+from __future__ import absolute_import
+
 __docformat__ = 'restructuredtext'
 
 import sys
 from types import FunctionType
 from types import MethodType
 from types import ModuleType
 import weakref
 
-from zope.interface.advice import addClassAdvisor
-from zope.interface.interface import InterfaceClass
-from zope.interface.interface import SpecificationBase
-from zope.interface.interface import Specification
-from zope.interface._compat import CLASS_TYPES as DescriptorAwareMetaClasses
-from zope.interface._compat import PYTHON3
+from .advice import addClassAdvisor
+from .interface import InterfaceClass
+from .interface import SpecificationBase
+from .interface import Specification
+from ._compat import CLASS_TYPES as DescriptorAwareMetaClasses
+from ._compat import PYTHON3
 
 # Registry of class-implementation specifications
 BuiltinImplementationSpecifications = {}
@@ -638,11 +640,11 @@ 
 
 # Try to get C base:
 try:
-    import zope.interface._zope_interface_coptimizations
+    from . import _zope_interface_coptimizations
 except ImportError:
     pass
 else:
-    from zope.interface._zope_interface_coptimizations import ClassProvidesBase
+    from ._zope_interface_coptimizations import ClassProvidesBase
 
 
 class ClassProvides(Declaration, ClassProvidesBase):
@@ -915,15 +917,15 @@ 
 _empty = Declaration()
 
 try:
-    import zope.interface._zope_interface_coptimizations
+    from . import _zope_interface_coptimizations
 except ImportError:
     pass
 else:
-    from zope.interface._zope_interface_coptimizations import implementedBy
-    from zope.interface._zope_interface_coptimizations import providedBy
-    from zope.interface._zope_interface_coptimizations import (
+    from ._zope_interface_coptimizations import implementedBy
+    from ._zope_interface_coptimizations import providedBy
+    from ._zope_interface_coptimizations import (
         getObjectSpecification)
-    from zope.interface._zope_interface_coptimizations import (
+    from ._zope_interface_coptimizations import (
         ObjectSpecificationDescriptor)
 
 objectSpecificationDescriptor = ObjectSpecificationDescriptor()
diff --git a/mercurial/thirdparty/zope/interface/common/sequence.py b/mercurial/thirdparty/zope/interface/common/sequence.py
--- a/mercurial/thirdparty/zope/interface/common/sequence.py
+++ b/mercurial/thirdparty/zope/interface/common/sequence.py
@@ -13,8 +13,11 @@ 
 ##############################################################################
 """Sequence Interfaces
 """
+
+from __future__ import absolute_import
+
 __docformat__ = 'restructuredtext'
-from zope.interface import Interface
+from .. import Interface
 
 class IMinimalSequence(Interface):
     """Most basic sequence interface.
diff --git a/mercurial/thirdparty/zope/interface/common/mapping.py b/mercurial/thirdparty/zope/interface/common/mapping.py
--- a/mercurial/thirdparty/zope/interface/common/mapping.py
+++ b/mercurial/thirdparty/zope/interface/common/mapping.py
@@ -13,7 +13,10 @@ 
 ##############################################################################
 """Mapping Interfaces
 """
-from zope.interface import Interface
+
+from __future__ import absolute_import
+
+from .. import Interface
 
 class IItemMapping(Interface):
     """Simplest readable mapping object
@@ -42,13 +45,13 @@ 
 
 class IWriteMapping(Interface):
     """Mapping methods for changing data"""
-    
+
     def __delitem__(key):
         """Delete a value from the mapping using the key."""
 
     def __setitem__(key, value):
         """Set a new item in the mapping."""
-        
+
 
 class IEnumerableMapping(IReadMapping):
     """Mapping objects whose items can be enumerated.
@@ -89,32 +92,32 @@ 
         "iterate over items"
 
 class IClonableMapping(Interface):
-    
+
     def copy():
         "return copy of dict"
 
 class IExtendedReadMapping(IIterableMapping):
-    
+
     def has_key(key):
         """Tell if a key exists in the mapping; equivalent to __contains__"""
 
 class IExtendedWriteMapping(IWriteMapping):
-    
+
     def clear():
         "delete all items"
-    
+
     def update(d):
         " Update D from E: for k in E.keys(): D[k] = E[k]"
-    
+
     def setdefault(key, default=None):
         "D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D"
-    
+
     def pop(k, *args):
         """remove specified key and return the corresponding value
         *args may contain a single default value, or may not be supplied.
-        If key is not found, default is returned if given, otherwise 
+        If key is not found, default is returned if given, otherwise
         KeyError is raised"""
-    
+
     def popitem():
         """remove and return some (key, value) pair as a
         2-tuple; but raise KeyError if mapping is empty"""
diff --git a/mercurial/thirdparty/zope/interface/common/interfaces.py b/mercurial/thirdparty/zope/interface/common/interfaces.py
--- a/mercurial/thirdparty/zope/interface/common/interfaces.py
+++ b/mercurial/thirdparty/zope/interface/common/interfaces.py
@@ -13,8 +13,11 @@ 
 ##############################################################################
 """Interfaces for standard python exceptions
 """
-from zope.interface import Interface
-from zope.interface import classImplements
+
+from __future__ import absolute_import
+
+from .. import Interface
+from .. import classImplements
 
 class IException(Interface): pass
 class IStandardError(IException): pass
diff --git a/mercurial/thirdparty/zope/interface/common/idatetime.py b/mercurial/thirdparty/zope/interface/common/idatetime.py
--- a/mercurial/thirdparty/zope/interface/common/idatetime.py
+++ b/mercurial/thirdparty/zope/interface/common/idatetime.py
@@ -1,7 +1,7 @@ 
 ##############################################################################
 # Copyright (c) 2002 Zope Foundation and Contributors.
 # All Rights Reserved.
-# 
+#
 # This software is subject to the provisions of the Zope Public License,
 # Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
@@ -15,8 +15,10 @@ 
 of the real datetime would fail.
 """
 
-from zope.interface import Interface, Attribute
-from zope.interface import classImplements
+from __future__ import absolute_import
+
+from .. import Interface, Attribute
+from .. import classImplements
 
 from datetime import timedelta, date, datetime, time, tzinfo
 
@@ -112,7 +114,7 @@ 
 
         Except for those members given new values by whichever keyword
         arguments are specified. For example, if d == date(2002, 12, 31), then
-        d.replace(day=26) == date(2000, 12, 26). 
+        d.replace(day=26) == date(2000, 12, 26).
         """
 
     def timetuple():
@@ -232,7 +234,7 @@ 
         """Return the current UTC date and time, with tzinfo None.
 
         This is like now(), but returns the current UTC date and time, as a
-        naive datetime object. 
+        naive datetime object.
 
         See also now().
         """
@@ -357,7 +359,7 @@ 
         If you merely want to attach a time zone object tz to a datetime dt
         without adjustment of date and time members, use dt.replace(tzinfo=tz).
         If you merely want to remove the time zone object from an aware
-        datetime dt without conversion of date and time members, use 
+        datetime dt without conversion of date and time members, use
         dt.replace(tzinfo=None).
 
         Note that the default tzinfo.fromutc() method can be overridden in a
diff --git a/mercurial/thirdparty/zope/interface/advice.py b/mercurial/thirdparty/zope/interface/advice.py
--- a/mercurial/thirdparty/zope/interface/advice.py
+++ b/mercurial/thirdparty/zope/interface/advice.py
@@ -25,6 +25,8 @@ 
 Visit the PEAK home page at http://peak.telecommunity.com for more information.
 """
 
+from __future__ import absolute_import
+
 from types import FunctionType
 try:
     from types import ClassType
diff --git a/mercurial/thirdparty/zope/interface/adapter.py b/mercurial/thirdparty/zope/interface/adapter.py
--- a/mercurial/thirdparty/zope/interface/adapter.py
+++ b/mercurial/thirdparty/zope/interface/adapter.py
@@ -13,16 +13,18 @@ 
 ##############################################################################
 """Adapter management
 """
+from __future__ import absolute_import
+
 import weakref
 
-from zope.interface import implementer
-from zope.interface import providedBy
-from zope.interface import Interface
-from zope.interface import ro
-from zope.interface.interfaces import IAdapterRegistry
+from . import implementer
+from . import providedBy
+from . import Interface
+from . import ro
+from .interfaces import IAdapterRegistry
 
-from zope.interface._compat import _normalize_name
-from zope.interface._compat import STRING_TYPES
+from ._compat import _normalize_name
+from ._compat import STRING_TYPES
 
 _BLANK = u''
 
@@ -409,7 +411,7 @@ 
 LookupBasePy = LookupBaseFallback # BBB
 
 try:
-    from zope.interface._zope_interface_coptimizations import LookupBase
+    from ._zope_interface_coptimizations import LookupBase
 except ImportError:
     LookupBase = LookupBaseFallback
 
@@ -445,7 +447,7 @@ 
 VerifyingBasePy = VerifyingBaseFallback #BBB
 
 try:
-    from zope.interface._zope_interface_coptimizations import VerifyingBase
+    from ._zope_interface_coptimizations import VerifyingBase
 except ImportError:
     VerifyingBase = VerifyingBaseFallback
 
diff --git a/mercurial/thirdparty/zope/interface/_zope_interface_coptimizations.c b/mercurial/thirdparty/zope/interface/_zope_interface_coptimizations.c
--- a/mercurial/thirdparty/zope/interface/_zope_interface_coptimizations.c
+++ b/mercurial/thirdparty/zope/interface/_zope_interface_coptimizations.c
@@ -47,7 +47,8 @@ 
 {
   PyObject *declarations, *i;
 
-  declarations = PyImport_ImportModule("zope.interface.declarations");
+  declarations = PyImport_ImportModule(
+    "mercurial.thirdparty.zope.interface.declarations");
   if (declarations == NULL)
     return -1;
 
@@ -1336,7 +1337,7 @@ 
 static void
 verifying_dealloc(verify *self)
 {
-  PyObject_GC_UnTrack((PyObject *)self);   	
+  PyObject_GC_UnTrack((PyObject *)self);
   verifying_clear(self);
   Py_TYPE(self)->tp_free((PyObject*)self);
 }
diff --git a/mercurial/thirdparty/zope/interface/_flatten.py b/mercurial/thirdparty/zope/interface/_flatten.py
--- a/mercurial/thirdparty/zope/interface/_flatten.py
+++ b/mercurial/thirdparty/zope/interface/_flatten.py
@@ -15,7 +15,10 @@ 
 
 See Adapter class.
 """
-from zope.interface import Declaration
+
+from __future__ import absolute_import
+
+from .interface import Declaration
 
 def _flatten(implements, include_None=0):
 
diff --git a/mercurial/thirdparty/zope/interface/_compat.py b/mercurial/thirdparty/zope/interface/_compat.py
--- a/mercurial/thirdparty/zope/interface/_compat.py
+++ b/mercurial/thirdparty/zope/interface/_compat.py
@@ -13,6 +13,8 @@ 
 ##############################################################################
 """Basic components support
 """
+from __future__ import absolute_import
+
 import sys
 import types
 
diff --git a/mercurial/thirdparty/zope/interface/__init__.py b/mercurial/thirdparty/zope/interface/__init__.py
--- a/mercurial/thirdparty/zope/interface/__init__.py
+++ b/mercurial/thirdparty/zope/interface/__init__.py
@@ -48,42 +48,45 @@ 
 
 See the module doc strings for more information.
 """
+
+from __future__ import absolute_import
+
 __docformat__ = 'restructuredtext'
 
-from zope.interface.interface import Interface
-from zope.interface.interface import _wire
+from .interface import Interface
+from .interface import _wire
 
 # Need to actually get the interface elements to implement the right interfaces
 _wire()
 del _wire
 
-from zope.interface.declarations import Declaration
-from zope.interface.declarations import alsoProvides
-from zope.interface.declarations import classImplements
-from zope.interface.declarations import classImplementsOnly
-from zope.interface.declarations import classProvides
-from zope.interface.declarations import directlyProvidedBy
-from zope.interface.declarations import directlyProvides
-from zope.interface.declarations import implementedBy
-from zope.interface.declarations import implementer
-from zope.interface.declarations import implementer_only
-from zope.interface.declarations import implements
-from zope.interface.declarations import implementsOnly
-from zope.interface.declarations import moduleProvides
-from zope.interface.declarations import named
-from zope.interface.declarations import noLongerProvides
-from zope.interface.declarations import providedBy
-from zope.interface.declarations import provider
-from zope.interface.exceptions import Invalid
-from zope.interface.interface import Attribute
-from zope.interface.interface import invariant
-from zope.interface.interface import taggedValue
+from .declarations import Declaration
+from .declarations import alsoProvides
+from .declarations import classImplements
+from .declarations import classImplementsOnly
+from .declarations import classProvides
+from .declarations import directlyProvidedBy
+from .declarations import directlyProvides
+from .declarations import implementedBy
+from .declarations import implementer
+from .declarations import implementer_only
+from .declarations import implements
+from .declarations import implementsOnly
+from .declarations import moduleProvides
+from .declarations import named
+from .declarations import noLongerProvides
+from .declarations import providedBy
+from .declarations import provider
+from .exceptions import Invalid
+from .interface import Attribute
+from .interface import invariant
+from .interface import taggedValue
 
 # The following are to make spec pickles cleaner
-from zope.interface.declarations import Provides
+from .declarations import Provides
 
 
-from zope.interface.interfaces import IInterfaceDeclaration
+from .interfaces import IInterfaceDeclaration
 
 moduleProvides(IInterfaceDeclaration)