@@ -86,27 +86,31 @@ def cmap(d, lc=None, fn=None): # type: (Union[int, float, str, unicode, Dict, L
8686 fn = "test"
8787
8888 if isinstance (d , CommentedMap ):
89+ fn = d .lc .filename if hasattr (d .lc , "filename" ) else fn
8990 for k ,v in d .iteritems ():
9091 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 )
9293 else :
93- d [k ] = cmap (v , lc , fn = d . lc . filename )
94+ d [k ] = cmap (v , lc , fn = fn )
9495 return d
9596 if isinstance (d , CommentedSeq ):
97+ fn = d .lc .filename if hasattr (d .lc , "filename" ) else fn
9698 for k ,v in enumerate (d ):
9799 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 )
99101 else :
100- d [k ] = cmap (v , lc , fn = d . lc . filename )
102+ d [k ] = cmap (v , lc , fn = fn )
101103 return d
102104 if isinstance (d , dict ):
103105 cm = CommentedMap ()
104106 for k ,v in d .iteritems ():
105107 if isinstance (v , CommentedBase ):
106108 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
107110 else :
108111 uselc = lc
109- cm [k ] = cmap (v )
112+ vfn = fn
113+ cm [k ] = cmap (v , lc = uselc , fn = vfn )
110114 cm .lc .add_kv_line_col (k , uselc )
111115 cm .lc .filename = fn
112116 return cm
@@ -115,9 +119,11 @@ def cmap(d, lc=None, fn=None): # type: (Union[int, float, str, unicode, Dict, L
115119 for k ,v in enumerate (d ):
116120 if isinstance (v , CommentedBase ):
117121 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
118123 else :
119124 uselc = lc
120- cs .append (cmap (v ))
125+ vfn = fn
126+ cs .append (cmap (v , lc = uselc , fn = vfn ))
121127 cs .lc .add_kv_line_col (k , uselc )
122128 cs .lc .filename = fn
123129 return cs
0 commit comments