Skip to content

search

Search pydantic-model

A general coordinated OPTIMADE search

Important

Either database_ids or optimade_urls MUST be specified.

database_ids: Set[str] pydantic-field

A list of registered database IDs. Go to /databases to get all registered databases.

endpoint: str pydantic-field

The entry endpoint queried. According to the OPTIMADE specification, this is the same as the resource's type.

optimade_urls: Set[pydantic.networks.AnyUrl] pydantic-field

A list of OPTIMADE base URLs. If a versioned base URL is supplied it will be used as is, as long as it represents a supported version. If an un-versioned base URL, standard version negotiation will be conducted to get the versioned base URL, which will be used as long as it represents a supported version. Note, a single URL can be supplied as well, and it will automatically be wrapped in a list in the server logic.

query_parameters: OptimadeQueryParameters pydantic-field

OPTIMADE query parameters for entry listing endpoints used for this query.

either_ids_or_urls(values) classmethod

Either database_ids or optimade_urls must be defined

Source code in optimade_gateway/models/search.py
@root_validator
def either_ids_or_urls(cls, values: dict) -> dict:
    """Either `database_ids` or `optimade_urls` must be defined"""
    if not any(values.get(field) for field in ("database_ids", "optimade_urls")):
        raise ValueError(
            "Either 'database_ids' or 'optimade_urls' MUST be specified."
        )
    return values

sort_not_supported(value) classmethod

Warn and reset value if sort is supplied.

Source code in optimade_gateway/models/search.py
@validator("query_parameters")
def sort_not_supported(
    cls, value: OptimadeQueryParameters
) -> OptimadeQueryParameters:
    """Warn and reset value if `sort` is supplied."""
    if value.sort:
        warnings.warn(SortNotSupported())
        value.sort = None
    return value
Back to top