httk.core.register.entries

Entry-provider, entry-family, record, and binding registries.

Attributes

Classes

OptimadeEntryBinding

Describe lazy typed handling for one exact entry-type definition IRI.

Functions

register_entry_provider(*, name, factory)

Register an EntryProvider factory under name.

known_entry_providers()

Return registered entry-provider names.

register_entry_record(*, name, record[, family, ...])

Register a lazy record-class reference and optional family and definition IRI.

known_entry_records([family])

Return registered record names, optionally limited to a family.

entry_record_info(name)

Return record, family, and definition metadata without importing the record class.

resolve_entry_record(name)

Import and return a registered record class.

register_entry_family(*, name, family[, definition_id])

Register a lazy entry-family class reference without importing it.

known_entry_families()

Return registered entry-family names.

entry_family_info(name)

Return entry-family metadata without importing its class.

resolve_entry_family(name)

Import and return a registered entry-family class.

register_optimade_entry_binding(*, name, ...[, ...])

Register one lazy typed binding, selected only by exact definition IRI.

known_optimade_entry_bindings()

Return registered entry-type definition IRIs without resolving imports.

optimade_entry_binding(definition_id)

Return the exact-IRI binding without importing its backend or view.

Module Contents

httk.core.register.entries.entry_providers[source]
httk.core.register.entries.register_entry_provider(*, name, factory)[source]

Register an EntryProvider factory under name.

factory is a lazy "module:callable" reference to a callable that constructs a provider (providers need data, so applications call the factory themselves; the registry only records how to reach it). This mirrors register_reader.

Parameters:
  • name (str) – The provider registry name.

  • factory (str) – The lazy "module:callable" factory reference.

httk.core.register.entries.known_entry_providers()[source]

Return registered entry-provider names.

Returns:

Registered provider names.

Return type:

list[str]

httk.core.register.entries.register_entry_record(*, name, record, family=None, definition_id=None)[source]

Register a lazy record-class reference and optional family and definition IRI.

Parameters:
  • name (str) – The record registry name.

  • record (str) – The lazy "module:class" record reference.

  • family (str | None) – The logical entry-family name, if any.

  • definition_id (str | None) – The record’s definition IRI, if any.

Raises:

ValueError – If validation fails or name is already registered.

httk.core.register.entries.known_entry_records(family=None)[source]

Return registered record names, optionally limited to a family.

Parameters:

family (str | None) – An entry-family name to filter by, or None for all records.

Returns:

Matching record registry names.

Return type:

list[str]

httk.core.register.entries.entry_record_info(name)[source]

Return record, family, and definition metadata without importing the record class.

Parameters:

name (str) – The registered record name.

Returns:

The lazy record reference and optional family and definition IRI.

Raises:

ValueError – If name is not registered.

Return type:

tuple[str, str | None, str | None]

httk.core.register.entries.resolve_entry_record(name)[source]

Import and return a registered record class.

Parameters:

name (str) – The registered record name.

Returns:

The resolved frozen dataclass record class.

Raises:
  • ValueError – If name is not registered.

  • TypeError – If the reference does not resolve to a frozen dataclass.

Return type:

type

httk.core.register.entries.register_entry_family(*, name, family, definition_id=None)[source]

Register a lazy entry-family class reference without importing it.

Parameters:
  • name (str) – The entry-family registry name.

  • family (str) – The lazy "module:class" family reference.

  • definition_id (str | None) – The family’s definition IRI, if any.

Raises:

ValueError – If validation fails or name is already registered.

httk.core.register.entries.known_entry_families()[source]

Return registered entry-family names.

Returns:

Registered entry-family names.

Return type:

list[str]

httk.core.register.entries.entry_family_info(name)[source]

Return entry-family metadata without importing its class.

Parameters:

name (str) – The registered entry-family name.

Returns:

The lazy family reference and optional definition IRI.

Raises:

ValueError – If name is not registered.

Return type:

tuple[str, str | None]

httk.core.register.entries.resolve_entry_family(name)[source]

Import and return a registered entry-family class.

Parameters:

name (str) – The registered entry-family name.

Returns:

The resolved entry-family class.

Raises:
  • ValueError – If name is not registered.

  • TypeError – If the reference does not resolve to a class.

Return type:

type

class httk.core.register.entries.OptimadeEntryBinding[source]

Describe lazy typed handling for one exact entry-type definition IRI.

Parameters:
  • name – The binding registry name.

  • definition_id – The exact entry-type definition IRI selected by the binding.

  • backend – The lazy backend class reference.

  • view – The lazy view class reference.

  • property_decoders – Property definition IRIs mapped to lazy decoder references.

  • query_fields – Property definition IRIs supported for querying, if restricted.

name: str[source]
definition_id: str[source]
backend: str[source]
view: str[source]
property_decoders: collections.abc.Mapping[str, str][source]
query_fields: tuple[str, Ellipsis] | None = None[source]
resolve_backend()[source]

Import and return this binding’s backend class on demand.

Returns:

The resolved backend class.

Raises:

TypeError – If the lazy reference does not resolve to a class.

Return type:

type

resolve_view()[source]

Import and return this binding’s view class on demand.

Returns:

The resolved view class.

Raises:

TypeError – If the lazy reference does not resolve to a class.

Return type:

type

resolve_property_decoder(definition_id)[source]

Resolve one property decoder, or return None when it is unbound.

Parameters:

definition_id (str) – The property definition IRI to resolve.

Returns:

The decoder callable, or None when no decoder is registered.

Return type:

collections.abc.Callable[Ellipsis, Any] | None

httk.core.register.entries.register_optimade_entry_binding(*, name, definition_id, backend, view, property_decoders=None, query_fields=None)[source]

Register one lazy typed binding, selected only by exact definition IRI.

Parameters:
  • name (str) – The binding registry name.

  • definition_id (str) – The exact entry-type definition IRI selected by the binding.

  • backend (str) – The lazy backend class reference.

  • view (str) – The lazy view class reference.

  • property_decoders (collections.abc.Mapping[str, str] | None) – Property definition IRIs mapped to lazy decoder references.

  • query_fields (tuple[str, Ellipsis] | None) – Property definition IRIs supported for querying, if restricted.

Raises:

ValueError – If the definition IRI is already registered or input is invalid.

httk.core.register.entries.known_optimade_entry_bindings()[source]

Return registered entry-type definition IRIs without resolving imports.

Returns:

Exact definition IRIs with registered bindings.

Return type:

tuple[str, Ellipsis]

httk.core.register.entries.optimade_entry_binding(definition_id)[source]

Return the exact-IRI binding without importing its backend or view.

Parameters:

definition_id (str) – The exact entry-type definition IRI to look up.

Returns:

The binding, or None if no exact match is registered.

Return type:

OptimadeEntryBinding | None