hpcflow.sdk.app.BaseApp#

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

Bases: object

Class to generate the hpcflow application.

Parameters:
  • module – The module name in which the app object is defined.

  • docs_import_conv – The convention for the app alias used in import statements in the documentation. E.g. for the hpcflow base app, this is hf. This is combined with module to form the complete import statement. E.g. for the hpcflow base app, the complete import statement is: import hpcflow.app as hf, where hpcflow.app is the module argument and hf is the docs_import_conv argument.

Methods

clear_known_submissions_file

Clear the known-submissions file of all submissions.

get_OS_supported_schedulers

Retrieve a list of schedulers that are supported in principle by this operating system.

get_config_path

Return the full path to the config file, without loading the config.

get_info

get_parameter_task_schema_map

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

get_scheduler

Get an arbitrary scheduler object.

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

unload_config

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

scheduler_lookup

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_OS_supported_schedulers()#

Retrieve a list of schedulers that are supported in principle by this operating system.

This does not necessarily mean all the returned schedulers are available on this system.

get_config_path(config_dir=None)#

Return the full path to the config file, without loading the config.

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_scheduler(scheduler_name, os_name, scheduler_args=None)#

Get an arbitrary scheduler object.

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_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_key=None, **overrides)#
Return type:

None

reload_template_components(warn=True)#
Return type:

None

reset_config(config_dir=None, config_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 scheduler_lookup#
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

unload_config()#