From 833075e1a366ff2fce2c46b3d85d268adc2e9c20 Mon Sep 17 00:00:00 2001 From: joseph-sentry Date: Mon, 18 Nov 2024 09:54:38 -0500 Subject: [PATCH 1/2] fix: make inf percent change result null previously if the result of aggregation for a column for the previous interval was 0 and the result for the current interval was not zero then we would get inf as the percent_change value for that column and that would break GQL --- graphql_api/types/flake_aggregates/flake_aggregates.py | 6 +++++- .../test_results_aggregates/test_results_aggregates.py | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/graphql_api/types/flake_aggregates/flake_aggregates.py b/graphql_api/types/flake_aggregates/flake_aggregates.py index 3d54ccae78..0c03d03e3d 100644 --- a/graphql_api/types/flake_aggregates/flake_aggregates.py +++ b/graphql_api/types/flake_aggregates/flake_aggregates.py @@ -42,7 +42,11 @@ def flake_aggregates_with_percentage( merged_results: pl.DataFrame = pl.concat([past_aggregates, curr_aggregates]) merged_results = merged_results.with_columns( - pl.all().pct_change().fill_nan(0).name.suffix("_percent_change") + pl.all() + .pct_change() + .replace([float("inf"), None], None) + .fill_nan(0) + .name.suffix("_percent_change") ) aggregates = merged_results.row(1, named=True) diff --git a/graphql_api/types/test_results_aggregates/test_results_aggregates.py b/graphql_api/types/test_results_aggregates/test_results_aggregates.py index 47b73d9866..f1f1cc46a3 100644 --- a/graphql_api/types/test_results_aggregates/test_results_aggregates.py +++ b/graphql_api/types/test_results_aggregates/test_results_aggregates.py @@ -71,7 +71,11 @@ def test_results_aggregates_with_percentage( # with_columns upserts the new columns, so if the name already exists it get overwritten # otherwise it's just added merged_results = merged_results.with_columns( - pl.all().pct_change().fill_nan(0).name.suffix("_percent_change") + pl.all() + .pct_change() + .replace([float("inf"), None], None) + .fill_nan(0) + .name.suffix("_percent_change") ) aggregates = merged_results.row(1, named=True) From e7c38fd30fe0a232dac8f5d309c2a8072f3f41e3 Mon Sep 17 00:00:00 2001 From: joseph-sentry Date: Mon, 18 Nov 2024 14:20:47 -0500 Subject: [PATCH 2/2] fix: replace -inf as well --- graphql_api/types/flake_aggregates/flake_aggregates.py | 2 +- .../types/test_results_aggregates/test_results_aggregates.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/graphql_api/types/flake_aggregates/flake_aggregates.py b/graphql_api/types/flake_aggregates/flake_aggregates.py index 0c03d03e3d..4b6d8603e4 100644 --- a/graphql_api/types/flake_aggregates/flake_aggregates.py +++ b/graphql_api/types/flake_aggregates/flake_aggregates.py @@ -44,7 +44,7 @@ def flake_aggregates_with_percentage( merged_results = merged_results.with_columns( pl.all() .pct_change() - .replace([float("inf"), None], None) + .replace([float("inf"), float("-inf")], None) .fill_nan(0) .name.suffix("_percent_change") ) diff --git a/graphql_api/types/test_results_aggregates/test_results_aggregates.py b/graphql_api/types/test_results_aggregates/test_results_aggregates.py index f1f1cc46a3..da99787e3c 100644 --- a/graphql_api/types/test_results_aggregates/test_results_aggregates.py +++ b/graphql_api/types/test_results_aggregates/test_results_aggregates.py @@ -73,7 +73,7 @@ def test_results_aggregates_with_percentage( merged_results = merged_results.with_columns( pl.all() .pct_change() - .replace([float("inf"), None], None) + .replace([float("inf"), float("-inf")], None) .fill_nan(0) .name.suffix("_percent_change") )