Skip to content

adapter

Structure

Lazy structure resource converter.

Go to EntryAdapter to see the full list of methods and properties.

Attributes:

Name Type Description
ENTRY_RESOURCE StructureResource

This adapter stores entry resources as StructureResources.

_type_converters Dict[str, Callable]

Dictionary of valid conversion types for entry.

Currently available types:

  • aiida_structuredata
  • ase
  • cif
  • pdb
  • pdbx_mmcif
  • pymatgen
  • jarvis
as_<_type_converters>

Convert entry to a type listed in _type_converters.

Source code in optimade/adapters/structures/adapter.py
class Structure(EntryAdapter):
    """
    Lazy structure resource converter.

    Go to [`EntryAdapter`][optimade.adapters.base.EntryAdapter] to see the full list of methods
    and properties.

    Attributes:
        ENTRY_RESOURCE (StructureResource): This adapter stores entry resources as
            [`StructureResource`][optimade.models.structures.StructureResource]s.
        _type_converters (Dict[str, Callable]): Dictionary of valid conversion types for entry.

            Currently available types:

            - `aiida_structuredata`
            - `ase`
            - `cif`
            - `pdb`
            - `pdbx_mmcif`
            - `pymatgen`
            - `jarvis`

        as_<_type_converters>: Convert entry to a type listed in `_type_converters`.

    """

    ENTRY_RESOURCE: StructureResource = StructureResource
    _type_converters = {
        "aiida_structuredata": get_aiida_structure_data,
        "ase": get_ase_atoms,
        "cif": get_cif,
        "pdb": get_pdb,
        "pdbx_mmcif": get_pdbx_mmcif,
        "pymatgen": get_pymatgen,
        "jarvis": get_jarvis_atoms,
    }

ENTRY_RESOURCE pydantic-model

Representing a structure.

Source code in optimade/adapters/structures/adapter.py
class StructureResource(EntryResource):
    """Representing a structure."""

    type: str = StrictField(
        "structures",
        const="structures",
        description="""The name of the type of an entry.

- **Type**: string.

- **Requirements/Conventions**:
    - **Support**: MUST be supported by all implementations, MUST NOT be `null`.
    - **Query**: MUST be a queryable property with support for all mandatory filter features.
    - **Response**: REQUIRED in the response.
    - MUST be an existing entry type.
    - The entry of type `<type>` and ID `<id>` MUST be returned in response to a request for `/<type>/<id>` under the versioned base URL.

- **Examples**:
    - `"structures"`""",
        pattern="^structures$",
        support=SupportLevel.MUST,
        queryable=SupportLevel.MUST,
    )

    attributes: StructureResourceAttributes