httk.core.data_records

Stdlib-only records for one declared property value per entry.

Attributes

Classes

DataRecord

Store one canonical JSON value of one declared property.

DataRecordEntry

Logical entry family for served DataRecord records.

Module Contents

httk.core.data_records.RECORDS_DEFINITION_ID = 'https://schemas.httk.org/defs/v0.1/entrytypes/records'
class httk.core.data_records.DataRecord

Store one canonical JSON value of one declared property.

value_json is canonical JSON, with sorted object keys, compact separators, and no non-finite numeric values. value decodes it on access; value_number exposes finite numeric values for numeric queries. The human-readable and immutable identifiers and timestamp metadata are excluded from content identity.

Parameters:
  • definition_id – The property definition IRI for the value.

  • name – The property name.

  • value_json – The canonical JSON representation of the value.

  • id – The human-readable entry id shared by all revisions; minted by the store when None.

  • immutable_id – The per-revision immutable id; minted by the store when None.

  • last_modified – The optional timezone-aware metadata timestamp.

definition_id: str
name: str
value_json: str
id: Annotated[str | None, IdentitySkip(), Indexed()] = None
immutable_id: Annotated[str | None, IdentitySkip(), Unique()] = None
last_modified: Annotated[datetime.datetime | None, IdentitySkip()] = None
property type: str

Return the internal (unprefixed) entry type name.

property value: Any

Decode and return the stored property value.

property value_number: float | None

The decoded numeric value, stored as a numeric SQL query column.

classmethod from_value(definition_id, name, value, *, id=None, immutable_id=None, last_modified=None)

Encode a value canonically and construct its data record.

Parameters:
  • definition_id (str) – The property definition IRI for the value.

  • name (str) – The property name.

  • value (Any) – The JSON value to encode.

  • id (str | None) – The human-readable entry id shared by all revisions; minted by the store when None.

  • immutable_id (str | None) – The per-revision immutable id; minted by the store when None.

  • last_modified (datetime.datetime | None) – The optional timezone-aware metadata timestamp.

Returns:

A data record containing the canonical JSON value.

Raises:
  • TypeError – If the value contains an unsupported object.

  • ValueError – If the value is circular or contains a non-finite number, or if definition_id or name is invalid or last_modified is not timezone-aware.

Return type:

Self

classmethod from_obj(obj)

Coerce a mapping or existing record into a DataRecord.

Parameters:

obj (DataRecord | Mapping[str, Any]) – A data record instance or field mapping.

Returns:

The existing or newly constructed data record.

Raises:
  • TypeError – If obj is neither a data record nor a mapping.

  • ValueError – If the mapping has unknown or invalid fields.

Return type:

Self

class httk.core.data_records.DataRecordEntry

Logical entry family for served DataRecord records.

This family is not itself storable; store a DataRecord directly.

type = 'records'
definition_id = 'https://schemas.httk.org/defs/v0.1/entrytypes/records'