mbdlyb_ui.functional.diagnoser ============================== .. py:module:: mbdlyb_ui.functional.diagnoser .. autoapi-nested-parse:: Copyright (c) 2023 - 2026 TNO-ESI All rights reserved. Classes ------- .. autoapisummary:: mbdlyb_ui.functional.diagnoser.DiagnoserPage mbdlyb_ui.functional.diagnoser.UIDiagnoserData Functions --------- .. autoapisummary:: mbdlyb_ui.functional.diagnoser.create_evidence_select mbdlyb_ui.functional.diagnoser.create_evidence_sliders mbdlyb_ui.functional.diagnoser.diagnoses mbdlyb_ui.functional.diagnoser.diagnostic_tests mbdlyb_ui.functional.diagnoser.diagnostic_tests_plot mbdlyb_ui.functional.diagnoser.direct_observables mbdlyb_ui.functional.diagnoser.evidence mbdlyb_ui.functional.diagnoser.export mbdlyb_ui.functional.diagnoser.operating_modes Module Contents --------------- .. py:class:: DiagnoserPage(cluster_id: str) Bases: :py:obj:`mbdlyb_ui.functional.base.FunctionalPage` Display the diagnoser editing page. .. py:attribute:: cluster :type: mbdlyb.functional.gdb.GCluster .. py:attribute:: data :type: UIDiagnoserData .. py:class:: UIDiagnoserData(cluster_id: str, auto_compute=False) Hold the diagnoser analysis and UI state. .. py:method:: add_staging_evidence(*nodes: mbdlyb.functional.FunctionalNode) Queue nodes whose evidence should be updated. :param nodes: Nodes whose pending evidence state should change. .. py:method:: add_unstaging_evidence(*nodes: mbdlyb.functional.FunctionalNode) Queue nodes whose evidence should be removed. :param nodes: Nodes whose pending evidence state should change. .. py:method:: compute(event=None) :async: Infer hardware health and rank diagnostic tests using current evidence. :param event: Optional UI event whose sender is disabled during computation. .. py:method:: compute_tests(event=None) :async: Re-sort suggested diagnostic tests and refresh their views. :param event: Optional UI event whose sender is disabled during computation. .. py:method:: empty() Clear diagnosis results, pending evidence, and reasoner state. .. py:method:: refresh(refresh_diagnoses=True) :staticmethod: Refresh diagnosis, test, observable, mode, and evidence displays. :param refresh_diagnoses: Whether to refresh diagnosis and test results as well as evidence. .. py:method:: reset(event=None) :async: Clear analysis results and reload the cluster model. :param event: Optional UI event whose sender is disabled during computation. .. py:attribute:: auto_compute :type: bool :value: True .. py:attribute:: balance :type: float .. py:attribute:: cluster :type: mbdlyb.functional.Cluster .. py:attribute:: diagnoser :type: Optional[mbdlyb.functional.Diagnoser] :value: None .. py:attribute:: diagnostic_tests :type: pandas.DataFrame .. py:attribute:: direct_observables :type: pandas.DataFrame .. py:attribute:: entropy_limit :type: int :value: 10 .. py:attribute:: filter_do :type: Optional[str] :value: None .. py:attribute:: filter_dt :type: Optional[str] :value: None .. py:attribute:: filter_hw :type: Optional[str] :value: None .. py:attribute:: filter_opm :type: Optional[str] :value: None .. py:attribute:: hardware_limit :type: int :value: 10 .. py:attribute:: health_results :type: pandas.DataFrame .. py:attribute:: loss_function .. py:attribute:: operating_modes :type: pandas.DataFrame .. py:attribute:: soft_evidence :type: bool :value: False .. py:property:: staging_evidence :type: set[mbdlyb.functional.FunctionalNode] Return nodes awaiting evidence updates. :returns: Nodes awaiting evidence updates. .. py:attribute:: test_limit :type: int :value: 10 .. py:property:: unstaging_evidence :type: set[mbdlyb.functional.FunctionalNode] Return nodes awaiting evidence removal. :returns: Nodes awaiting evidence removal. .. py:function:: create_evidence_select(label: str, states: list[str], evidence: dict[str, Union[str, list[float]]], fqn: str) -> list[nicegui.elements.mixins.value_element.ValueElement] Create state selection inputs bound to the evidence mapping. :param label: Label shown beside the input control. :param states: States offered in the evidence selector. :param evidence: Mapping of node names to supplied evidence. :param fqn: Fully qualified name of the evidence node. :returns: UI input controls bound to the editable model. .. py:function:: create_evidence_sliders(states: list[str], evidence: dict[str, Union[str, list[float]]], fqn: str, make_optional: bool = True, label: Optional[str] = None) -> list[Union[nicegui.elements.mixins.value_element.ValueElement, list[nicegui.elements.mixins.value_element.ValueElement], Tuple[nicegui.elements.mixins.value_element.ValueElement, Union[nicegui.elements.mixins.value_element.ValueElement, list[nicegui.elements.mixins.value_element.ValueElement]]]]] Create probability sliders bound to the evidence mapping. :param states: States represented by probability sliders. :param evidence: Mapping of node names to supplied evidence. :param fqn: Fully qualified name of the evidence node. :param make_optional: Whether a state selection may be left empty. :param label: Label shown beside the input control. :returns: UI input controls bound to the editable model. .. py:function:: diagnoses(data: UIDiagnoserData) Render ranked health diagnoses with the selected filters. :param data: Inferred hardware health results and diagnosis filters. .. py:function:: diagnostic_tests(data: UIDiagnoserData) Render ranked diagnostic tests and evidence controls. :param data: Ranked diagnostic tests and evidence staging state. .. py:function:: diagnostic_tests_plot(data: UIDiagnoserData, dialog: nicegui.ui.dialog) Plot the costs and information gain of diagnostic tests. :param data: Ranked tests and their entropy and cost values. :param dialog: Settings dialog to populate. .. py:function:: direct_observables(data: UIDiagnoserData) Render direct observable results and evidence controls. :param data: Observable results and current evidence state. .. py:function:: evidence(data: UIDiagnoserData) Render currently supplied evidence and removal controls. :param data: Current reasoner evidence and entries pending removal. .. py:function:: export(data: UIDiagnoserData) -> export.bytes Export evidence, hardware health, and recommended tests to a spreadsheet. :param data: Diagnosis evidence, health results, and recommended tests to export. :returns: Spreadsheet bytes for the diagnosis. .. py:function:: operating_modes(data: UIDiagnoserData) Display operating modes available as diagnostic evidence. :param data: Available operating modes and current evidence state.