diff --git a/benedict/dicts/__init__.py b/benedict/dicts/__init__.py index 8858b39..a309144 100644 --- a/benedict/dicts/__init__.py +++ b/benedict/dicts/__init__.py @@ -270,3 +270,10 @@ class benedict(KeypathDict, IODict, ParseDict): Remove duplicated values from the current dict instance. """ _unique(self) + + +# fix benedict yaml representer - #43 +from yaml import SafeDumper +from yaml.representer import SafeRepresenter + +SafeDumper.yaml_representers[cls] = SafeRepresenter.represent_dict diff --git a/tests/github/test_issue_0043.py b/tests/github/test_issue_0043.py index 479e758..2e09f4c 100644 --- a/tests/github/test_issue_0043.py +++ b/tests/github/test_issue_0043.py @@ -3,6 +3,7 @@ from benedict import benedict import unittest +import yaml class github_issue_0043_test_case(unittest.TestCase): @@ -21,3 +22,8 @@ class github_issue_0043_test_case(unittest.TestCase): level2: Hello world """ self.assertEqual(s, r) + + def test_dict_compatibility(self): + yaml.safe_dump(dict(benedict({}))) + yaml.safe_dump(dict(benedict({"level1": None}))) + yaml.safe_dump(dict(benedict({"level1": {"level2": "blablabla"}})))