diff options
author | Thom Smith <thom@thomthesmith.com> | 2021-09-22 14:13:40 -0400 |
---|---|---|
committer | Thom Smith <thom@thomthesmith.com> | 2021-09-22 14:13:40 -0400 |
commit | 5855254e834b7f250dd346007117630305e0d2b8 (patch) | |
tree | 44dedbeaf103af55ca242b026852de1625419f0a | |
parent | f8e89b3fefbda11932a2344fa1069a40b8c3726d (diff) | |
download | pyyaml-git-override-anchor-6.0.tar.gz |
Don't error on duplicate anchor namesoverride-anchor-6.0
-rw-r--r-- | lib/yaml/composer.py | 5 | ||||
-rw-r--r-- | tests/data/duplicate-anchor-1.loader-error | 3 | ||||
-rw-r--r-- | tests/data/override-anchor-1.code | 1 | ||||
-rw-r--r-- | tests/data/override-anchor-1.data | 4 | ||||
-rw-r--r-- | tests/data/override-anchor-2.code | 1 | ||||
-rw-r--r-- | tests/data/override-anchor-2.data (renamed from tests/data/duplicate-anchor-2.loader-error) | 0 | ||||
-rw-r--r-- | yaml/_yaml.pyx | 13 |
7 files changed, 6 insertions, 21 deletions
diff --git a/lib/yaml/composer.py b/lib/yaml/composer.py index 6d15cb4..a034c5f 100644 --- a/lib/yaml/composer.py +++ b/lib/yaml/composer.py @@ -70,11 +70,6 @@ class Composer: return self.anchors[anchor] event = self.peek_event() anchor = event.anchor - if anchor is not None: - if anchor in self.anchors: - raise ComposerError("found duplicate anchor %r; first occurrence" - % anchor, self.anchors[anchor].start_mark, - "second occurrence", event.start_mark) self.descend_resolver(parent, index) if self.check_event(ScalarEvent): node = self.compose_scalar_node(anchor) diff --git a/tests/data/duplicate-anchor-1.loader-error b/tests/data/duplicate-anchor-1.loader-error deleted file mode 100644 index 906cf29..0000000 --- a/tests/data/duplicate-anchor-1.loader-error +++ /dev/null @@ -1,3 +0,0 @@ -- &foo bar -- &bar bar -- &foo bar diff --git a/tests/data/override-anchor-1.code b/tests/data/override-anchor-1.code new file mode 100644 index 0000000..ea27518 --- /dev/null +++ b/tests/data/override-anchor-1.code @@ -0,0 +1 @@ +(['bar', 'bar', 'baz', 'baz']) diff --git a/tests/data/override-anchor-1.data b/tests/data/override-anchor-1.data new file mode 100644 index 0000000..a97f71e --- /dev/null +++ b/tests/data/override-anchor-1.data @@ -0,0 +1,4 @@ +- &foo bar +- *foo +- &foo baz +- *foo diff --git a/tests/data/override-anchor-2.code b/tests/data/override-anchor-2.code new file mode 100644 index 0000000..12bae17 --- /dev/null +++ b/tests/data/override-anchor-2.code @@ -0,0 +1 @@ +[1, 2, 3, 4] diff --git a/tests/data/duplicate-anchor-2.loader-error b/tests/data/override-anchor-2.data index 62b4389..62b4389 100644 --- a/tests/data/duplicate-anchor-2.loader-error +++ b/tests/data/override-anchor-2.data diff --git a/yaml/_yaml.pyx b/yaml/_yaml.pyx index ff4efe8..77c0109 100644 --- a/yaml/_yaml.pyx +++ b/yaml/_yaml.pyx @@ -754,19 +754,6 @@ cdef class CParser: elif self.parsed_event.type == YAML_MAPPING_START_EVENT \ and self.parsed_event.data.mapping_start.anchor != NULL: anchor = PyUnicode_FromString(self.parsed_event.data.mapping_start.anchor) - if anchor is not None: - if anchor in self.anchors: - mark = Mark(self.stream_name, - self.parsed_event.start_mark.index, - self.parsed_event.start_mark.line, - self.parsed_event.start_mark.column, - None, None) - if PY_MAJOR_VERSION < 3: - raise ComposerError("found duplicate anchor; first occurrence", - self.anchors[anchor].start_mark, "second occurrence", mark) - else: - raise ComposerError(u"found duplicate anchor; first occurrence", - self.anchors[anchor].start_mark, u"second occurrence", mark) self.descend_resolver(parent, index) if self.parsed_event.type == YAML_SCALAR_EVENT: node = self._compose_scalar_node(anchor) |