@@ -63,17 +63,15 @@ def varmap(func, var, context=None, name=None, **kwargs):
63
63
if objid in context :
64
64
return func (name , "<...>" , ** kwargs )
65
65
context .add (objid )
66
- if isinstance (var , dict ):
67
- # Apply func() before recursion, so that `shorten()` doesn't have to iterate over all the trimmed values
68
- ret = func (name , var , ** kwargs )
66
+
67
+ # Apply func() before recursion, so that `shorten()` doesn't have to iterate over all the trimmed values
68
+ ret = func (name , var , ** kwargs )
69
+ if isinstance (ret , dict ):
69
70
# iterate over a copy of the dictionary to avoid "dictionary changed size during iteration" issues
70
71
ret = dict ((k , varmap (func , v , context , k , ** kwargs )) for k , v in ret .copy ().items ())
71
- elif isinstance (var , (list , tuple )):
72
+ elif isinstance (ret , (list , tuple )):
72
73
# Apply func() before recursion, so that `shorten()` doesn't have to iterate over all the trimmed values
73
- ret = func (name , var , ** kwargs )
74
74
ret = [varmap (func , f , context , name , ** kwargs ) for f in ret ]
75
- else :
76
- ret = func (name , var , ** kwargs )
77
75
context .remove (objid )
78
76
return ret
79
77
0 commit comments