# Component

class `openff.evaluator.substances.``Component`(smiles=<openff.evaluator.attributes.attributes.UndefinedAttribute object>, role=<Role.Solvent: 'solv'>)

  Defines a single component in a chemical system, as well as it’s role within the system (if any).

  `__init__`(smiles=<openff.evaluator.attributes.attributes.UndefinedAttribute object>, role=<Role.Solvent: 'solv'>)

    Constructs a new Component object with either a label or a smiles string, but not both.

    Notes

    The label and smiles arguments are mutually exclusive, and only one can be passed while the other should be None.

    Parameters

      - smiles (str) – A SMILES descriptor of the component

      - role (Component.Role) – The role of this component in the system.

  Methods

  `__init__`([smiles, role]) | Constructs a new Component object with either a label or a smiles string, but not both.
  `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.
  `validate`([attribute_type]) | Validate the values of the attributes.

  Attributes

  `identifier` | A unique identifier for this component.
  `role` | The role of this component in the system.
  `smiles` | The SMILES pattern which describes this component.

  class `Role`

    An enum which describes the role of a component in the system, such as whether the component is a solvent, a solute, a receptor etc.

    These roles are mainly used by workflow to identify the correct species in a system, such as when doing docking or performing solvation free energy calculations.

  `smiles`

    The SMILES pattern which describes this component. The default value of this attribute is not set and must be set by the user.. This attribute is read-only.

    Type

      str

  `role`

    The role of this component in the system. The default value of this attribute is `Role.Solvent`. This attribute is read-only.

    Type

      Component.Role

  property `identifier`

    A unique identifier for this component.

    Type

      str

  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

  `validate`(attribute_type=None)

    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

      ValueError or AssertionError –