core.config
===========

.. py:module:: core.config

.. autoapi-nested-parse::

   The Config class initializes and parses configurations for all other steps.
   It supports CLI argument parsing, loading from YAML file, and overrides to allow
   flexible setup in various environments.









Module Contents
---------------

.. py:data:: EMPTY_CONFIG

.. py:class:: DefaultValidatingParser(prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True, allow_abbrev=True, exit_on_error=True)

   Bases: :py:obj:`argparse.ArgumentParser`


   Object for parsing command line strings into Python objects.

   :keyword - prog -- The name of the program (default: ``os.path.basename(sys.argv[0])``)
   :keyword - usage -- A usage message (default: auto-generated from arguments)
   :keyword - description -- A description of what the program does:
   :keyword - epilog -- Text following the argument descriptions:
   :keyword - parents -- Parsers whose arguments should be copied into this one:
   :keyword - formatter_class -- HelpFormatter class for printing help messages:
   :keyword - prefix_chars -- Characters that prefix optional arguments:
   :keyword - fromfile_prefix_chars -- Characters that prefix files containing: additional arguments
   :keyword - argument_default -- The default value for all arguments:
   :keyword - conflict_handler -- String indicating how to handle conflicts:
   :keyword - add_help -- Add a -h/-help option:
   :keyword - allow_abbrev -- Allow long options to be abbreviated unambiguously:
   :keyword - exit_on_error -- Determines whether or not ArgumentParser exits with: error info when an error occurs


   .. py:method:: error(message)

      Override of error to format a nicer looking error message using logger



   .. py:method:: parse_known_args(args=None, namespace=None)

      Override of parse_known_args to also check the 'defaults' values - which are passed in from the config file



.. py:function:: to_dot_notation(yaml_conf: ruamel.yaml.CommentedMap | dict) -> dict

.. py:function:: from_dot_notation(dotdict: dict) -> dict

.. py:function:: is_list_type(value)

.. py:function:: is_dict_type(value)

.. py:function:: merge_dicts(dotdict: dict, yaml_dict: ruamel.yaml.CommentedMap) -> ruamel.yaml.CommentedMap

.. py:function:: read_yaml(yaml_filename: str) -> ruamel.yaml.CommentedMap

.. py:function:: store_yaml(config: ruamel.yaml.CommentedMap, yaml_filename: str) -> None

