# HG changeset patch # User Gregory Szorc # Date 2018-03-22 02:52:30 # Node ID 68ee61822182ae3f783c11f3d21d79e323aa4472 # Parent 338367d44d34fb9cd61a97bfc0c449cac007fe67 thirdparty: port zope.interface to relative imports 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. # no-check-commit because some modified lines have double newlines Differential Revision: https://phab.mercurial-scm.org/D2930 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 @@ The package has several public modules: 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) 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/_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/_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 @@ import_declarations(void) { 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 @@ verifying_clear(verify *self) 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/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 @@ class LookupBaseFallback(object): 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 @@ class VerifyingBaseFallback(LookupBaseFa 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/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 @@ models, object-relational persistence, a 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/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 @@ This module is called idatetime because 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 @@ class IDate(IDateClass): 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 @@ class IDateTimeClass(Interface): """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 @@ class IDateTime(IDate, IDateTimeClass): 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/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/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 IReadMapping(IItemMapping): 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 @@ class IIterableMapping(IEnumerableMappin "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/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/declarations.py b/mercurial/thirdparty/zope/interface/declarations.py --- a/mercurial/thirdparty/zope/interface/declarations.py +++ b/mercurial/thirdparty/zope/interface/declarations.py @@ -24,6 +24,8 @@ There are three flavors of declarations: provided by objects. """ +from __future__ import absolute_import + __docformat__ = 'restructuredtext' import sys @@ -32,12 +34,12 @@ 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 @@ ClassProvidesBase = ClassProvidesBaseFal # 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 @@ def _normalizeargs(sequence, output = No _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/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 @@ def asStructuredText(I, munge=0, rst=Fal 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/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/interface.py b/mercurial/thirdparty/zope/interface/interface.py --- a/mercurial/thirdparty/zope/interface/interface.py +++ b/mercurial/thirdparty/zope/interface/interface.py @@ -13,7 +13,7 @@ ############################################################################## """Interface object implementation """ -from __future__ import generators +from __future__ import absolute_import, generators import sys from types import MethodType @@ -21,8 +21,8 @@ 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 @@ class SpecificationBasePy(object): SpecificationBase = SpecificationBasePy try: - from zope.interface._zope_interface_coptimizations import SpecificationBase + from ._zope_interface_coptimizations import SpecificationBase except ImportError: pass @@ -155,14 +155,14 @@ class InterfaceBasePy(object): 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 @@ def fromMethod(meth, interface=None, nam # 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/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 @@ class IInterfaceDeclaration(Interface): 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/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/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/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