Skip to content

Commit 38d2073

Browse files
authored
Refactor footgun (#57)
- Added traceback import for better error logging. - Enhanced exception handling to include traceback details. - Commented out non-integer rule number checks for now.
1 parent 091a272 commit 38d2073

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/spreadsheet.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
"""Module for reading and processing rules from a cloud hosted TSV file."""
22

3+
import traceback
4+
35
import pandas as pd
46
from pandas import DataFrame
57
from pandas.core.groupby import DataFrameGroupBy
@@ -76,10 +78,10 @@ def validate_rule_numbers(df: DataFrame) -> list[str]:
7678
if df["Rule Number"].isna().any():
7779
messages.append("Warning: Some rules are missing rule numbers")
7880

79-
# Check for non-integer rule numbers
80-
non_int_mask = df["Rule Number"].apply(lambda x: not pd.isna(x) and not float(x).is_integer())
81-
if non_int_mask.any():
82-
messages.append("Warning: Some rule numbers are not integers")
81+
# # Check for non-integer rule numbers
82+
# non_int_mask = df["Rule Number"].apply(lambda x: not pd.isna(x) and not float(x).is_integer())
83+
# if non_int_mask.any():
84+
# messages.append("Warning: Some rule numbers are not integers")
8385

8486
# Check for duplicate rule numbers in WHERE rows
8587
where_rules = df[df["Logic"].str.upper() == "WHERE"]["Rule Number"]
@@ -120,7 +122,8 @@ def read_rules_from_spreadsheet(url: str) -> tuple[DataFrameGroupBy, list[str]]
120122
return grouped_rules, messages
121123

122124
except Exception as e:
123-
return None, [f"Failed to read the TSV from the URL: {str(e)}"]
125+
traceback.print_exc()
126+
return None, [f"Failed to read the TSV from the URL: {str(e)}:{e.with_traceback(None)}"]
124127

125128

126129
def convert_mixed_columns(df: DataFrame) -> DataFrame:

0 commit comments

Comments
 (0)