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:: DEFAULT_CONFIG_FILE
   :value: 'secrets/orchestration.yaml'


.. py:data:: EMPTY_CONFIG

.. py:class:: AuthenticationJsonParseAction(option_strings, dest, nargs=None, const=None, default=None, type=None, choices=None, required=False, help=None, metavar=None)

   Bases: :py:obj:`argparse.Action`


   Information about how to convert command line strings to Python objects.

   Action objects are used by an ArgumentParser to represent the information
   needed to parse a single argument from one or more strings from the
   command line. The keyword arguments to the Action constructor are also
   all attributes of Action instances.

   :keyword - option_strings -- A list of command-line option strings which: should be associated with this action.
   :keyword - dest -- The name of the attribute to hold the created object:
   :kwtype - dest -- The name of the attribute to hold the created object: s
   :keyword - nargs -- The number of command-line arguments that should be: consumed. By default, one argument will be consumed and a single
                                                                            value will be produced.  Other values include:
                                                                                - N (an integer) consumes N arguments (and produces a list)
                                                                                - '?' consumes zero or one arguments
                                                                                - '*' consumes zero or more arguments (and produces a list)
                                                                                - '+' consumes one or more arguments (and produces a list)
                                                                            Note that the difference between the default and nargs=1 is that
                                                                            with the default, a single value will be produced, while with
                                                                            nargs=1, a list containing a single value will be produced.
   :keyword - const -- The value to be produced if the option is specified and the: option uses an action that takes no values.
   :keyword - default -- The value to be produced if the option is not specified.:
   :keyword - type -- A callable that accepts a single string argument, and: returns the converted value.  The standard Python types str, int,
                                                                             float, and complex are useful examples of such callables.  If None,
                                                                             str is used.
   :keyword - choices -- A container of values that should be allowed. If not None,: after a command-line argument has been converted to the appropriate
                                                                                     type, an exception will be raised if it is not a member of this
                                                                                     collection.
   :keyword - required -- True if the action must always be specified at the: command line. This is only meaningful for optional command-line
                                                                              arguments.
   :keyword - help -- The help string describing the argument.:
   :keyword - metavar -- The name to be used for the option's argument with the: help string. If None, the 'dest' value will be used as the name.


.. py:class:: UniqueAppendAction(option_strings, dest, nargs=None, const=None, default=None, type=None, choices=None, required=False, help=None, metavar=None)

   Bases: :py:obj:`argparse.Action`


   Information about how to convert command line strings to Python objects.

   Action objects are used by an ArgumentParser to represent the information
   needed to parse a single argument from one or more strings from the
   command line. The keyword arguments to the Action constructor are also
   all attributes of Action instances.

   :keyword - option_strings -- A list of command-line option strings which: should be associated with this action.
   :keyword - dest -- The name of the attribute to hold the created object:
   :kwtype - dest -- The name of the attribute to hold the created object: s
   :keyword - nargs -- The number of command-line arguments that should be: consumed. By default, one argument will be consumed and a single
                                                                            value will be produced.  Other values include:
                                                                                - N (an integer) consumes N arguments (and produces a list)
                                                                                - '?' consumes zero or one arguments
                                                                                - '*' consumes zero or more arguments (and produces a list)
                                                                                - '+' consumes one or more arguments (and produces a list)
                                                                            Note that the difference between the default and nargs=1 is that
                                                                            with the default, a single value will be produced, while with
                                                                            nargs=1, a list containing a single value will be produced.
   :keyword - const -- The value to be produced if the option is specified and the: option uses an action that takes no values.
   :keyword - default -- The value to be produced if the option is not specified.:
   :keyword - type -- A callable that accepts a single string argument, and: returns the converted value.  The standard Python types str, int,
                                                                             float, and complex are useful examples of such callables.  If None,
                                                                             str is used.
   :keyword - choices -- A container of values that should be allowed. If not None,: after a command-line argument has been converted to the appropriate
                                                                                     type, an exception will be raised if it is not a member of this
                                                                                     collection.
   :keyword - required -- True if the action must always be specified at the: command line. This is only meaningful for optional command-line
                                                                              arguments.
   :keyword - help -- The help string describing the argument.:
   :keyword - metavar -- The name to be used for the option's argument with the: help string. If None, the 'dest' value will be used as the name.


.. 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

.. py:function:: is_valid_config(config: ruamel.yaml.CommentedMap) -> bool

