phaply-backend / src /contract /citations.py
thinhtt
Deploy from local
300df0f
Raw
History Blame Contribute Delete
953 Bytes
from __future__ import annotations
from dataclasses import dataclass
from typing import Any, Optional
@dataclass
class LegalCitation:
display_text: str
uid: str
document_title: str = ""
article: Optional[str] = None
clause: Optional[str] = None
point: Optional[str] = None
verified: bool = False
reason: str = ""
@classmethod
def from_context(cls, context: dict[str, Any]) -> "LegalCitation":
return cls(
display_text=context.get("display_citation", "") or context.get("uid", ""),
uid=context.get("uid", ""),
document_title=context.get("document_title", ""),
article=str(context["article_index"]) if context.get("article_index") is not None else None,
clause=str(context["clause_index"]) if context.get("clause_index") is not None else None,
point=str(context["point_letter"]) if context.get("point_letter") else None,
)