Skip to content

states

django_spire.contrib.progress.states

TaskState dataclass

message = 'Waiting...' class-attribute instance-attribute

progress = 0 class-attribute instance-attribute

status = ProgressStatus.PENDING class-attribute instance-attribute

from_dict classmethod

Source code in django_spire/contrib/progress/states.py
@classmethod
def from_dict(cls, data: dict[str, Any]) -> TaskState:
    return cls(
        message=data.get('message', 'Waiting...'),
        progress=data.get('progress', 0),
        status=ProgressStatus(data.get('step', ProgressStatus.PENDING)),
    )

to_dict

Source code in django_spire/contrib/progress/states.py
def to_dict(self) -> dict[str, Any]:
    return {
        'message': self.message,
        'progress': self.progress,
        'step': self.status.value,
    }

TrackerState dataclass

message = 'Initializing...' class-attribute instance-attribute

progress = 0 class-attribute instance-attribute

status = ProgressStatus.PENDING class-attribute instance-attribute

task_order = field(default_factory=list) class-attribute instance-attribute

tasks = field(default_factory=dict) class-attribute instance-attribute

from_dict classmethod

Source code in django_spire/contrib/progress/states.py
@classmethod
def from_dict(cls, data: dict[str, Any]) -> TrackerState:
    tasks = {
        name: TaskState.from_dict(task_data)
        for name, task_data in data.get('tasks', {}).items()
    }

    return cls(
        message=data.get('message', 'Initializing...'),
        progress=data.get('progress', 0),
        status=ProgressStatus(data.get('step', ProgressStatus.PENDING)),
        task_order=data.get('task_order', []),
        tasks=tasks,
    )

to_dict

Source code in django_spire/contrib/progress/states.py
def to_dict(self) -> dict[str, Any]:
    return {
        'message': self.message,
        'progress': self.progress,
        'step': self.status.value,
        'task_order': self.task_order,
        'tasks': {name: task.to_dict() for name, task in self.tasks.items()},
    }