From fd68fe3f66af2f630c47297ece43d0393554aa33 Mon Sep 17 00:00:00 2001 From: cching95 Date: Tue, 23 Sep 2025 09:46:23 +0100 Subject: [PATCH 1/2] remove window_size_mins parameter from TWA Signed-off-by: cching95 --- src/api/v1/models.py | 7 ------- .../queries/time_series/time_weighted_average.py | 9 +-------- tests/api/v1/api_test_objects.py | 2 -- .../queries/time_series/test_time_weighted_average.py | 11 ----------- 4 files changed, 1 insertion(+), 28 deletions(-) diff --git a/src/api/v1/models.py b/src/api/v1/models.py index 8795bdd82..73125fdd0 100644 --- a/src/api/v1/models.py +++ b/src/api/v1/models.py @@ -486,12 +486,6 @@ def __init__( class TimeWeightedAverageQueryParams: def __init__( self, - window_size_mins: int = Query( - None, - description="window_size_mins is deprecated and will be removed in v1.0.0. Please use time_interval_rate and time_interval_unit instead.", - examples=[20], - deprecated=True, - ), time_interval_rate: str = DuplicatedQueryParameters.time_interval_rate, time_interval_unit: str = DuplicatedQueryParameters.time_interval_unit, window_length: int = Query( @@ -503,7 +497,6 @@ def __init__( examples=["true", "false", "metadata"], ), ): - self.window_size_mins = window_size_mins self.time_interval_rate = time_interval_rate self.time_interval_unit = time_interval_unit self.window_length = window_length diff --git a/src/sdk/python/rtdip_sdk/queries/time_series/time_weighted_average.py b/src/sdk/python/rtdip_sdk/queries/time_series/time_weighted_average.py index fb9d644cd..2eae2e6f0 100644 --- a/src/sdk/python/rtdip_sdk/queries/time_series/time_weighted_average.py +++ b/src/sdk/python/rtdip_sdk/queries/time_series/time_weighted_average.py @@ -13,6 +13,7 @@ # limitations under the License. import logging import pandas as pd + from ._time_series_query_builder import _query_builder @@ -37,7 +38,6 @@ def get(connection: object, parameters_dict: dict) -> pd.DataFrame: tag_names (list): List of tagname or tagnames start_date (str): Start date (Either a utc date in the format YYYY-MM-DD or a utc datetime in the format YYYY-MM-DDTHH:MM:SS or specify the timezone offset in the format YYYY-MM-DDTHH:MM:SS+zz:zz) end_date (str): End date (Either a utc date in the format YYYY-MM-DD or a utc datetime in the format YYYY-MM-DDTHH:MM:SS or specify the timezone offset in the format YYYY-MM-DDTHH:MM:SS+zz:zz) - window_size_mins (int): (deprecated) Window size in minutes. Please use time_interval_rate and time_interval_unit below instead. time_interval_rate (str): The time interval rate (numeric input) time_interval_unit (str): The time interval unit (second, minute, day, hour) window_length (int): Add longer window time in days for the start or end of specified date to cater for edge cases. @@ -65,13 +65,6 @@ def get(connection: object, parameters_dict: dict) -> pd.DataFrame: if parameters_dict["pivot"] is True and parameters_dict["display_uom"] is True: raise ValueError("pivot True and display_uom True cannot be used together") - if "window_size_mins" in parameters_dict: - logging.warning( - "Parameter window_size_mins is deprecated and will be removed in v1.0.0. Please use time_interval_rate and time_interval_unit instead." - ) - parameters_dict["time_interval_rate"] = str(parameters_dict["window_size_mins"]) - parameters_dict["time_interval_unit"] = "minute" - try: query = _query_builder(parameters_dict, "time_weighted_average") diff --git a/tests/api/v1/api_test_objects.py b/tests/api/v1/api_test_objects.py index 9ffb5666e..2599a298c 100644 --- a/tests/api/v1/api_test_objects.py +++ b/tests/api/v1/api_test_objects.py @@ -152,12 +152,10 @@ RAW_MOCKED_PARAMETER_ERROR_DICT.copy() ) -TIME_WEIGHTED_AVERAGE_MOCKED_PARAMETER_DICT["window_size_mins"] = "15" TIME_WEIGHTED_AVERAGE_MOCKED_PARAMETER_DICT["time_interval_rate"] = "15" TIME_WEIGHTED_AVERAGE_MOCKED_PARAMETER_DICT["time_interval_unit"] = "minute" TIME_WEIGHTED_AVERAGE_MOCKED_PARAMETER_DICT["window_length"] = 10 TIME_WEIGHTED_AVERAGE_MOCKED_PARAMETER_DICT["step"] = "metadata" -TIME_WEIGHTED_AVERAGE_MOCKED_PARAMETER_ERROR_DICT["window_size_mins"] = "15" TIME_WEIGHTED_AVERAGE_MOCKED_PARAMETER_ERROR_DICT["time_interval_rate"] = "15" TIME_WEIGHTED_AVERAGE_MOCKED_PARAMETER_ERROR_DICT["time_interval_unit"] = "minute" TIME_WEIGHTED_AVERAGE_MOCKED_PARAMETER_ERROR_DICT["window_length"] = 10 diff --git a/tests/sdk/python/rtdip_sdk/queries/time_series/test_time_weighted_average.py b/tests/sdk/python/rtdip_sdk/queries/time_series/test_time_weighted_average.py index 0f048ce5a..ad8b3b279 100644 --- a/tests/sdk/python/rtdip_sdk/queries/time_series/test_time_weighted_average.py +++ b/tests/sdk/python/rtdip_sdk/queries/time_series/test_time_weighted_average.py @@ -60,18 +60,7 @@ def test_time_weighted_average_check_tags(mocker: MockerFixture): TWA_MOCKED_QUERY_CHECK_TAGS, time_weighted_average_get, ) - - -def test_time_weighted_average_with_window_size_mins(mocker: MockerFixture): MOCKED_TWA_PARAMETER_DICT["case_insensitivity_tag_search"] = False - MOCKED_TWA_PARAMETER_DICT["window_size_mins"] = 15 - - _test_base_succeed( - mocker, - MOCKED_TWA_PARAMETER_DICT, - TWA_MOCKED_QUERY, - time_weighted_average_get, - ) def test_time_weighted_average_metadata_step(mocker: MockerFixture): From 0ba9cc5c92b76ab25e04a1c69343a1d0fc3407f2 Mon Sep 17 00:00:00 2001 From: cching95 Date: Tue, 23 Sep 2025 10:50:17 +0100 Subject: [PATCH 2/2] add default value as metadata for step if not provided Signed-off-by: cching95 --- src/api/v1/models.py | 2 +- .../rtdip_sdk/queries/time_series/time_weighted_average.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/api/v1/models.py b/src/api/v1/models.py index 73125fdd0..8255bc280 100644 --- a/src/api/v1/models.py +++ b/src/api/v1/models.py @@ -492,7 +492,7 @@ def __init__( ..., description="Window Length in days", examples=[1] ), step: str = Query( - ..., + default="metadata", description='Step can be "true", "false" or "metadata". "metadata" will retrieve the step value from the metadata table.', examples=["true", "false", "metadata"], ), diff --git a/src/sdk/python/rtdip_sdk/queries/time_series/time_weighted_average.py b/src/sdk/python/rtdip_sdk/queries/time_series/time_weighted_average.py index 2eae2e6f0..1c49cbb50 100644 --- a/src/sdk/python/rtdip_sdk/queries/time_series/time_weighted_average.py +++ b/src/sdk/python/rtdip_sdk/queries/time_series/time_weighted_average.py @@ -65,6 +65,9 @@ def get(connection: object, parameters_dict: dict) -> pd.DataFrame: if parameters_dict["pivot"] is True and parameters_dict["display_uom"] is True: raise ValueError("pivot True and display_uom True cannot be used together") + if "step" not in parameters_dict: # default step to metadata if not provided + parameters_dict["step"] = "metadata" + try: query = _query_builder(parameters_dict, "time_weighted_average")