esm_master package

Top-level package for ESM Master.

Submodules

esm_master.cli module

Console script for esm_master.

esm_master.cli.main()[source]

esm_master.compile_info module

esm_master.compile_info.combine_components_yaml()[source]

Combines various YAML files in esm_master config directory.

The esm_master config directory is taken from the .esmtoolsrc file as ${FUNCTION_PATH}/esm_master/. All files under the components, setups, and couplings sub-directories are read into the dictionary.

Returns:A dictionary equivalent of all components, couplings, setups, and general information.
Return type:dict
esm_master.compile_info.get_all_package_info(packages, cat, cat_dir, components_dict, relevant_entries)[source]
esm_master.compile_info.get_correct_entry(in_config, out_config, entry, default=None)[source]
esm_master.compile_info.get_one_package_info(package, cat, cat_dir, components_dict, relevant_entries)[source]
esm_master.compile_info.get_relevant_info(relevant_entries, raw_config, merge_into_this_config=None)[source]

Gets relevant information from the raw configuration and update the given configuration dictionary merge_into_this_config.

Parameters:
  • relevant_entries (list) – A list of relevant entries from which information needs to be extracted.
  • raw_config (dict) – A dictionary containing the raw information read from the yaml file.
  • merge_into_this_config (dict) – A dictionary in which the relevant information will be added.
Returns:

merge_into_this_config – A dictionary given as input, then updated with the relevant information.

Return type:

dict

esm_master.compile_info.load_pickle(path)[source]
esm_master.compile_info.remove_globbing_char(conf)[source]
esm_master.compile_info.save_pickle(obj, path)[source]
class esm_master.compile_info.setup_and_model_infos(vcs, general, parsed_args)[source]

Bases: object

append_to_conf(target, reduced_config, toplevel='')[source]
assemble_raw_name(todo, kind, model, version)[source]
get_config_entry(package, entry)[source]
has_model(model)[source]
has_package(package)[source]
has_target(package, target, vcs)[source]
has_target2(package, target)[source]
list_all_packages(vcs, general)[source]
output()[source]
output_available_targets(search_keyword)[source]
print_nicely(display_info)[source]
reduce(target)[source]
replace_last_vars(env)[source]
setup_or_model(model)[source]
split_raw_target(rawtarget, setup_info)[source]
update_packages(vcs, general)[source]

esm_master.database module

class esm_master.database.installation(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

action
folder
id
static nicer_output(run)[source]
setup_name
timestamp
static topline()[source]

esm_master.database_actions module

esm_master.database_actions.database_entry(action, setup_name, base_dir)[source]

esm_master.esm_master module

esm_master.esm_master.main_flow(parsed_args, target)[source]

esm_master.general_stuff module

class esm_master.general_stuff.GeneralInfos[source]

Bases: object

get_display_kinds()[source]
get_meta_command()[source]

Gets meta_todos and meta_command_order, which are a combination of other tasks. e.g. “install” does get, conf, and comp.

Returns:
  • Tuple of List, Dict
  • The list contains all meta_todos, the dict contains the todo as the
  • key, and the steps as the value.
output()[source]
read_and_update_conf_files()[source]
esm_master.general_stuff.tab_completion(parsed_args, setups2models)[source]
class esm_master.general_stuff.version_control_infos[source]

Bases: object

assemble_command(package, todo, setup_info, general)[source]
output()[source]
esm_master.general_stuff.write_minimal_user_config(config)[source]

In order to generate a SimulationSetup using esm_parser, we need a small and simple user_config. It doesn’t really matter for esm_master if all the entries are correct, as we don’t need most of them, but the esm_parser fails if they don’t exist as all… Needs the name of the model / setup, and version (if exists) as input.

esm_master.software_package module

esm_master.software_package.replace_var(var, tag, value)[source]
class esm_master.software_package.software_package(raw, setup_info, vcs, general, no_infos=False)[source]

Bases: object

complete_targets(setup_info)[source]
fill_in_infos(setup_info, vcs, general)[source]
get_command_list(setup_info, vcs, general)[source]
get_comp_type(setup_info)[source]
get_coupling_changes(setup_info)[source]
get_repo_info(setup_info, vcs)[source]
get_subpackages(setup_info, vcs, general)[source]
get_targets(setup_info, vcs)[source]
output()[source]

esm_master.task module

class esm_master.task.Task(raw, setup_info, vcs, general, complete_config)[source]

Bases: object

What you can do with a software_package, e.g. comp-awicm-2.0

assemble_command_list()[source]
check_if_download_task(setup_info)[source]
check_if_target(setup_info)[source]
check_requirements()[source]
cleanup_script()[source]
compile_binaries()[source]
download_folders()[source]
execute()[source]
get_subtasks(setup_info, vcs, general, complete_config)[source]
list_required_dirs()[source]
order_subtasks(setup_info, vcs, general)[source]
output()[source]
output_steps()[source]
validate()[source]
validate_only_subtask()[source]