# WorkflowSchema¶

class propertyestimator.workflow.schemas.WorkflowSchema[source]

The schematic for a property estimation workflow.

__init__()

Initialize self. See help(type(self)) for accurate signature.

Methods

 __init__ Initialize self. from_json(file_path) Create this object from a JSON file. get_attributes([attribute_type]) Returns all attributes of a specific attribute_type. json([file_path, format]) Creates a JSON representation of this class. parse_json(string_contents[, encoding]) Parses a typed json string into the corresponding class structure. replace_protocol_types(protocol_replacements) Replaces protocols with given types with other protocols of specified replacements. validate([attribute_type]) Validate the values of the attributes.

Attributes

 final_value_source A reference to which protocol output corresponds to the estimated value of the property. gradients_sources A list of references the protcol outputs which correspond to the gradients of the estimated property with respect to specified force field parameters. outputs_to_store A collection of data classes to populate ready to be stored by a StorageBackend. protocol_replicators A set of replicators which will replicate parts of the workflow. protocol_schemas The schemas for the protocols which will make up the workflow.
protocol_schemas

The schemas for the protocols which will make up the workflow. The default value of this attribute is [].

Type

list

protocol_replicators

A set of replicators which will replicate parts of the workflow. The default value of this attribute is not set. This attribute is optional.

Type

list

final_value_source

A reference to which protocol output corresponds to the estimated value of the property. The default value of this attribute is not set. This attribute is optional.

Type

ProtocolPath

gradients_sources

A list of references the protcol outputs which correspond to the gradients of the estimated property with respect to specified force field parameters. The default value of this attribute is not set. This attribute is optional.

Type

list

outputs_to_store

A collection of data classes to populate ready to be stored by a StorageBackend. The default value of this attribute is not set. This attribute is optional.

Type

dict

replace_protocol_types(protocol_replacements, protocol_group_schema=None)[source]

Replaces protocols with given types with other protocols of specified replacements. This is useful when replacing the default protocols with custom ones, or swapping out base protocols with actual implementations

Warning

This method is NOT fully implemented and is likely to fail in all but a few specific cases. This method should be used with extreme caution.

Parameters
• protocol_replacements (dict of str and str, None) – A dictionary with keys of the types of protocols which should be replaced with those protocols named by the values.

• protocol_group_schema (ProtocolGroupSchema) – The protocol group to apply the replacements to. This is mainly used when applying this method recursively.

validate(attribute_type=None)[source]

Validate the values of the attributes. If attribute_type is set, only attributes of that type will be validated.

Parameters

attribute_type (type of Attribute, optional) – The type of attribute to validate.

Raises
classmethod from_json(file_path)

Create this object from a JSON file.

Parameters

file_path (str) – The path to load the JSON from.

Returns

The parsed class.

Return type

cls

classmethod get_attributes(attribute_type=None)

Returns all attributes of a specific attribute_type.

Parameters

attribute_type (type of Attribute, optional) – The type of attribute to search for.

Returns

The names of the attributes of the specified type.

Return type

list of str

json(file_path=None, format=False)

Creates a JSON representation of this class.

Parameters
• file_path (str, optional) – The (optional) file path to save the JSON file to.

• format (bool) – Whether to format the JSON or not.

Returns

The JSON representation of this class.

Return type

str

classmethod parse_json(string_contents, encoding='utf8')

Parses a typed json string into the corresponding class structure.

Parameters
• string_contents (str or bytes) – The typed json string.

• encoding (str) – The encoding of the string_contents.

Returns

The parsed class.

Return type

Any