From d5516ff8d018bd82b2ce9bb34cb8774d0fba3eae Mon Sep 17 00:00:00 2001 From: "J.C. Jones" Date: Thu, 26 May 2022 11:25:40 -0700 Subject: [PATCH] Don't divide by zero Fix #39 This mostly just improves the logging. This can still happen if the partitions have out-of-order numbers, which is going to be handled more in #51 --- partitionmanager/table_append_partition.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/partitionmanager/table_append_partition.py b/partitionmanager/table_append_partition.py index 44fb662..66291f3 100644 --- a/partitionmanager/table_append_partition.py +++ b/partitionmanager/table_append_partition.py @@ -270,6 +270,8 @@ def _get_weighted_position_increase_per_day_for_partitions(partitions): more, and returns a final list of weighted partition-position-increase-per- day, with one entry per column. """ + log = logging.getLogger("get_weighted_position_increase_per_day_for_partitions") + if not partitions: raise ValueError("Partition list must not be empty") @@ -279,6 +281,12 @@ def _get_weighted_position_increase_per_day_for_partitions(partitions): ] weights = _generate_weights(len(pos_rates)) + if not pos_rates or not weights: + log.error( + "No rates of change were valid for the partition list: %s", partitions + ) + raise ValueError("No valid rates of change") + # Initialize a list with a zero for each position weighted_sums = [0] * partitions[0].num_columns