From 9bda1a48c6b3acce29983a37c0099ead94550021 Mon Sep 17 00:00:00 2001 From: Deepak Mallubhotla Date: Sun, 23 Feb 2025 02:18:29 -0600 Subject: [PATCH] feat: parse cpsd type from header --- kalpaa/read_bin_csv.py | 6 ++-- .../__snapshots__/test_read_bin_csv.ambr | 32 +++++++++++++++++++ tests/read_bin_csv/test_read_bin_csv.py | 4 +++ 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/kalpaa/read_bin_csv.py b/kalpaa/read_bin_csv.py index 7413858..2f5e965 100644 --- a/kalpaa/read_bin_csv.py +++ b/kalpaa/read_bin_csv.py @@ -153,7 +153,9 @@ def _parse_bin_header(field: str) -> typing.Optional[ParsedBinHeader]: dot_name=match_groups["dot_name"], summary_stat=match_groups["summary_stat"], ) - elif (pair_match := re.match(PAIR_MEASUREMENT_BINNED_HEADER_REGEX, field)) is not None: + elif ( + pair_match := re.match(PAIR_MEASUREMENT_BINNED_HEADER_REGEX, field) + ) is not None: groups = pair_match.groupdict() return ParsedBinHeader( original_field=field, @@ -163,7 +165,7 @@ def _parse_bin_header(field: str) -> typing.Optional[ParsedBinHeader]: cpsd_type=groups["cpsd_type"], summary_stat=groups["summary_stat"], ) - else: + else: _logger.debug(f"Could not parse {field=}") return None diff --git a/tests/read_bin_csv/__snapshots__/test_read_bin_csv.ambr b/tests/read_bin_csv/__snapshots__/test_read_bin_csv.ambr index c512eab..8647f64 100644 --- a/tests/read_bin_csv/__snapshots__/test_read_bin_csv.ambr +++ b/tests/read_bin_csv/__snapshots__/test_read_bin_csv.ambr @@ -307,5 +307,37 @@ 'summary_stat': 'mean', }), None, + dict({ + 'cpsd_type': 'correlation', + 'dot_name': 'dot1', + 'dot_name2': 'dot2', + 'measurement_type': 'V', + 'original_field': 'CPSD_correlation_V_dot1_dot2_mean', + 'summary_stat': 'mean', + }), + dict({ + 'cpsd_type': 'correlation', + 'dot_name': 'dot1', + 'dot_name2': 'dot2', + 'measurement_type': 'V', + 'original_field': 'CPSD_correlation_V_dot1_dot2_stdev', + 'summary_stat': 'stdev', + }), + dict({ + 'cpsd_type': 'phase', + 'dot_name': 'dot1', + 'dot_name2': 'dot2', + 'measurement_type': 'V', + 'original_field': 'CPSD_phase_V_dot1_dot2_mean', + 'summary_stat': 'mean', + }), + dict({ + 'cpsd_type': 'phase', + 'dot_name': 'dot1', + 'dot_name2': 'dot2', + 'measurement_type': 'V', + 'original_field': 'CPSD_phase_V_dot1_dot2_stdev', + 'summary_stat': 'stdev', + }), ]) # --- diff --git a/tests/read_bin_csv/test_read_bin_csv.py b/tests/read_bin_csv/test_read_bin_csv.py index 9175ad2..641c490 100644 --- a/tests/read_bin_csv/test_read_bin_csv.py +++ b/tests/read_bin_csv/test_read_bin_csv.py @@ -40,6 +40,10 @@ def test_parse_headers(snapshot): "APSD_V_triangle2_stdev", "APSD_V_uprise1_mean", "This is not a valid header", + "CPSD_correlation_V_dot1_dot2_mean", + "CPSD_correlation_V_dot1_dot2_stdev", + "CPSD_phase_V_dot1_dot2_mean", + "CPSD_phase_V_dot1_dot2_stdev", ] # force logger to be used for now