LCOV - code coverage report
Current view: top level - src/pairinteraction_gui/page - one_atom_page.py (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 27 27
Test Date: 2026-11-02 09:44:19 Functions: 100.0 % 4 4

            Line data    Source code
       1              : # SPDX-FileCopyrightText: 2025 PairInteraction Developers
       2              : # SPDX-License-Identifier: LGPL-3.0-or-later
       3            1 : from __future__ import annotations
       4              : 
       5            1 : import logging
       6            1 : from typing import TYPE_CHECKING
       7              : 
       8            1 : from pairinteraction_gui.calculate.calculate_one_atom import ParametersOneAtom, calculate_one_atom
       9            1 : from pairinteraction_gui.config import (
      10              :     BasisConfigOneAtom,
      11              :     CalculationConfig,
      12              :     KetConfigOneAtom,
      13              :     SystemConfigOneAtom,
      14              : )
      15            1 : from pairinteraction_gui.page.base_page import CalculationPage
      16              : 
      17              : if TYPE_CHECKING:
      18              :     from pairinteraction_gui.calculate.calculate_one_atom import ResultsOneAtom
      19              : 
      20            1 : logger = logging.getLogger(__name__)
      21              : 
      22              : 
      23            1 : class OneAtomPage(CalculationPage):
      24              :     """Page for configuring and analyzing single-atom systems."""
      25              : 
      26            1 :     title = "One\nAtom"
      27            1 :     tooltip = "Configure and analyze single-atom systems"
      28              : 
      29            1 :     def setupWidget(self) -> None:
      30            1 :         super().setupWidget()
      31              : 
      32              :         # all attributes of instance BaseConfig will be added to the toolbox in postSetupWidget
      33            1 :         self.ket_config = KetConfigOneAtom(self)
      34            1 :         self.basis_config = BasisConfigOneAtom(self)
      35            1 :         self.system_config = SystemConfigOneAtom(self)
      36            1 :         self.calculation_config = CalculationConfig(self)
      37              : 
      38            1 :         self.ket_config.signal_species_changed.connect(self.basis_config.on_species_changed)
      39            1 :         self.ket_config.signal_species_changed.connect(self.plotwidget.clear)
      40              : 
      41            1 :     def calculate(self) -> tuple[ParametersOneAtom, ResultsOneAtom]:
      42            1 :         parameters = ParametersOneAtom.from_page(self)
      43            1 :         results = calculate_one_atom(parameters)
      44            1 :         return parameters, results
      45              : 
      46            1 :     def _get_export_notebook_template_name(self) -> str:
      47            1 :         return "one_atom.ipynb"
      48              : 
      49            1 :     def _get_export_replacements(self) -> dict[str, str]:
      50            1 :         parameters = ParametersOneAtom.from_page(self)
      51            1 :         return parameters.to_replacement_dict()
        

Generated by: LCOV version 2.0-1