ldv-cli 0.11.0__tar.gz → 0.12.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ldv_cli-0.12.0/.env +1 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/.gitignore +0 -2
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/PKG-INFO +5 -2
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/README.md +4 -1
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/pyproject.toml +1 -1
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/evals.py +21 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/instructions.py +5 -1
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/uv.lock +1 -1
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/examples/agent-traces.jsonl +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/package-lock.json +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/__init__.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/_group.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/_opts.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/api.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/cli.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/__init__.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/annotations.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/auth.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/buckets.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/datasets.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/edits.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/highlights.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/issues.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/preview.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/reports.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/skills.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/spec.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/tui.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/update.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/workspaces.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/config.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/filters.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/output.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/sessions.py +0 -0
- {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/util.py +0 -0
ldv_cli-0.12.0/.env
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
PYPI_TOKEN=pypi-AgEIcHlwaS5vcmcCJDM5ODc5ZGY0LWExOGQtNDM0MS1iMjcxLTQxN2E3OGE4NTE3NAACKlszLCIyNGFlYWVlMC1jZDg3LTQ0MWEtYjBlYS1iYTRjYjFjZjRmMWEiXQAABiDokA2L5mJtlb8YQ6WUYuo7v_AL_wua3b-JObZoZY1g_w
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ldv-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.12.0
|
|
4
4
|
Summary: ldv — CLI for the Liquid DataViewer platform (formerly lql)
|
|
5
5
|
Project-URL: Homepage, https://github.com/Liquid4All/lql
|
|
6
6
|
Author: Liquid AI
|
|
@@ -225,7 +225,10 @@ commands are the data primitives for error analysis: they slice and summarize
|
|
|
225
225
|
the dataset, and you do the reasoning over what they return.
|
|
226
226
|
|
|
227
227
|
```
|
|
228
|
-
ldv eval list [--workspace <id>]
|
|
228
|
+
ldv eval list [--workspace <id>] [--runid <id>] [--taskid <id>]
|
|
229
|
+
List eval datasets only. --runid/--taskid filter by
|
|
230
|
+
run<id>/task<id> in the name or parquet storage path
|
|
231
|
+
(e.g. run11213_task72284.parquet); they AND together.
|
|
229
232
|
Defaults to LDV_EVAL_WORKSPACE; without a
|
|
230
233
|
workspace, lists only evals you own.
|
|
231
234
|
ldv eval correctness <id> Fast accuracy + correct/incorrect/missing counts
|
|
@@ -209,7 +209,10 @@ commands are the data primitives for error analysis: they slice and summarize
|
|
|
209
209
|
the dataset, and you do the reasoning over what they return.
|
|
210
210
|
|
|
211
211
|
```
|
|
212
|
-
ldv eval list [--workspace <id>]
|
|
212
|
+
ldv eval list [--workspace <id>] [--runid <id>] [--taskid <id>]
|
|
213
|
+
List eval datasets only. --runid/--taskid filter by
|
|
214
|
+
run<id>/task<id> in the name or parquet storage path
|
|
215
|
+
(e.g. run11213_task72284.parquet); they AND together.
|
|
213
216
|
Defaults to LDV_EVAL_WORKSPACE; without a
|
|
214
217
|
workspace, lists only evals you own.
|
|
215
218
|
ldv eval correctness <id> Fast accuracy + correct/incorrect/missing counts
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import math
|
|
3
3
|
import os
|
|
4
|
+
import re
|
|
4
5
|
import sys
|
|
5
6
|
from typing import Annotated, List, Optional
|
|
6
7
|
|
|
@@ -46,9 +47,24 @@ def _fmt_accuracy(acc: object) -> str:
|
|
|
46
47
|
return f"{n * 100:.1f}%"
|
|
47
48
|
|
|
48
49
|
|
|
50
|
+
# Fields a run/task id may appear in: the human name and the storage path. The
|
|
51
|
+
# parquet name (e.g. run11213_task72284.parquet) is the reliable signal.
|
|
52
|
+
_ID_FIELDS = ("display_name", "name", "hf_bucket_key", "hf_bucket", "s3_object_key", "hf_repo_id")
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def _filter_by_id(items: list, prefix: str, num: str) -> list:
|
|
56
|
+
"""Keep datasets whose name/storage path contains ``<prefix><num>`` — e.g.
|
|
57
|
+
prefix 'run' + '11213' matches 'run11213', 'run 11213', 'run-11213'. The
|
|
58
|
+
trailing-digit guard means 1121 doesn't match 11213."""
|
|
59
|
+
pat = re.compile(rf"(?i)(?<![A-Za-z]){prefix}[\s_-]?{re.escape(num)}(?!\d)")
|
|
60
|
+
return [d for d in items if any(pat.search(str(d.get(f) or "")) for f in _ID_FIELDS)]
|
|
61
|
+
|
|
62
|
+
|
|
49
63
|
@app.command("list")
|
|
50
64
|
def list_evals(
|
|
51
65
|
workspace: Annotated[Optional[str], typer.Option("--workspace", help="Workspace (defaults to LDV_EVAL_WORKSPACE)")] = None,
|
|
66
|
+
runid: Annotated[Optional[str], typer.Option("--runid", help="Only evals whose name/storage path contains this run id (e.g. 11213 -> run11213)")] = None,
|
|
67
|
+
taskid: Annotated[Optional[str], typer.Option("--taskid", help="Only evals whose name/storage path contains this task id (e.g. 72284 -> task72284)")] = None,
|
|
52
68
|
json_out: JsonOpt = False,
|
|
53
69
|
profile: ProfileOpt = None,
|
|
54
70
|
api_url: ApiUrlOpt = None,
|
|
@@ -65,6 +81,11 @@ def list_evals(
|
|
|
65
81
|
"to list the shared eval workspace.\n"
|
|
66
82
|
)
|
|
67
83
|
items = client.get("/v1/datasets", params=params).json()
|
|
84
|
+
# --runid / --taskid AND together (run11213_task72284 matches both).
|
|
85
|
+
if runid:
|
|
86
|
+
items = _filter_by_id(items, r"run", runid)
|
|
87
|
+
if taskid:
|
|
88
|
+
items = _filter_by_id(items, r"task(?:[\s_-]?id)?", taskid)
|
|
68
89
|
print_table(
|
|
69
90
|
["ID", "Name", "Rows", "Source"],
|
|
70
91
|
[
|
|
@@ -149,8 +149,12 @@ Eval datasets (evaluation-run output: each row a sample with a model 'response'
|
|
|
149
149
|
+ a 'correct' verdict) are detected automatically. These commands are the data
|
|
150
150
|
primitives for error analysis — YOU do the reasoning over what they return.
|
|
151
151
|
|
|
152
|
-
ldv eval list [--workspace <id>]
|
|
152
|
+
ldv eval list [--workspace <id>] [--runid <id>] [--taskid <id>]
|
|
153
|
+
# Eval datasets only. Defaults to LDV_EVAL_WORKSPACE;
|
|
153
154
|
# without a workspace it lists only evals you own.
|
|
155
|
+
# --runid / --taskid filter to evals whose name OR storage
|
|
156
|
+
# path matches run<id> / task<id> (e.g.
|
|
157
|
+
# run11213_task72284.parquet). They AND together.
|
|
154
158
|
ldv eval stats <id> # Accuracy + correctness counts + error-type
|
|
155
159
|
# distribution + token stats (the distribution view)
|
|
156
160
|
ldv eval correctness <id> # Fast accuracy + correct/incorrect/missing counts
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|