We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
2 parents 8599a03 + 0bf0141 commit 64b995fCopy full SHA for 64b995f
1 file changed
labgrid/util/yaml.py
@@ -2,6 +2,8 @@
2
This module contains the custom YAML load and dump functions and associated
3
loader and dumper
4
"""
5
+
6
+import warnings
7
from collections import OrderedDict, UserString
8
from string import Template
9
@@ -16,7 +18,19 @@ class Dumper(yaml.SafeDumper):
16
18
pass
17
19
20
21
+def _check_duplicate_dict_keys(loader, node):
22
+ seen_keys = []
23
+ for key_node, _ in node.value:
24
+ key = loader.construct_scalar(key_node)
25
+ if key in seen_keys:
26
+ warnings.warn(
27
+ f"{loader.name}: previous entry with duplicate YAML dictionary key '{key}' overwritten", UserWarning
28
+ )
29
+ seen_keys.append(key)
30
31
32
def _dict_constructor(loader, node):
33
+ _check_duplicate_dict_keys(loader, node)
34
return OrderedDict(loader.construct_pairs(node))
35
36
0 commit comments