@@ -86,27 +86,31 @@ def cmap(d, lc=None, fn=None): # type: (Union[int, float, str, unicode, Dict, L
86
86
fn = "test"
87
87
88
88
if isinstance (d , CommentedMap ):
89
+ fn = d .lc .filename if hasattr (d .lc , "filename" ) else fn
89
90
for k ,v in d .iteritems ():
90
91
if k in d .lc .data :
91
- d [k ] = cmap (v , lc = d .lc .data [k ], fn = d . lc . filename )
92
+ d [k ] = cmap (v , lc = d .lc .data [k ], fn = fn )
92
93
else :
93
- d [k ] = cmap (v , lc , fn = d . lc . filename )
94
+ d [k ] = cmap (v , lc , fn = fn )
94
95
return d
95
96
if isinstance (d , CommentedSeq ):
97
+ fn = d .lc .filename if hasattr (d .lc , "filename" ) else fn
96
98
for k ,v in enumerate (d ):
97
99
if k in d .lc .data :
98
- d [k ] = cmap (v , lc = d .lc .data [k ], fn = d . lc . filename )
100
+ d [k ] = cmap (v , lc = d .lc .data [k ], fn = fn )
99
101
else :
100
- d [k ] = cmap (v , lc , fn = d . lc . filename )
102
+ d [k ] = cmap (v , lc , fn = fn )
101
103
return d
102
104
if isinstance (d , dict ):
103
105
cm = CommentedMap ()
104
106
for k ,v in d .iteritems ():
105
107
if isinstance (v , CommentedBase ):
106
108
uselc = [v .lc .line , v .lc .col , v .lc .line , v .lc .col ]
109
+ vfn = v .lc .filename if hasattr (v .lc , "filename" ) else fn
107
110
else :
108
111
uselc = lc
109
- cm [k ] = cmap (v )
112
+ vfn = fn
113
+ cm [k ] = cmap (v , lc = uselc , fn = vfn )
110
114
cm .lc .add_kv_line_col (k , uselc )
111
115
cm .lc .filename = fn
112
116
return cm
@@ -115,9 +119,11 @@ def cmap(d, lc=None, fn=None): # type: (Union[int, float, str, unicode, Dict, L
115
119
for k ,v in enumerate (d ):
116
120
if isinstance (v , CommentedBase ):
117
121
uselc = [v .lc .line , v .lc .col , v .lc .line , v .lc .col ]
122
+ vfn = v .lc .filename if hasattr (v .lc , "filename" ) else fn
118
123
else :
119
124
uselc = lc
120
- cs .append (cmap (v ))
125
+ vfn = fn
126
+ cs .append (cmap (v , lc = uselc , fn = vfn ))
121
127
cs .lc .add_kv_line_col (k , uselc )
122
128
cs .lc .filename = fn
123
129
return cs
0 commit comments