Files
AI_Printer/tools/esptool-factory/factory_gui/models.py

54 lines
1.0 KiB
Python

from __future__ import annotations
from dataclasses import dataclass
from pathlib import Path
from typing import Optional, Tuple
@dataclass(frozen=True)
class DeviceCheckConfig:
crypt_cnt_fields: Tuple[str, ...]
secure_boot_field: str
secure_boot_expected: Optional[bool]
crypt_cnt_expect: Optional[str]
flash_key_purpose_match: Optional[str]
secure_boot_key_purpose_match: Optional[str]
key_read_disable_field: str
@dataclass(frozen=True)
class FlashPrivateConfig:
chip: str
baud: str
bin_dir: Path
layout: list[Tuple[str, str]]
app_bin_name: str
app_partition_offset: str
flash_args: dict
device_check: DeviceCheckConfig
ui: dict
@dataclass(frozen=True)
class FlashSource:
offset: int
path: Path
name: str
@dataclass
class FlashEntryReport:
name: str
offset: int
size: int
sha256: str
readback_sha256: Optional[str]
verified: Optional[bool]
@dataclass
class FlashReport:
entries: list[FlashEntryReport]
readback_ok: bool
readback_errors: list[str]