D2931: thirdparty: allow zope.interface.advice to be lazily imported
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Thu Mar 22 04:09:51 UTC 2018
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
The symbol from this module is only used in functions. Let's access
that symbol through its imported module so importing
zope.interface.advice can be lazy.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D2931
AFFECTED FILES
mercurial/thirdparty/zope/interface/declarations.py
CHANGE DETAILS
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
@@ -34,7 +34,7 @@
from types import ModuleType
import weakref
-from .advice import addClassAdvisor
+from . import advice as advicemod
from .interface import InterfaceClass
from .interface import SpecificationBase
from .interface import Specification
@@ -451,7 +451,7 @@
raise TypeError(name+" can be used only once in a class definition.")
locals['__implements_advice_data__'] = interfaces, classImplements
- addClassAdvisor(_implements_advice, depth=3)
+ advicemod.addClassAdvisor(_implements_advice, depth=3)
def implements(*interfaces):
"""Declare interfaces implemented by instances of a class
@@ -732,7 +732,7 @@
locals["__provides__"] = _normalizeargs(interfaces)
- addClassAdvisor(_classProvides_advice, depth=2)
+ advicemod.addClassAdvisor(_classProvides_advice, depth=2)
def _classProvides_advice(cls):
# This entire approach is invalid under Py3K. Don't even try to fix
To: indygreg, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list