hpcflow.sdk.app.App#

class hpcflow.sdk.app.App(*args, **kwargs)#

Bases: BaseApp

Class from which to instantiate downstream app objects (e.g. MatFlow).

Methods

clear_known_submissions_file

Clear the known-submissions file of all submissions.

get_info

get_parameter_task_schema_map

Get a dict mapping parameter types to task schemas that input/output each parameter.

get_user_data_dir

We segregate by hostname to account for the case where multiple machines might use the same shared file system

load_builtin_template_component_data

load_config

load_template_components

perm_error_retry

Return a decorator for retrying functions on permission and OS errors that might be associated with cloud-storage desktop sync.

read_known_submissions_file

Retrieve existing workflows that might be running.

reload_config

reload_template_components

reset_config

Reset the config file to defaults, and reload the config.

set_inactive_in_known_subs_file

Set workflows in the known-submissions file to the non-running state.

template_components_from_json_like

Attributes

API_logger

CLI_logger

command_files

config

config_logger

envs

is_config_loaded

is_template_components_loaded

known_subs_file_name

known_subs_file_path

log

logger

parameters

persistence_logger

run_time_info

runtime_info_logger

scripts

submission_logger

task_schemas

template_components

property API_logger: Logger#
property CLI_logger: Logger#
clear_known_submissions_file()#

Clear the known-submissions file of all submissions. This shouldn’t be needed normally.

property command_files: CommandFilesList#
property config: Config#
property config_logger: Logger#
property envs: EnvironmentsList#
get_info()#
Return type:

Dict[str, Any]

get_parameter_task_schema_map()#

Get a dict mapping parameter types to task schemas that input/output each parameter.

Return type:

Dict[str, List[List]]

get_user_data_dir()#

We segregate by hostname to account for the case where multiple machines might use the same shared file system

property is_config_loaded: bool#
property is_template_components_loaded: bool#
property known_subs_file_name#
property known_subs_file_path#
classmethod load_builtin_template_component_data(package)#
Return type:

Dict[str, List | Dict]

load_config(config_dir=None, config_invocation_key=None, **overrides)#
Return type:

None

load_template_components(warn=True)#
Return type:

None

property log: AppLog#
property logger: Logger#
property parameters: ParametersList#
perm_error_retry()#

Return a decorator for retrying functions on permission and OS errors that might be associated with cloud-storage desktop sync. engine operations.

property persistence_logger: Logger#
read_known_submissions_file()#

Retrieve existing workflows that might be running.

Return type:

List[Dict]

reload_config(config_dir=None, config_invocation_key=None, **overrides)#
Return type:

None

reload_template_components(warn=True)#
Return type:

None

reset_config(config_dir=None, config_invocation_key=None, **overrides)#

Reset the config file to defaults, and reload the config.

Return type:

None

property run_time_info: RunTimeInfo#
property runtime_info_logger: Logger#
property scripts#
set_inactive_in_known_subs_file(inactive_IDs)#

Set workflows in the known-submissions file to the non-running state.

Note we aim for atomicity to help with the scenario where a new workflow submission is adding itself to the file at the same time as we have decided an existing workflow should no longer be part of this file. Ideally, such a scenario should not arise because both operations should only ever be interactively initiated by the single user (Workflow.submit and App.get_known_submissions). If this operation is atomic, then at least the known-submissions file should be left in a usable (but inaccurate) state.

Returns:

List of local IDs removed from the known-submissions file due to the maximum number of recent workflows to store being exceeded.

Return type:

removed_IDs

Parameters:

inactive_IDs (List[int]) –

property submission_logger: Logger#
property task_schemas: TaskSchemasList#
property template_components: Dict[str, ObjectList]#
template_components_from_json_like(json_like)#
Return type:

None