46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
"""Module for errors thrown from ui_pages."""
|
|
|
|
from typing import List, Optional
|
|
from xml.dom import minidom
|
|
from blueberry.utils.ui_pages import ui_node
|
|
|
|
|
|
class Error(Exception):
|
|
pass
|
|
|
|
|
|
class ContextError(Error):
|
|
"""Context related error."""
|
|
|
|
def __init__(self, ctx, msg):
|
|
new_msg = f'{ctx.ad}: {msg}'
|
|
super().__init__(new_msg)
|
|
|
|
|
|
class UIError(Error):
|
|
"""UI page related error."""
|
|
pass
|
|
|
|
|
|
class UnknownPageError(Error):
|
|
"""UI page error for unknown XML content.
|
|
|
|
Attributes:
|
|
ui_xml: Parsed XML object.
|
|
clickable_nodes: List of UINode with attribute `clickable="true"`
|
|
enabled_nodes: List of UINode with attribute `enabled="true"`
|
|
all_nodes: List of all UINode
|
|
"""
|
|
|
|
def __init__(self,
|
|
ui_xml: minidom.Document,
|
|
clickable_nodes: Optional[List[ui_node.UINode]] = None,
|
|
enabled_nodes: Optional[List[ui_node.UINode]] = None,
|
|
all_nodes: Optional[List[ui_node.UINode]] = None):
|
|
new_msg = f'Unknown ui_xml:\n{ui_xml.toxml()}\n'
|
|
self.ui_xml = ui_xml
|
|
self.enabled_nodes = enabled_nodes
|
|
self.clickable_nodes = clickable_nodes
|
|
self.all_nodes = all_nodes
|
|
super().__init__(new_msg)
|