httk.serve.optimade.engine

Public request-validation and endpoint-dispatch helpers.

Submodules

Functions

process(request, query_function, version, config, ...)

Process one OPTIMADE query.

determine_optimade_version(request)

Determine the OPTIMADE version named by a request path.

validate_optimade_request(request, version, schema[, ...])

Validate a raw request against an explicit served schema.

Package Contents

httk.serve.optimade.engine.process(request, query_function, version, config, schema, *, snapshot_cutoff_ns=None, debug=False)[source]

Process one OPTIMADE query.

request carries the incoming request; only baseurl and representation must be set, missing information is derived from representation. query_function is the callback used to execute entry queries against the backend. schema describes the served entry types and properties.

Parameters:
Returns:

Endpoint response before web serialization.

Raises:

httk.serve.optimade.model.errors.OptimadeError – If request validation or endpoint processing fails.

Return type:

httk.serve.optimade.model.request.EndpointResponse

httk.serve.optimade.engine.determine_optimade_version(request)[source]

Determine the OPTIMADE version named by a request path.

Parameters:

request (httk.serve.optimade.model.request.RawRequest) – Raw request whose relative path is inspected.

Returns:

Supported API version, using the default when unversioned.

Raises:

httk.serve.optimade.model.errors.OptimadeError – If the path names an unsupported version.

Return type:

str

httk.serve.optimade.engine.validate_optimade_request(request, version, schema, page_limit_max=50)[source]

Validate a raw request against an explicit served schema.

Parameters:
Returns:

Canonical request and validated query parameters.

Raises:

httk.serve.optimade.model.errors.OptimadeError – If the path, version, or query is invalid.

Return type:

httk.serve.optimade.model.request.ValidatedRequest