Skip to content

Commit f0b88d0

Browse files
authored
Bump major version number, because of backwards-incompatible changes. (#63)
1 parent 8ac4540 commit f0b88d0

File tree

3 files changed

+31
-5
lines changed

3 files changed

+31
-5
lines changed

schema_salad/ref_resolver.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -600,7 +600,7 @@ def resolve_all(self,
600600
elif isinstance(document, CommentedSeq):
601601
pass
602602
elif isinstance(document, (list, dict)):
603-
raise Exception("Expected CommentedMap or CommentedSeq, got %s" % type(document))
603+
raise Exception("Expected CommentedMap or CommentedSeq, got %s: `%s`" % (type(document), document))
604604
else:
605605
return (document, metadata)
606606

@@ -902,4 +902,7 @@ def _copy_dict_without_key(from_dict, filtered_key):
902902
new_dict = copy.copy(from_dict)
903903
if filtered_key in new_dict:
904904
del new_dict[filtered_key] # type: ignore
905+
if isinstance(from_dict, CommentedMap):
906+
new_dict.lc.data = copy.copy(from_dict.lc.data)
907+
new_dict.lc.filename = from_dict.lc.filename
905908
return new_dict

schema_salad/sourceline.py

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,18 +84,41 @@ def cmap(d, lc=None, fn=None): # type: (Union[int, float, str, unicode, Dict, L
8484
lc = [0, 0, 0, 0]
8585
if fn is None:
8686
fn = "test"
87+
88+
if isinstance(d, CommentedMap):
89+
for k,v in d.iteritems():
90+
if k in d.lc.data:
91+
d[k] = cmap(v, lc=d.lc.data[k], fn=d.lc.filename)
92+
else:
93+
d[k] = cmap(v, lc, fn=d.lc.filename)
94+
return d
95+
if isinstance(d, CommentedSeq):
96+
for k,v in enumerate(d):
97+
if k in d.lc.data:
98+
d[k] = cmap(v, lc=d.lc.data[k], fn=d.lc.filename)
99+
else:
100+
d[k] = cmap(v, lc, fn=d.lc.filename)
101+
return d
87102
if isinstance(d, dict):
88103
cm = CommentedMap()
89104
for k,v in d.iteritems():
105+
if isinstance(v, CommentedBase):
106+
uselc = [v.lc.line, v.lc.col, v.lc.line, v.lc.col]
107+
else:
108+
uselc = lc
90109
cm[k] = cmap(v)
91-
cm.lc.add_kv_line_col(k, lc)
110+
cm.lc.add_kv_line_col(k, uselc)
92111
cm.lc.filename = fn
93112
return cm
94113
if isinstance(d, list):
95114
cs = CommentedSeq()
96115
for k,v in enumerate(d):
116+
if isinstance(v, CommentedBase):
117+
uselc = [v.lc.line, v.lc.col, v.lc.line, v.lc.col]
118+
else:
119+
uselc = lc
97120
cs.append(cmap(v))
98-
cs.lc.add_kv_line_col(k, lc)
121+
cs.lc.add_kv_line_col(k, uselc)
99122
cs.lc.filename = fn
100123
return cs
101124
else:
@@ -119,7 +142,7 @@ def makeError(self, msg): # type: (Text) -> Any
119142
if not isinstance(self.item, ruamel.yaml.comments.CommentedBase):
120143
return self.raise_type(msg)
121144
errs = []
122-
if self.key is None:
145+
if self.key is None or self.item.lc.data is None or self.key not in self.item.lc.data:
123146
lead = "%s:%i:%i:" % (self.item.lc.filename,
124147
self.item.lc.line+1,
125148
self.item.lc.col+1)

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
extras_require = {} # TODO: to be removed when the above is added
4747

4848
setup(name='schema-salad',
49-
version='1.19',
49+
version='2.0',
5050
description='Schema Annotations for Linked Avro Data (SALAD)',
5151
long_description=open(README).read(),
5252
author='Common workflow language working group',

0 commit comments

Comments
 (0)