Quizard/modules/fabric_metadata.py

25 lines
635 B
Python

import uuid
from dataclasses import dataclass, field
from typing import Generic, Optional
from option import Option
from utils.utils import C, V
@dataclass(frozen=True)
class QTaskFactoryMetadata(Generic[C, V]):
name: Option[str] = Option.maybe(None)
description: Option[str] = Option.maybe(None)
id: uuid.UUID = uuid.uuid4()
@staticmethod
def from_values(
name: Optional[str] = None,
description: Optional[str] = None,
) -> "QTaskFactoryMetadata[C, V]":
return QTaskFactoryMetadata(
name=Option.maybe(name),
description=Option.maybe(description),
)