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

1# SPDX-FileCopyrightText: 2024-2026 Arcangelo Massari <arcangelo.massari@unibo.it> 

2# 

3# SPDX-License-Identifier: ISC 

4 

5from dataclasses import dataclass 

6from datetime import datetime, timezone 

7 

8from rdflib import Graph 

9 

10from heritrace.utils.filters import Filter 

11 

12_QUAD_LENGTH = 4 

13_DATETIME_MIN_UTC = datetime.min.replace(tzinfo=timezone.utc) 

14 

15 

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 

27 

28 

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 

35 

36 

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