From a0b64ab30dc97410f26f57df336c21685a38df14 Mon Sep 17 00:00:00 2001 From: Izzet Yildirim Date: Wed, 28 Jan 2026 16:41:54 -0800 Subject: [PATCH] fix: Update pandas dependency version constraint and improve string type checks in Analyzer class --- pyproject.toml | 2 +- python/dftracer/analyzer/analyzer.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 09d644f..97cba4c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,7 +32,7 @@ dependencies = [ "hydra-core~=1.3.0", "inflect==7.0", "numpy>=2.0.0", - "pandas>=2.2.0", + "pandas>=2.2.0,<3.0.0", "portion>=2.4.0", "pyarrow>=13", "rich~=14.1.0", diff --git a/python/dftracer/analyzer/analyzer.py b/python/dftracer/analyzer/analyzer.py index c9a5521..83e50e2 100644 --- a/python/dftracer/analyzer/analyzer.py +++ b/python/dftracer/analyzer/analyzer.py @@ -703,10 +703,10 @@ def set_layer_metrics(hlm: pd.DataFrame, derived_metrics: Dict[str, str]) -> pd. continue metric_col = f"{metric}_{col}" hlm[metric_col] = pd.NA - if hlm.dtypes[col].name == "object" and not is_data_col: + if pd.api.types.is_string_dtype(hlm.dtypes[col]) and not is_data_col: hlm[metric_col] = hlm[metric_col].map(lambda x: S()) hlm[metric_col] = hlm[metric_col].mask(hlm.eval(condition), hlm[col]) - if hlm.dtypes[col].name != "object": + if not pd.api.types.is_string_dtype(hlm.dtypes[col]): hlm[metric_col] = pd.to_numeric(hlm[metric_col], errors="coerce") return hlm