29 lines
893 B
Python
29 lines
893 B
Python
"""Offline, browser-uploaded full-release updates.
|
|
|
|
Keep package initialization dependency-free: release tooling imports the
|
|
stdlib-only package builder on bare Linux hosts that do not install the
|
|
controller's Pillow/FontTools runtime.
|
|
"""
|
|
|
|
from importlib import import_module
|
|
|
|
__all__ = [
|
|
"OtaBusyError",
|
|
"OtaManager",
|
|
"OtaPackageError",
|
|
"OtaUploadError",
|
|
"SoftwareVersion",
|
|
"inspect_package",
|
|
"read_software_version",
|
|
]
|
|
|
|
|
|
def __getattr__(name: str):
|
|
if name in {"OtaBusyError", "OtaManager", "OtaUploadError"}:
|
|
return getattr(import_module(".manager", __name__), name)
|
|
if name in {"OtaPackageError", "inspect_package"}:
|
|
return getattr(import_module(".package", __name__), name)
|
|
if name in {"SoftwareVersion", "read_software_version"}:
|
|
return getattr(import_module(".versioning", __name__), name)
|
|
raise AttributeError(name)
|