blob: 333ba0d68ebdc115a0dc50502f8472bf04b4ca8a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
"""Base types for resources."""
from uuid import UUID
from dataclasses import dataclass
from typing import Any, Sequence
import sqlite3
@dataclass(frozen=True)
class ResourceCategory:
"""Class representing a resource category."""
resource_category_id: UUID
resource_category_key: str
resource_category_description: str
@dataclass(frozen=True)
class Resource:
"""Class representing a resource."""
resource_id: UUID
resource_name: str
resource_category: ResourceCategory
public: bool
resource_data: Sequence[dict[str, Any]] = tuple()
def resource_from_dbrow(row: sqlite3.Row):
"""Convert an SQLite3 resultset row into a resource."""
return Resource(
resource_id=UUID(row["resource_id"]),
resource_name=row["resource_name"],
resource_category=ResourceCategory(
UUID(row["resource_category_id"]),
row["resource_category_key"],
row["resource_category_description"]),
public=bool(int(row["public"])))
|