MCPcopy Index your code
hub / github.com/python/cpython / resolve_var

Function resolve_var

Lib/sysconfig/__main__.py:61–114  ·  view source on GitHub ↗
(name)

Source from the content-addressed store, hash-verified

59 renamed_variables = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS')
60
61 def resolve_var(name):
62 def repl(m):
63 n = m[1]
64 if n == '$':
65 return '$'
66 elif n == '':
67 # bogus variable reference (e.g. "prefix=$/opt/python")
68 if keep_unresolved:
69 return m[0]
70 raise ValueError
71 elif n[0] == '(' and n[-1] == ')':
72 n = n[1:-1]
73 elif n[0] == '{' and n[-1] == '}':
74 n = n[1:-1]
75
76 if n in done:
77 return str(done[n])
78 elif n in notdone:
79 return str(resolve_var(n))
80 elif n in os.environ:
81 # do it like make: fall back to environment
82 return os.environ[n]
83 elif n in renamed_variables:
84 if name.startswith('PY_') and name[3:] in renamed_variables:
85 return ""
86 n = 'PY_' + n
87 if n in notdone:
88 return str(resolve_var(n))
89 else:
90 assert n not in done
91 return ""
92 else:
93 done[n] = ""
94 return ""
95
96 assert name not in done
97 done[name] = ""
98 try:
99 value = re.sub(_findvar_rx, repl, notdone[name])
100 except ValueError:
101 del done[name]
102 return ""
103 value = value.strip()
104 if name not in _ALWAYS_STR:
105 try:
106 value = int(value)
107 except ValueError:
108 pass
109 done[name] = value
110 if name.startswith('PY_') and name[3:] in renamed_variables:
111 name = name[3:]
112 if name not in done:
113 done[name] = value
114 return value
115
116 for n in notdone:
117 if n not in done:

Callers 2

replFunction · 0.85
_parse_makefileFunction · 0.85

Calls 3

subMethod · 0.45
stripMethod · 0.45
startswithMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…