25 lines
698 B
Python
25 lines
698 B
Python
import uuid
|
|
from dataclasses import dataclass, field
|
|
from typing import Generic
|
|
|
|
from option import Option
|
|
|
|
from modules.utils.types import C, V
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class QTaskFactoryMetadata(Generic[C, V]):
|
|
name: Option[str] = field(default=Option[str].maybe(None))
|
|
description: Option[str] = field(default=Option[str].maybe(None))
|
|
id: uuid.UUID = field(default_factory=uuid.uuid4)
|
|
|
|
@staticmethod
|
|
def from_values(
|
|
name: str | None = None,
|
|
description: str | None = None,
|
|
) -> "QTaskFactoryMetadata[C, V]":
|
|
return QTaskFactoryMetadata(
|
|
name=Option[str].maybe(name),
|
|
description=Option[str].maybe(description),
|
|
)
|