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.
Files changed (35) hide show
  1. ldv_cli-0.12.0/.env +1 -0
  2. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/.gitignore +0 -2
  3. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/PKG-INFO +5 -2
  4. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/README.md +4 -1
  5. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/pyproject.toml +1 -1
  6. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/evals.py +21 -0
  7. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/instructions.py +5 -1
  8. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/uv.lock +1 -1
  9. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/examples/agent-traces.jsonl +0 -0
  10. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/package-lock.json +0 -0
  11. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/__init__.py +0 -0
  12. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/_group.py +0 -0
  13. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/_opts.py +0 -0
  14. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/api.py +0 -0
  15. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/cli.py +0 -0
  16. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/__init__.py +0 -0
  17. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/annotations.py +0 -0
  18. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/auth.py +0 -0
  19. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/buckets.py +0 -0
  20. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/datasets.py +0 -0
  21. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/edits.py +0 -0
  22. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/highlights.py +0 -0
  23. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/issues.py +0 -0
  24. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/preview.py +0 -0
  25. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/reports.py +0 -0
  26. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/skills.py +0 -0
  27. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/spec.py +0 -0
  28. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/tui.py +0 -0
  29. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/update.py +0 -0
  30. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/commands/workspaces.py +0 -0
  31. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/config.py +0 -0
  32. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/filters.py +0 -0
  33. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/output.py +0 -0
  34. {ldv_cli-0.11.0 → ldv_cli-0.12.0}/src/ldv/sessions.py +0 -0
  35. {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
@@ -13,5 +13,3 @@ venv/
13
13
 
14
14
  # local config
15
15
  ~/.lql/
16
-
17
- .env
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ldv-cli
3
- Version: 0.11.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>] List eval datasets only
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>] List eval datasets only
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
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "ldv-cli"
7
- version = "0.11.0"
7
+ version = "0.12.0"
8
8
  description = "ldv — CLI for the Liquid DataViewer platform (formerly lql)"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"
@@ -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>] # Eval datasets only. Defaults to LDV_EVAL_WORKSPACE;
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
@@ -173,7 +173,7 @@ wheels = [
173
173
 
174
174
  [[package]]
175
175
  name = "ldv-cli"
176
- version = "0.10.0"
176
+ version = "0.9.0"
177
177
  source = { editable = "." }
178
178
  dependencies = [
179
179
  { name = "httpx" },
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