[PATCH 8 of 8] import-checker: print hint to use absolute_import
Gregory Szorc
gregory.szorc at gmail.com
Mon May 25 14:23:52 CDT 2015
# HG changeset patch
# User Gregory Szorc <gregory.szorc at gmail.com>
# Date 1432581750 25200
# Mon May 25 12:22:30 2015 -0700
# Node ID 379cecb41e7fb6a1703a5cb7442a9e8016f5a177
# Parent 8daa70ee538105207ece9a23be502aabd26d94e7
import-checker: print hint to use absolute_import
We no longer have mixed imports in the source tree. Mixed imports can
be eliminated by using `from __future__ import absolute_import`. Add
a reference to absolute_import to the emitted error message so people
know they should be using absolute_import.
diff --git a/contrib/import-checker.py b/contrib/import-checker.py
--- a/contrib/import-checker.py
+++ b/contrib/import-checker.py
@@ -267,9 +267,9 @@ def verify_stdlib_on_own_line(source):
annoying lib2to3 bug in relative import rewrites:
http://bugs.python.org/issue19510.
>>> list(verify_stdlib_on_own_line('import sys, foo'))
- ['mixed imports\\n stdlib: sys\\n relative: foo']
+ ['mixed imports (use absolute_import)\\n stdlib: sys\\n relative: foo']
>>> list(verify_stdlib_on_own_line('import sys, os'))
[]
>>> list(verify_stdlib_on_own_line('import foo, bar'))
[]
@@ -279,9 +279,11 @@ def verify_stdlib_on_own_line(source):
from_stdlib = {False: [], True: []}
for n in node.names:
from_stdlib[n.name in stdlib_modules].append(n.name)
if from_stdlib[True] and from_stdlib[False]:
- yield ('mixed imports\n stdlib: %s\n relative: %s' %
+ yield ('mixed imports (use absolute_import)\n'
+ ' stdlib: %s\n'
+ ' relative: %s' %
(', '.join(sorted(from_stdlib[True])),
', '.join(sorted(from_stdlib[False]))))
class CircularImport(Exception):
More information about the Mercurial-devel
mailing list