langfuse-python
langfuse-python copied to clipboard
feat(client): add methods to langfuse client to fetch and delete dataset runs
[!IMPORTANT] Adds methods to Langfuse client for fetching and deleting dataset runs with error handling.
- Methods Added:
get_dataset_run(): Fetches a dataset run bydataset_nameandrun_name, returningDatasetRunWithItems.get_dataset_runs(): Fetches all runs for a dataset, with pagination support, returningPaginatedDatasetRuns.delete_dataset_run(): Deletes a dataset run bydataset_nameandrun_name, returningDeleteDatasetRunResponse.- Error Handling:
- All methods use
handle_fern_exception()for error handling and re-raise exceptions.This description was created by
for 0d9bd8fd492d172fc289e3368fe2263804ebf796. You can customize this summary. It will automatically update as commits are pushed.
Disclaimer: Experimental PR review
Greptile Overview
Greptile Summary
Added three new methods to the Langfuse client for managing dataset runs: get_dataset_run, get_dataset_runs, and delete_dataset_run.
-
get_dataset_run: fetches a single dataset run by dataset name and run name -
get_dataset_runs: retrieves paginated list of runs for a dataset -
delete_dataset_run: permanently deletes a dataset run and all its items - Added required import statements for
DatasetRunWithItems,DeleteDatasetRunResponse, andPaginatedDatasetRunstypes
Issues found:
- Missing
is_url_param=Trueflag in_url_encode()calls for path parameters across all three methods. These parameters are embedded in URL paths and passed to httpx, which handles encoding automatically in v0.28+. This inconsistency with the existingget_datasetmethod (line 2445) could cause double-encoding issues.
Confidence Score: 3/5
- This PR can be merged after addressing the URL encoding parameter issue.
- The implementation follows existing patterns and adds straightforward CRUD operations for dataset runs. However, the missing
is_url_param=Trueflags could cause encoding issues with special characters in dataset/run names. The fix is simple but critical for correctness. - Fix the
_url_encode()calls inlangfuse/_client/client.pyto includeis_url_param=Truefor all path parameters
Important Files Changed
File Analysis
| Filename | Score | Overview |
|---|---|---|
| langfuse/_client/client.py | 3/5 | added three dataset run methods (get_dataset_run, get_dataset_runs, delete_dataset_run); missing is_url_param=True flag in URL encoding calls for path parameters |
Sequence Diagram
sequenceDiagram
participant User
participant Langfuse
participant API as Langfuse API
Note over User,API: Get Dataset Run
User->>Langfuse: get_dataset_run(dataset_name, run_name)
Langfuse->>Langfuse: _url_encode(dataset_name)
Langfuse->>Langfuse: _url_encode(run_name)
Langfuse->>API: datasets.get_run(dataset_name, run_name)
API-->>Langfuse: DatasetRunWithItems
Langfuse-->>User: DatasetRunWithItems
Note over User,API: Get Dataset Runs (Paginated)
User->>Langfuse: get_dataset_runs(dataset_name, page, limit)
Langfuse->>Langfuse: _url_encode(dataset_name)
Langfuse->>API: datasets.get_runs(dataset_name, page, limit)
API-->>Langfuse: PaginatedDatasetRuns
Langfuse-->>User: PaginatedDatasetRuns
Note over User,API: Delete Dataset Run
User->>Langfuse: delete_dataset_run(dataset_name, run_name)
Langfuse->>Langfuse: _url_encode(dataset_name)
Langfuse->>Langfuse: _url_encode(run_name)
Langfuse->>API: datasets.delete_run(dataset_name, run_name)
API-->>Langfuse: DeleteDatasetRunResponse
Langfuse-->>User: DeleteDatasetRunResponse