Create DaemonStatus from dictionary. Args: data: Dictionary with status fields Returns: DaemonStatus instance Raises: TypeError: If required fields are missing or have wrong types
(cls, data: dict[str, Any])
| 155 | |
| 156 | @classmethod |
| 157 | def from_dict(cls, data: dict[str, Any]) -> "DaemonStatus": |
| 158 | """Create DaemonStatus from dictionary. |
| 159 | |
| 160 | Args: |
| 161 | data: Dictionary with status fields |
| 162 | |
| 163 | Returns: |
| 164 | DaemonStatus instance |
| 165 | |
| 166 | Raises: |
| 167 | TypeError: If required fields are missing or have wrong types |
| 168 | """ |
| 169 | # Convert state string to enum |
| 170 | state_str = data.get("state", "unknown") |
| 171 | state = DaemonState.from_string(state_str) |
| 172 | |
| 173 | return cls( |
| 174 | state=state, |
| 175 | message=data.get("message", ""), |
| 176 | updated_at=data.get("updated_at", time.time()), |
| 177 | installation_in_progress=data.get("installation_in_progress", False), |
| 178 | daemon_pid=data.get("daemon_pid"), |
| 179 | daemon_started_at=data.get("daemon_started_at"), |
| 180 | caller_pid=data.get("caller_pid"), |
| 181 | caller_cwd=data.get("caller_cwd"), |
| 182 | request_id=data.get("request_id"), |
| 183 | request_started_at=data.get("request_started_at"), |
| 184 | environment=data.get("environment"), |
| 185 | project_dir=data.get("project_dir"), |
| 186 | current_operation=data.get("current_operation"), |
| 187 | ) |
| 188 | |
| 189 | def is_stale(self, timeout_seconds: float = 30.0) -> bool: |
| 190 | """Check if status hasn't been updated recently. |
nothing calls this directly
no test coverage detected