Coverage for heritrace / routes / entity / _types.py: 100%
31 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-07-02 10:16 +0000
« prev ^ index » next coverage.py v7.13.4, created at 2026-07-02 10:16 +0000
1# SPDX-FileCopyrightText: 2024-2026 Arcangelo Massari <arcangelo.massari@unibo.it>
2#
3# SPDX-License-Identifier: ISC
5from dataclasses import dataclass
6from datetime import datetime, timezone
8from rdflib import Graph
10from heritrace.utils.filters import Filter
12_QUAD_LENGTH = 4
13_DATETIME_MIN_UTC = datetime.min.replace(tzinfo=timezone.utc)
16@dataclass(frozen=True, slots=True)
17class EntityRenderContext:
18 entity_uri: str
19 entity_shape: str | None
20 highest_priority_class: str | None
21 relevant_snapshot: Graph | None
22 predicate_ordering_cache: dict[str, str | None]
23 entity_position_cache: dict[tuple[str, str], int | None]
24 object_shapes_cache: dict[str, str | None]
25 object_classes_cache: dict[str, str | None]
26 custom_filter: Filter
29@dataclass(frozen=True, slots=True)
30class EntityIdentity:
31 entity_uri: str
32 highest_priority_class: str | None
33 entity_shape: str | None
34 relevant_snapshot: Graph | None
37@dataclass(frozen=True, slots=True)
38class HistoryContext:
39 entity_uri: str
40 highest_priority_class: str | None
41 entity_shape: str | None
42 history: dict[str, dict[str, Graph]]
43 sorted_timestamps: list[str]
44 custom_filter: Filter