def dict_parser()

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