cmboulanger's picture
Add support for global rules
1f74af3
raw
history blame contribute delete
716 Bytes
from __future__ import annotations
from dataclasses import dataclass, field
@dataclass
class TEIAttribute:
name: str
description: str
required: bool = False
allowed_values: list[str] | None = None
@dataclass
class TEIElement:
tag: str
description: str
allowed_children: list[str] = field(default_factory=list)
attributes: list[TEIAttribute] = field(default_factory=list)
@dataclass
class TEISchema:
elements: list[TEIElement] = field(default_factory=list)
rules: list[str] = field(default_factory=list)
def get(self, tag: str) -> TEIElement | None:
for elem in self.elements:
if elem.tag == tag:
return elem
return None