mxtaltools.common.config_processing

mxtaltools.common.config_processing.dict2namespace(data_dict: dict)[source]

Recursively converts a dictionary and its internal dictionaries into an argparse.Namespace

Parameters:

data_dict (dict) – The input dictionary

Returns:

data_namespace – The output namespace

Return type:

argparse.Namespace

mxtaltools.common.config_processing.get_main_config(user_config, override_args=None, main_yaml_path=None)[source]

Load main config given yaml path from command line override args, from main_yaml_path arg, or the default set from the user config.

Parameters:
  • user_config

  • override_args

  • main_yaml_path

Returns:

main_config

Return type:

dict

mxtaltools.common.config_processing.get_user_config(override_args=None, user_yaml_path=None)[source]

Load user config if yaml path is provided, otherwise search for user config yaml path in command line override args

Parameters:
  • override_args (Namespace, optional)

  • user_yaml_path (str, optional)

Returns:

  • user_config (dict)

  • override_args (converted to Namespace if sent as arg)

mxtaltools.common.config_processing.load_yaml(path)[source]

Safely load yaml file as dict.

Parameters:

path (str)

Return type:

dict

mxtaltools.common.config_processing.print_dict(v, prefix='', keys_list=[])[source]

Attribution: https://stackoverflow.com/questions/10756427/loop-through-all-nested-dictionary-values

Recursively get all elements of a dictionary

Parameters:

v (dict)

Return type:

List of keys at this nest level

mxtaltools.common.config_processing.process_main_config(override_args=None, user_yaml_path=None, main_yaml_path=None, machine=None, append_model_paths=True)[source]

# todo rewrite - pick a single pattern, this is a mess Combines YAML configuration file, command line arguments and default arguments into a single configuration dictionary.

Return type:

Namespace

mxtaltools.common.config_processing.write_non_overlapping_configs(c1, c2)[source]

Write any items in c2 onto c1 if they are not already there. Compatible with nested configs.

Parameters:
Returns:

c1

Return type:

dict