summaryrefslogtreecommitdiff
path: root/lib/spack/external/pyqver2.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/spack/external/pyqver2.py')
-rwxr-xr-xlib/spack/external/pyqver2.py70
1 files changed, 2 insertions, 68 deletions
diff --git a/lib/spack/external/pyqver2.py b/lib/spack/external/pyqver2.py
index 571e005524..07b191425b 100755
--- a/lib/spack/external/pyqver2.py
+++ b/lib/spack/external/pyqver2.py
@@ -57,11 +57,7 @@ StandardModules = {
"hmac": (2, 2),
"hotshot": (2, 2),
"HTMLParser": (2, 2),
-# skip importlib until we can conditionally skip for pytest.
-# pytest tries to import this and catches the exception, but
-# the test will still fail.
-# TODO: can we excelude with a comment like '# flake: noqa?'
-# "importlib": (2, 7),
+ "importlib": (2, 7),
"inspect": (2, 1),
"io": (2, 6),
"itertools": (2, 3),
@@ -262,7 +258,7 @@ class NodeChecker(object):
self.add(node, (2,2), "yield expression")
self.default(node)
-def get_versions(source):
+def get_versions(source, filename=None):
"""Return information about the Python versions required for specific features.
The return value is a dictionary with keys as a version number as a tuple
@@ -346,65 +342,3 @@ def qver(source):
#(2, 6)
"""
return max(get_versions(source).keys())
-
-
-if __name__ == '__main__':
-
- Verbose = False
- MinVersion = (2, 3)
- Lint = False
-
- files = []
- i = 1
- while i < len(sys.argv):
- a = sys.argv[i]
- if a == "--test":
- import doctest
- doctest.testmod()
- sys.exit(0)
- if a == "-v" or a == "--verbose":
- Verbose = True
- elif a == "-l" or a == "--lint":
- Lint = True
- elif a == "-m" or a == "--min-version":
- i += 1
- MinVersion = tuple(map(int, sys.argv[i].split(".")))
- else:
- files.append(a)
- i += 1
-
- if not files:
- print >>sys.stderr, """Usage: %s [options] source ...
-
- Report minimum Python version required to run given source files.
-
- -m x.y or --min-version x.y (default 2.3)
- report version triggers at or above version x.y in verbose mode
- -v or --verbose
- print more detailed report of version triggers for each version
- """ % sys.argv[0]
- sys.exit(1)
-
- for fn in files:
- try:
- f = open(fn)
- source = f.read()
- f.close()
- ver = get_versions(source)
- if Verbose:
- print fn
- for v in sorted([k for k in ver.keys() if k >= MinVersion], reverse=True):
- reasons = [x for x in uniq(ver[v]) if x]
- if reasons:
- # each reason is (lineno, message)
- print "\t%s\t%s" % (".".join(map(str, v)), ", ".join([x[1] for x in reasons]))
- elif Lint:
- for v in sorted([k for k in ver.keys() if k >= MinVersion], reverse=True):
- reasons = [x for x in uniq(ver[v]) if x]
- for r in reasons:
- # each reason is (lineno, message)
- print "%s:%s: %s %s" % (fn, r[0], ".".join(map(str, v)), r[1])
- else:
- print "%s\t%s" % (".".join(map(str, max(ver.keys()))), fn)
- except SyntaxError, x:
- print "%s: syntax error compiling with Python %s: %s" % (fn, platform.python_version(), x)