Skip to content

Commit 5093e7c

Browse files
ci(phoenix-client): ignore pyright for pandas (#10423)
* ci: fix pyright * ruff * fix it types --------- Co-authored-by: Alexander Song <[email protected]>
1 parent 593998e commit 5093e7c

File tree

5 files changed

+16
-14
lines changed

5 files changed

+16
-14
lines changed

packages/phoenix-client/src/phoenix/client/helpers/spans/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ def uniquify_spans_dataframe(
194194
if "context.trace_id" in df.columns:
195195
unique_trace_ids = df["context.trace_id"].dropna().unique() # pyright: ignore
196196
for old_trace_id in unique_trace_ids: # pyright: ignore
197-
old_trace_id_str = str(old_trace_id)
197+
old_trace_id_str = str(old_trace_id) # pyright: ignore[reportUnknownArgumentType]
198198
if old_trace_id_str and old_trace_id_str not in trace_id_mapping:
199199
trace_id_mapping[old_trace_id_str] = _generate_trace_id()
200200

packages/phoenix-client/src/phoenix/client/resources/datasets/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1932,7 +1932,7 @@ def _prepare_dataframe_as_csv(
19321932
)
19331933

19341934
csv_buffer = BytesIO()
1935-
df[selected_columns].to_csv(csv_buffer, index=False)
1935+
df[selected_columns].to_csv(csv_buffer, index=False) # pyright: ignore[reportUnknownMemberType]
19361936
csv_buffer.seek(0)
19371937

19381938
compressed = BytesIO()

packages/phoenix-client/src/phoenix/client/resources/spans/__init__.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,8 @@ def get_span_annotations_dataframe(
256256

257257
if spans_dataframe is not None:
258258
span_ids_raw: list[str] = cast(
259-
list[str], spans_dataframe["context.span_id"].dropna().tolist()
259+
list[str],
260+
spans_dataframe["context.span_id"].dropna().tolist(), # pyright: ignore[reportUnknownMemberType]
260261
)
261262
span_ids_list = list({*span_ids_raw})
262263
elif span_ids is not None:
@@ -308,7 +309,7 @@ def get_span_annotations_dataframe(
308309

309310
df = pd.DataFrame(annotations)
310311
df = _flatten_nested_column(df, "result")
311-
df.rename(columns={"name": "annotation_name"}, inplace=True)
312+
df.rename(columns={"name": "annotation_name"}, inplace=True) # pyright: ignore[reportUnknownMemberType]
312313
if not df.empty:
313314
df.set_index("span_id", inplace=True) # type: ignore[unused-ignore]
314315
return df
@@ -1427,7 +1428,8 @@ async def get_span_annotations_dataframe(
14271428

14281429
if spans_dataframe is not None:
14291430
span_ids_raw: list[str] = cast(
1430-
list[str], spans_dataframe["context.span_id"].dropna().tolist()
1431+
list[str],
1432+
spans_dataframe["context.span_id"].dropna().tolist(), # pyright: ignore[reportUnknownMemberType]
14311433
)
14321434
span_ids_list = list({*span_ids_raw})
14331435
elif span_ids is not None:
@@ -1479,7 +1481,7 @@ async def get_span_annotations_dataframe(
14791481

14801482
df = pd.DataFrame(annotations)
14811483
df = _flatten_nested_column(df, "result")
1482-
df.rename(columns={"name": "annotation_name"}, inplace=True)
1484+
df.rename(columns={"name": "annotation_name"}, inplace=True) # pyright: ignore[reportUnknownMemberType]
14831485
if not df.empty:
14841486
df.set_index("span_id", inplace=True) # type: ignore[unused-ignore]
14851487
return df
@@ -2512,9 +2514,9 @@ def _flatten_nested_column(df: "pd.DataFrame", column_name: str) -> "pd.DataFram
25122514
# Flatten the nested dictionary column and prefix each resulting column with
25132515
# the original column name (e.g., "result.label").
25142516
nested_df = pd.json_normalize(df[column_name]).rename( # type: ignore[arg-type]
2515-
columns=lambda col: f"{column_name}.{col}"
2517+
columns=lambda col: f"{column_name}.{col}" # pyright: ignore[reportUnknownLambdaType]
25162518
)
2517-
df = pd.concat([df.drop(columns=[column_name]), nested_df], axis=1)
2519+
df = pd.concat([df.drop(columns=[column_name]), nested_df], axis=1) # pyright: ignore[reportUnknownMemberType]
25182520
return df
25192521

25202522

tests/integration/client/test_rag_helpers.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -216,20 +216,20 @@ async def test_retrieved_documents_basic_and_edge_cases(
216216

217217
assert isinstance(df, pd.DataFrame)
218218
# Focus only on rows for the retriever that has docs
219-
df_docs_only = df[df.index.get_level_values(0) == retriever_span_id]
219+
df_docs_only = df[df.index.get_level_values(0) == retriever_span_id] # pyright: ignore[reportUnknownVariableType]
220220
assert len(df_docs_only) == 2
221221
# Expect multi-index with span_id and document position
222222
assert df_docs_only.index.nlevels == 2
223223
assert "context.trace_id" in df_docs_only.columns
224224
assert "input" in df_docs_only.columns
225225
# Input propagated from retriever span
226-
assert all(val == "what is X?" for val in df_docs_only["input"].tolist())
226+
assert all(val == "what is X?" for val in df_docs_only["input"].tolist()) # pyright: ignore[reportUnknownVariableType]
227227
# Content and score/metadata assertions when available
228228
if "document" in df_docs_only.columns:
229-
documents = set(df_docs_only["document"].astype(str).tolist()) # pyright: ignore[reportAttributeAccessIssue]
229+
documents = set(df_docs_only["document"].astype(str).tolist()) # pyright: ignore[reportAttributeAccessIssue,reportUnknownVariableType]
230230
assert "doc_1_content" in documents and "doc_2_content" in documents
231231
if "document_score" in df_docs_only.columns:
232-
has_missing = any(pd.isna(s) for s in df_docs_only["document_score"].tolist()) # pyright: ignore[reportArgumentType]
232+
has_missing = any(pd.isna(s) for s in df_docs_only["document_score"].tolist()) # pyright: ignore[reportArgumentType,reportUnknownVariableType]
233233
assert has_missing
234234

235235
@pytest.mark.parametrize("is_async", [True, False])

tests/integration/client/test_spans.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1104,7 +1104,7 @@ async def test_helper_functions_round_trip(
11041104
our_df = df[our_spans_mask].copy()
11051105

11061106
# Test 1: DataFrame to spans conversion
1107-
reconstructed_spans = dataframe_to_spans(our_df)
1107+
reconstructed_spans = dataframe_to_spans(our_df) # pyright: ignore[reportArgumentType]
11081108
assert len(reconstructed_spans) == num_spans
11091109

11101110
spans_by_name = {span["name"]: span for span in reconstructed_spans}
@@ -1139,7 +1139,7 @@ async def test_helper_functions_round_trip(
11391139
original_df_trace_ids = our_df["context.trace_id"].tolist() # pyright: ignore[reportUnknownVariableType]
11401140
original_df_span_ids = our_df["context.span_id"].tolist() # pyright: ignore[reportUnknownVariableType]
11411141

1142-
unique_df = uniquify_spans_dataframe(our_df, in_place=False)
1142+
unique_df = uniquify_spans_dataframe(our_df, in_place=False) # pyright: ignore[reportArgumentType]
11431143

11441144
# Verify DataFrame uniquification
11451145
assert unique_df["context.trace_id"].tolist() != original_df_trace_ids

0 commit comments

Comments
 (0)