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.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/spack/external/pyqver2.py b/lib/spack/external/pyqver2.py
index cd45bf948f..4a16e2811e 100755
--- a/lib/spack/external/pyqver2.py
+++ b/lib/spack/external/pyqver2.py
@@ -165,12 +165,24 @@ class NodeChecker(object):
def rollup(n):
if isinstance(n, compiler.ast.Name):
return n.name
+ elif isinstance(n, compiler.ast.Const):
+ return type(n.value).__name__
elif isinstance(n, compiler.ast.Getattr):
r = rollup(n.expr)
if r:
return r + "." + n.attrname
name = rollup(node.node)
if name:
+ # Special handling for empty format strings, which aren't
+ # allowed in Python 2.6
+ if name in ('unicode.format', 'str.format'):
+ n = node.node
+ if isinstance(n, compiler.ast.Getattr):
+ n = n.expr
+ if isinstance(n, compiler.ast.Const):
+ if '{}' in n.value:
+ self.add(node, (2,7), name + ' with {} format string')
+
v = Functions.get(name)
if v is not None:
self.add(node, v, name)