hpcflow.app.Executable#

class hpcflow.app.Executable(label, instances)#

Bases: Executable

A program managed by the environment.

Parameters:
  • label (str) – The abstract name of the program.

  • instances (list[ExecutableInstance]) – The concrete instances of the application that may be present.

Methods

filter_instances

Select the instances of the executable that are compatible with the given requirements.

from_json_like

Make an instance of this class from JSON (or YAML) data.

to_dict

Serialize this object as a dictionary.

to_json_like

Serialize this object as an object structure that can be trivially converted to JSON.

Attributes

environment

The environment that the executable is going to run in.

label

The abstract name of the program.

instances

The concrete instances of the application that may be present.

property environment: Environment | None#

The environment that the executable is going to run in.

filter_instances(parallel_mode=None, num_cores=None)#

Select the instances of the executable that are compatible with the given requirements.

Parameters:
  • parallel_mode (str) – If given, the parallel mode to require.

  • num_cores (int) – If given, the number of cores desired.

Returns:

The known executable instances that match the requirements.

Return type:

list[ExecutableInstance]

classmethod from_json_like(json_like, shared_data=None)#

Make an instance of this class from JSON (or YAML) data.

Parameters:
  • json_like (str | Mapping[str, JSONed] | Sequence[Mapping[str, JSONed]] | None) – The data to deserialise.

  • shared_data (Mapping[str, ObjectList[JSONable]] | None) – Shared context data.

Return type:

The deserialised object.

instances#

The concrete instances of the application that may be present.

label#

The abstract name of the program.

to_dict()#

Serialize this object as a dictionary.

Return type:

dict[str, Any]

to_json_like(dct=None, shared_data=None, exclude=(), path=None)#

Serialize this object as an object structure that can be trivially converted to JSON. Note that YAML can also be produced from the result of this method; it just requires a different final serialization step.

Parameters:
  • dct (dict[str, JSONable] | None) –

  • shared_data (_JSONDeserState) –

  • exclude (Container[str | None]) –

  • path (list | None) –

Return type:

tuple[JSONDocument, _JSONDeserState]