sda.analysis.columns ==================== .. py:module:: sda.analysis.columns .. autoapi-nested-parse:: Shared column-name registries and row-value helpers for SDA analysis scripts. Centralises the heterogeneous column-name lists that appear across multiple test files, so that any analysis script can import a single source of truth rather than maintaining its own copy. Attributes ---------- .. autoapisummary:: sda.analysis.columns.ENERGY_COLS sda.analysis.columns.VOLTAGE_COLS sda.analysis.columns.FREQ_COLS sda.analysis.columns.NOTE_COLS sda.analysis.columns.GAP_COLS sda.analysis.columns.GEN_COL_PRIORITY sda.analysis.columns.GEN_GENERIC sda.analysis.columns.GENERATOR_NAMES Functions --------- .. autoapisummary:: sda.analysis.columns.first_value sda.analysis.columns.concat_notes Module Contents --------------- .. py:data:: ENERGY_COLS :type: list[str] :value: ['Energie par pulse (mJ)', 'Energie par pulse mesuré (mJ)', 'Energie déposée par pulse (mJ)',... .. py:data:: VOLTAGE_COLS :type: list[str] :value: ['Voltage input (kV)', 'Voltage (kV)', 'Input voltage [kV]', 'Tension (kV)'] .. py:data:: FREQ_COLS :type: list[str] :value: ['Fréquence (kHz)', 'Frequency (kHz)', 'Input frequency [kHz]'] .. py:data:: NOTE_COLS :type: list[str] :value: ['Notes', 'Notes2', 'Remarks', 'Commentaires', 'Remarques', 'Justification_Zone', 'Objectifs'] .. py:data:: GAP_COLS :type: list[str] :value: ['Gap (mm)'] .. py:data:: GEN_COL_PRIORITY :type: list[str] :value: ['Generator', 'Générateur', 'Generateur'] .. py:data:: GEN_GENERIC :type: frozenset[str] .. py:data:: GENERATOR_NAMES :type: list[str] :value: ['SOLO2', 'SOLO3', 'SOLO4', 'SOLO5', 'LOCA', 'ROCO', 'NRP', 'DC', 'HYBRIDE'] .. py:function:: first_value(row, df_cols, candidates) Return the first non-null string value from an ordered list of column candidates. :param row: :type row: :py:class:`A single DataFrame row (pd.Series).` :param df_cols: :type df_cols: :py:class:`List` of :py:class:`column names present in the DataFrame.` :param candidates: :type candidates: :py:class:`Ordered list` of :py:class:`column names` to :py:class:`try.` :rtype: :py:class:`The stripped string value` of :py:class:`the first populated column`, or ``None``. .. py:function:: concat_notes(row, df_cols, note_cols = None, *, keyword_filter = None) Concatenate all non-null note/comment fields for hover tooltips. :param row: :type row: :py:class:`A single DataFrame row.` :param df_cols: :type df_cols: :py:class:`Column names present in the DataFrame.` :param note_cols: :data:`NOTE_COLS`. :type note_cols: :py:class:`Ordered list` of :py:class:`note column names. Defaults to` :param keyword_filter: keyword appears in the text (case-insensitive). Pass ``None`` to include all non-empty fields. :type keyword_filter: :py:class:`If given (e.g. `````"pdc"``:py:class:```)`, :py:class:`only include a field when that` :rtype: :py:class:``````"field1 | field2 | …"``:py:class:```` or ``None`` when nothing was found.