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
Get the name of all cached demo data file.
Get the name of a cached demo data file.
Delete the contents of the example data files cache directory.
Clear the known-submissions file of all submissions.
Delete the contents of the cache directory.
Delete the contents of the hostname-scoped cache directory.
Delete the contents of the user runtime directory.
Configure an execution environment.
Copy a builtin demo data file to the specified location.
Copy a builtin demo workflow to the specified location.
Retrieve a list of schedulers that are supported in principle by this operating system.
Return the full path to the config file, without loading the config.
Get the full path to an example data file in the app cache directory.
Get a dict whose keys are example data file names and whose values are the source files if the source file required unzipping or None otherwise.
Context manager to get a (temporary) file path to an included demo workflow template.
Get miscellaneous runtime system information.
Get a dict mapping parameter types to task schemas that input/output each parameter.
Get an arbitrary scheduler object.
List available example data files.
Return a list of demo workflow templates included in the app.
Load the template component data built into the package.
Load the user's configuration.
Load a WorkflowTemplate object from a builtin demo template file.
Load all template component data, warning by default if already loaded.
Return a decorator for retrying functions on permission and OS errors that might be associated with cloud-storage desktop sync.
Retrieve existing workflows that might be running.
Reload the configuration.
Reload all template component data, warning by default if not already loaded.
Reset the config file to defaults, and reload the config.
Print the contents of a builtin demo workflow template file.
Get template components from a (simply parsed) JSOM document.
Discard any loaded configuration.
Update submission records in the known-submission file.
Attributes
The logger for API messages.
The logger for CLI messages.
The known template command files.
The configuration.
The logger for configuration messages.
A directory for example data caching.
The known template execution environments.
Whether the configuration is loaded.
Whether any template component (e.g.
The path to the file describing known submissions.
The application log.
The main underlying logger.
The known template parameters.
The logger for persistence engine messages.
Information about the runtime.
The logger for runtime messages.
The scheduler mapping.
The known template scripts.
The logger for job submission messages.
The known template task schemas.
The template component data.
Whether the timing analysis system is active.
The user's cache directory.
The hostname-scoped app cache directory.
The user's data directory.
The directory for holding user data.
The user's temporary runtime directory.
The name of the application.
Name of package.
The version of the application.
The module name in which the app object is defined.
Description of the application.
Name of Github organisation responsible for the application.
Github repository containing the application source.
Configuration options.
Arguments for pytest.
Directory for scripts.
Directory for workflows.
Directory for demonstration data.
Directory for demonstration data manifests.
The convention for the app alias used in import statements in the documentation.
URL to documentation.
Command line interface subsystem.
- clear_demo_data_cache_dir()#
Delete the contents of the example data files cache directory.
- clear_known_submissions_file()#
Clear the known-submissions file of all submissions. This shouldn’t be needed normally.
- clear_user_cache_dir()#
Delete the contents of the cache directory.
- clear_user_cache_hostname_dir()#
Delete the contents of the hostname-scoped cache directory.
- clear_user_runtime_dir()#
Delete the contents of the user runtime directory.
- cli#
Command line interface subsystem.
- property command_files: CommandFilesList#
The known template command files.
- config_options#
Configuration options.
- configure_env(name, setup=None, executables=None, use_current_env=False, env_source_file=None)#
Configure an execution environment.
- copy_demo_data(file_name, dst=None, doc=True)#
Copy a builtin demo data file to the specified location.
- copy_demo_workflow(name, dst=None, doc=True)#
Copy a builtin demo workflow to the specified location.
- Parameters:
name (str) – The name of the demo workflow to copy
dst (PathLike | None) – Directory or full file path to copy the demo workflow to. If not specified, the current working directory will be used.
doc (bool) – If False, the copied workflow template file will not include the doc attribute (if originally present).
- Return type:
- demo_data_dir#
Directory for demonstration data.
- demo_data_manifest_dir#
Directory for demonstration data manifests.
- description#
Description of the application.
- docs_import_conv#
The convention for the app alias used in import statements in the documentation.
- docs_url#
URL to documentation.
- property envs: EnvironmentsList#
The known template execution environments.
- 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_demo_data_file_path(file_name)#
Get the full path to an example data file in the app cache directory.
If the file does not already exist in the app cache directory, it will be added (and unzipped if required). The file may first be downloaded from a remote file system such as GitHub (see _get_demo_data_file_source_path for details).
- Return type:
- get_demo_data_files_manifest()#
Get a dict whose keys are example data file names and whose values are the source files if the source file required unzipping or None otherwise.
If the config item demo_data_manifest_file is set, this is used as the manifest file path. Otherwise, the app attribute demo_data_manifest_dir is used, and is expected to be the package/directory in the source code within which a file demo_data_manifest.json is expected.
- get_demo_workflow_template_file(name, doc=True, delete=True)#
Context manager to get a (temporary) file path to an included demo workflow template.
- get_parameter_task_schema_map()#
Get a dict mapping parameter types to task schemas that input/output each parameter.
- get_scheduler(scheduler_name, os_name, scheduler_args=None)#
Get an arbitrary scheduler object.
- gh_org#
Name of Github organisation responsible for the application.
- gh_repo#
Github repository containing the application source.
- property is_template_components_loaded: bool#
Whether any template component (e.g. parameters) has been loaded.
- property known_subs_file_path#
The path to the file describing known submissions.
- list_demo_workflows()#
Return a list of demo workflow templates included in the app.
- classmethod load_builtin_template_component_data(package)#
Load the template component data built into the package. This is as opposed to the template components defined by users.
- load_config(config_dir=None, config_key=None, warn=True, **overrides)#
Load the user’s configuration.
- Return type:
None
- load_demo_workflow(name)#
Load a WorkflowTemplate object from a builtin demo template file.
- Parameters:
name (str) –
- Return type:
- load_template_components(warn=True)#
Load all template component data, warning by default if already loaded.
- Return type:
None
- module#
The module name in which the app object is defined.
- name#
The name of the application.
- package_name#
Name of package.
- property parameters: ParametersList#
The known template parameters.
- 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.
- pytest_args#
Arguments for pytest.
- read_known_submissions_file()#
Retrieve existing workflows that might be running.
- reload_config(config_dir=None, config_key=None, warn=True, **overrides)#
Reload the configuration. Use if a user has updated the configuration file outside the scope of this application.
- Return type:
None
- reload_template_components(warn=True)#
Reload all template component data, warning by default if not already loaded.
- Return type:
None
- reset_config(config_dir=None, config_key=None, warn=True, **overrides)#
Reset the config file to defaults, and reload the config.
- Return type:
None
- property run_time_info: RunTimeInfo#
Information about the runtime.
- property scheduler_lookup#
The scheduler mapping.
- property scripts#
The known template scripts.
- scripts_dir#
Directory for scripts.
- show_demo_workflow(name, syntax=True, doc=False)#
Print the contents of a builtin demo workflow template file.
- property task_schemas: TaskSchemasList#
The known template task schemas.
- property template_components: Dict[str, ObjectList]#
The template component data.
- template_components_from_json_like(json_like)#
Get template components from a (simply parsed) JSOM document.
- unload_config()#
Discard any loaded configuration.
- update_known_subs_file(inactive_IDs, start_times, end_times)#
Update submission records in the known-submission file.
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.
- property user_data_hostname_dir: Path#
The directory for holding user data.
We segregate by hostname to account for the case where multiple machines might use the same shared file system.
- version#
The version of the application.
- workflows_dir#
Directory for workflows.