httk.serve.optimade.backend.partial

Markers for property values transmitted via the partial data protocol.

A field extractor may return a PartialValue in place of a concrete value when the value is too large to include inline, or when its list axes are sliceable. The endpoint layer turns it into null plus meta.partial_data_links (only the endpoint knows the base URL), slices it inline when a dimension_slices query parameter is supplied, or streams it via the JSON Lines partial data endpoint.

Classes

PartialDimension

Describe one list axis of a PartialValue.

PartialValue

Describe a property value provided lazily, one slice at a time.

Module Contents

class httk.serve.optimade.backend.partial.PartialDimension[source]

Describe one list axis of a PartialValue.

length is the number of items along the axis (None when unknown or entry-dependent and not declared). sliceable indicates whether the server can honour a slice request for this axis.

Parameters:
  • name – Dimension name used in response metadata.

  • length – Number of items, or None when unknown.

  • sliceable – Whether the server accepts slices on this axis.

name: str[source]
length: int | None = None[source]
sliceable: bool = False[source]
class httk.serve.optimade.backend.partial.PartialValue[source]

Describe a property value provided lazily, one slice at a time.

fetch takes a tuple of Python slices (one per dimension, with the usual exclusive stop) and returns the corresponding nested lists.

Parameters:
  • dimensions – Axes describing the value.

  • fetch – Slice retrieval operation.

dimensions: tuple[PartialDimension, Ellipsis][source]
fetch: collections.abc.Callable[[tuple[slice, Ellipsis]], Any][source]