src.pydasa.core.setup ===================== .. py:module:: src.pydasa.core.setup .. autoapi-nested-parse:: Module config.py =========================================== Configuration module for **PyDASA** Dimensional Analysis parameters. Provides type-safe, immutable configuration using Enums and frozen dataclasses. Its key features are: - Type-safe Enum definitions for frameworks, categories, and modes - Immutable configuration via frozen dataclass with singleton pattern - Backward compatibility with legacy dict-based access Supported Frameworks: - PHYSICAL: Traditional physical dimensional framework. - COMPUTATION: Computer science dimensional framework. - SOFTWARE: Software architecture dimensional framework. - CUSTOM: User-defined dimensional framework. Supported Variable Categories: - IN: Input variables influencing the system. - OUT: Output variables representing analysis results. - CTRL: Control variables constraining the system. Supported Analysis Modes: - SYM: Analysis for symbolic processable Parameters (e.g., 'x + y'). - NUM: Analysis for numeric Variables (e.g., 1.0, 2.5). NOTE: in the future the enum should be configurated via external files (e.g., `JSON`, `YAML`) to allow user customization. **IMPORTANT** - Based on the theory from H. Görtler, *Dimensionalanalyse: Eine Theoririe der physikalischen Dimensionen mit Anwendungen* Attributes ---------- .. autoapisummary:: src.pydasa.core.setup.PYDASA_CFG Classes ------- .. autoapisummary:: src.pydasa.core.setup.Frameworks src.pydasa.core.setup.VarCardinality src.pydasa.core.setup.CoefCardinality src.pydasa.core.setup.AnaliticMode src.pydasa.core.setup.SimulationMode src.pydasa.core.setup.PyDASAConfig Module Contents --------------- .. py:class:: Frameworks Bases: :py:obj:`str`, :py:obj:`enum.Enum` Enumerator for Fundamental Dimensional Units (FDUs) frameworks/domains supported in *PyDASA*. Inherits from: - str: To allow string comparison and representation. - Enum: To define enumeration members. Initialize self. See help(type(self)) for accurate signature. .. py:attribute:: PHYSICAL :value: 'PHYSICAL' .. py:attribute:: COMPUTATION :value: 'COMPUTATION' .. py:attribute:: SOFTWARE :value: 'SOFTWARE' .. py:attribute:: CUSTOM :value: 'CUSTOM' .. py:property:: description :type: str Get the human-readable description of the dimensional frameworks/domains. :returns: Human-readable framework's description. :rtype: str .. py:class:: VarCardinality Bases: :py:obj:`str`, :py:obj:`enum.Enum` Enumerator for Variable cardinality used to classify variables in the dimensional matrix. Inherits from: - str (class): Python native str class. - Enum (class): Python native Enum class. Initialize self. See help(type(self)) for accurate signature. .. py:attribute:: IN :value: 'IN' .. py:attribute:: OUT :value: 'OUT' .. py:attribute:: CTRL :value: 'CTRL' .. py:property:: description :type: str Get the human-readable description of the variable cardinality. :returns: Human-readable variable cardinality description. :rtype: str .. py:class:: CoefCardinality Bases: :py:obj:`str`, :py:obj:`enum.Enum` Enumerator for Dimensionless Coefficient/Numbers/Groups (DC/DN/DG) cardinality used to classify dimensionless coefficients in formulas and equations in **PyDASA. Inherits from: - str (class): Python native str class. - Enum (class): Python native Enum class. Initialize self. See help(type(self)) for accurate signature. .. py:attribute:: COMPUTED :value: 'COMPUTED' .. py:attribute:: DERIVED :value: 'DERIVED' .. py:property:: description :type: str Get the human-readable description of the coefficient cardinality. :returns: Human-readable coefficient cardinality description. :rtype: str .. py:class:: AnaliticMode Bases: :py:obj:`str`, :py:obj:`enum.Enum` Enumerator for the sensitivity analysis modes used to specify the type of analysis performed on variables, coefficients, or functions in **PyDASA**. Inherits from: - str (class): Python native str class. - Enum (class): Python native Enum class. Initialize self. See help(type(self)) for accurate signature. .. py:attribute:: SYM :value: 'SYM' .. py:attribute:: NUM :value: 'NUM' .. py:property:: description :type: str .. py:class:: SimulationMode Bases: :py:obj:`str`, :py:obj:`enum.Enum` Enumerator for simulation modes used to specify sample generation strategy (distribution-based or data-based) in **PyDASA**. Inherits from: - str (class): Python native str class. - Enum (class): Python native Enum class. Initialize self. See help(type(self)) for accurate signature. .. py:attribute:: DIST :value: 'DIST' .. py:attribute:: DATA :value: 'DATA' .. py:property:: description :type: str .. py:class:: PyDASAConfig Singleton class for **PyDASA** configuration. It uses dataclass decorator to freeze the data. .. py:attribute:: _instance :type: ClassVar[PyDASAConfig | None] :value: None Singleton instance of PyDASAConfig. .. py:attribute:: SPT_FDU_FWKS :type: dict Supported Fundamental Dimensional Units (FDUs) frameworks and their configurations. .. py:method:: get_instance() :classmethod: Get the singleton instance of PyDASAConfig for accessing the global configuration. :returns: Singleton instance of PyDASAConfig. :rtype: PyDASAConfig .. py:property:: frameworks :type: tuple[Frameworks, Ellipsis] Get **PyDASA** supported frameworks. :returns: Tuple of supported Frameworks. :rtype: tuple[Frameworks, ...] .. py:property:: parameter_cardinality :type: tuple[VarCardinality, Ellipsis] Get **PyDASA** supported variable cardinalities. :returns: Tuple of supported VarCardinality. :rtype: tuple[VarCardinality, ...] .. py:property:: coefficient_cardinality :type: tuple[CoefCardinality, Ellipsis] Get **PyDASA** supported coefficient cardinalities. :returns: Tuple of supported CoefCardinality. :rtype: tuple[CoefCardinality, ...] .. py:property:: analitic_modes :type: tuple[AnaliticMode, Ellipsis] Get **PyDASA** supported analysis modes. :returns: Tuple of supported AnaliticMode. :rtype: tuple[AnaliticMode, ...] .. py:property:: simulation_modes :type: tuple[SimulationMode, Ellipsis] Get **PyDASA** supported simulation modes. :returns: Tuple of supported SimulationMode. :rtype: tuple[SimulationMode, ...] .. py:data:: PYDASA_CFG :type: PyDASAConfig Singleton instance of PyDASAConfig for accessing global configuration.