Skip to content

Commit 7a81965

Browse files
committed
handle dataframe-level failure cases: convert row to dict
Signed-off-by: cosmicBboy <[email protected]>
1 parent 2a50548 commit 7a81965

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

pandera/backends/ibis/base.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,19 @@ def run_check(
5757
schema, check, check_index
5858
)
5959
else:
60+
import pandas as pd
61+
from pandera.api.pandas.types import is_table
62+
63+
check_failure_cases = check_result.failure_cases.to_pandas()
64+
if is_table(check_failure_cases):
65+
check_failure_cases = (
66+
pd.Series(check_failure_cases.to_dict("records"))
67+
.rename("failure_case")
68+
.to_frame()
69+
)
70+
6071
failure_cases = reshape_failure_cases(
61-
check_result.failure_cases.to_pandas(), check.ignore_na
72+
check_failure_cases, check.ignore_na
6273
)
6374
message = format_vectorized_error_message(
6475
schema, check, check_index, failure_cases

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ dev = [
113113
"joblib",
114114
"mypy == 1.10.0",
115115
"pip",
116+
"polars >= 0.20.0",
116117
"pre_commit",
117118
"pyarrow >= 13",
118119
"pylint < 3.3",

tests/ibis/test_ibis_container.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,4 @@ def custom_check(data: IbisData):
8181
try:
8282
t.pipe(schema.validate, lazy=True)
8383
except pa.errors.SchemaErrors as err:
84-
assert err.failure_cases.shape[0] == 12
84+
assert err.failure_cases.shape[0] == 6

0 commit comments

Comments
 (0)