in src/pydolphinscheduler/utils/yaml_parser.py [0:0]
def dict_parser(self) -> dict:
"""Get :class:`CommentedMap` to nested dict using :param:`delimiter` as key delimiter.
Use Depth-First-Search get all nested key and value, and all key connect by :param:`delimiter`.
It make users could easier access or change :class:`CommentedMap` object.
For example, yaml config named ``test.yaml`` and its content as below:
.. code-block:: yaml
one:
two1:
three: value1
two2: value2
It could parser to nested dict as
.. code-block:: python
{
"one": ordereddict([('two1', ordereddict([('three', 'value1')])), ('two2', 'value2')]),
"one.two1": ordereddict([('three', 'value1')]),
"one.two1.three": "value1",
"one.two2": "value2",
}
"""
res = dict()
src_parser_copy = copy.deepcopy(self.src_parser)
base_keys = set(src_parser_copy.keys())
if not base_keys:
return res
else:
for key in base_keys:
res[key] = src_parser_copy[key]
self.parse_nested_dict(res, src_parser_copy[key], key)
return res