2023-06-19 00:39:41 +00:00
|
|
|
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass
|
|
|
|
from typing import ClassVar
|
|
|
|
|
|
|
|
from module.ocr.keyword import Keyword
|
|
|
|
|
|
|
|
|
2023-06-19 17:00:34 +00:00
|
|
|
@dataclass(repr=False)
|
2023-06-19 00:39:41 +00:00
|
|
|
class AssignmentGroup(Keyword):
|
|
|
|
instances: ClassVar = {}
|
|
|
|
entries: tuple[AssignmentEntry] = ()
|
|
|
|
|
|
|
|
|
2023-06-19 17:00:34 +00:00
|
|
|
@dataclass(repr=False)
|
2023-06-19 00:39:41 +00:00
|
|
|
class AssignmentEntry(Keyword):
|
|
|
|
instances: ClassVar = {}
|
|
|
|
group: AssignmentGroup = None
|
2023-09-26 07:06:43 +00:00
|
|
|
|
2023-06-19 00:39:41 +00:00
|
|
|
def __hash__(self) -> int:
|
|
|
|
return super().__hash__()
|
|
|
|
|
2023-09-26 07:06:43 +00:00
|
|
|
|
|
|
|
@dataclass(repr=False)
|
|
|
|
class AssignmentEventGroup(AssignmentGroup):
|
|
|
|
instances: ClassVar = {}
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass(repr=False)
|
|
|
|
class AssignmentEventEntry(AssignmentEntry):
|
|
|
|
instances: ClassVar = {}
|
|
|
|
|
|
|
|
def __hash__(self) -> int:
|
|
|
|
return super().__hash__()
|