gemd.entity.object.process_spec module

class gemd.entity.object.process_spec.ProcessSpec(name: str, *, template: Optional[Union[ProcessTemplate, LinkByUID]] = None, conditions: Optional[Union[Iterable[Condition], Condition]] = None, parameters: Optional[Union[Parameter, Iterable[Parameter]]] = None, uids: Optional[Mapping[str, str]] = None, tags: Optional[Iterable[str]] = None, notes: Optional[str] = None, file_links: Optional[Union[Iterable[FileLink], FileLink]] = None)

Bases: BaseObject, HasTemplate, HasParameters, HasConditions

A process specification.

Processes transform zero or more input materials into exactly one output material. This includes links to the parameters and conditions under which the process is expected to be performed, as well as soft links to the output material and the input ingredients.

Parameters
  • name (str, required) – Name of the process spec.

  • uids (Map[str, str], optional) – A collection of unique IDs.

  • tags (List[str], optional) – Tags are hierarchical strings that store information about an entity. They can be used for filtering and discoverability.

  • notes (str, optional) – Long-form notes about the process spec.

  • conditions (List[Condition], optional) – Conditions under which this process spec occurs.

  • parameters (List[Parameter], optional) – Parameters of this process spec.

  • template (ProcessTemplate, optional) – A template bounding the valid values for this process’s parameters and conditions.

  • file_links (List[FileLink], optional) – Links to associated files, with resource paths into the files API.

add_uid(scope: str, uid: str)

Add a uid.

Parameters
  • scope (str) – scope of the uid

  • uid (str) – Unique identifier

all_dependencies() Set[Union[BaseEntityType, LinkByUIDType]]

Return a set of all immediate dependencies (no recursion).

as_dict() Dict[str, Any]

Convert the object to a dictionary.

Returns

A dictionary representation of the object, where the keys are its fields.

Return type

dict

static build(d: Mapping[str, Any]) DictSerializableType

Build an object from a JSON dictionary.

This differs from from_dict in that the values themselves may also be dictionaries corresponding to serialized DictSerializable objects.

Parameters

d (dict) – The object as a serialized dictionary.

Returns

The deserialized object.

Return type

DictSerializable

dump() Dict[str, Any]

Convert the object to a JSON dictionary, so that every entry is serialized.

Uses the json encoder client, so objects with uids are converted to LinkByUID dictionaries.

Returns

A string representation of the object as a dictionary.

Return type

str

classmethod from_dict(d: Mapping[str, Any]) DictSerializableType

Reconstitute the object from a dictionary.

Parameters

d (dict) – The object as a dictionary of key-value pairs that correspond to the object’s fields.

Returns

The deserialized object.

Return type

DictSerializable

Generate a ~gemd.entity.link_by_uid.LinkByUID for this object.

Parameters
  • scope (str, optional) – scope of the uid to get

  • allow_fallback (bool) – whether to grab another scope/id if chosen scope is missing (Default: False).

Return type

LinkByUID

property conditions: List[Condition]

A list of conditions associated with this entity.

Links to associated files, with resource paths into the files API.

property ingredients: List[IngredientSpecType]

Ingredient specs that act as inputs to this process spec.

The link is established by creating each ingredient spec and setting its process field to this process spec.

property name: str

Name of the object.

property output_material: Optional[MaterialSpecType]

The material spec that this process spec produces.

The link is established by creating the material spec and settings its process field to this process spec.

property parameters: List[Parameter]

A list of parameters associated with this entity.

skip = {'_ingredients', '_output_material'}
property tags: List[str]

A collection of structured labels.

Tags are hierarchical strings that store information about an entity. They can be used for filtering and discoverability.

property template: Optional[Union[BaseTemplate, LinkByUID]]

A template that defines the allowed values.

typ = 'process_spec'
property uids: Dict[str, str]

A collection of unique IDs.

Requirements for and the value of unique IDs are discussed here.