mirror of
https://github.com/python/cpython.git
synced 2025-12-23 09:19:18 +00:00
Optimize
This commit is contained in:
parent
ba9e483d23
commit
da10fd408b
1 changed files with 9 additions and 5 deletions
|
|
@ -77,15 +77,19 @@ def expandvars(str, vars):
|
|||
if name[-1] != ')':
|
||||
return m[0]
|
||||
name = name[1:-1]
|
||||
if name in vars and name not in seen:
|
||||
seen.add(name)
|
||||
result = expandvars(vars[name])
|
||||
seen.remove(name)
|
||||
|
||||
if name in resolved:
|
||||
result = resolved[name]
|
||||
if result is not None:
|
||||
return result
|
||||
elif name in vars:
|
||||
resolved[name] = None
|
||||
result = resolved[name] = expandvars(vars[name])
|
||||
return result
|
||||
return m[0]
|
||||
|
||||
def expandvars(str):
|
||||
return re.sub(r'(?m)\$(\([^)]*\)?|.)', repl, str)
|
||||
|
||||
seen = set()
|
||||
resolved = {}
|
||||
return expandvars(str)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue