from dataclasses import dataclass
from logging import getLogger
from typing import Final, Optional, Set, final
logger: Final = getLogger(__name__)
[docs]
@final
@dataclass(frozen=True)
class BudgetRequest:
id: int
number: int
title: str
state: str
url: str
created_at: str
updated_at: str
closed_at: Optional[str]
body: Optional[str]
labels: Set[str]
[docs]
def is_approved(self) -> bool:
return "approved" in self.labels
[docs]
def is_rejected(self) -> bool:
return "rejected" in self.labels
[docs]
def is_stream(self) -> bool:
return "stream" in self.labels
[docs]
def is_vesting(self) -> bool:
return "vesting" in self.labels
[docs]
def is_paid(self) -> bool:
return "paid" in self.labels