ai-lsc/src/ai_lsc/ui/__init__.py

40 lines
1.1 KiB
Python

"""AI-LSC UI sub-package.
All PySide6-dependent UI widgets live here. If PySide6 is not installed
the sub-package still imports but the concrete widget classes will be ``None``.
Sub-packages
------------
pages
Individual tab/page widgets (ServiceRow, ChatbotConsole, etc.).
dialogs
Modal dialogs (StackWizard).
protocol
:class:`MainWindowProtocol` interface for decoupling pages from
the concrete main window.
"""
from ai_lsc.ui.protocol import MainWindowProtocol # noqa: F401
# Lazy re-exports -- guarded so the package is importable without Qt.
try:
from ai_lsc.ui.main_window import (
AILocalStackControl, # noqa: F401
apply_terminal_theme, # noqa: F401
)
except ImportError:
AILocalStackControl = None # type: ignore[assignment, misc]
apply_terminal_theme = None # type: ignore[assignment, misc]
try:
from ai_lsc.ui.dialogs.stack_wizard import StackWizard # noqa: F401
except ImportError:
StackWizard = None # type: ignore[assignment, misc]
__all__ = [
"MainWindowProtocol",
"AILocalStackControl",
"apply_terminal_theme",
"StackWizard",
]