labnotes 0.0.27__tar.gz → 0.0.28__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 (89) hide show
  1. {labnotes-0.0.27 → labnotes-0.0.28}/PKG-INFO +1 -1
  2. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/context.md +2 -1
  3. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/tui/run_app.py +7 -0
  4. {labnotes-0.0.27 → labnotes-0.0.28}/.gitignore +0 -0
  5. {labnotes-0.0.27 → labnotes-0.0.28}/CHANGELOG.md +0 -0
  6. {labnotes-0.0.27 → labnotes-0.0.28}/MIGRATIONS.md +0 -0
  7. {labnotes-0.0.27 → labnotes-0.0.28}/README.md +0 -0
  8. {labnotes-0.0.27 → labnotes-0.0.28}/pyproject.toml +0 -0
  9. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/__init__.py +0 -0
  10. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/asset_url.py +0 -0
  11. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/cell_progress.py +0 -0
  12. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/cli.py +0 -0
  13. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/context_guide.py +0 -0
  14. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/count_runs.py +0 -0
  15. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/create_app.py +0 -0
  16. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/create_experiment.py +0 -0
  17. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/data_html.py +0 -0
  18. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/default_config_text.py +0 -0
  19. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/default_counts.py +0 -0
  20. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/drain_watch.py +0 -0
  21. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/experiment_notes.py +0 -0
  22. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/experiment_progress.py +0 -0
  23. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/experiment_runs.py +0 -0
  24. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/experiments.py +0 -0
  25. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/format_value.py +0 -0
  26. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/init.py +0 -0
  27. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/list_experiments.py +0 -0
  28. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/list_runs.py +0 -0
  29. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/load_config.py +0 -0
  30. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/load_experiment.py +0 -0
  31. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/models.py +0 -0
  32. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/notebook_kernel.py +0 -0
  33. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/output_html.py +0 -0
  34. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/parse_run_view.py +0 -0
  35. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/pivot_cells.py +0 -0
  36. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/print_rows.py +0 -0
  37. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/python_blocks.py +0 -0
  38. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/read_config.py +0 -0
  39. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/read_path.py +0 -0
  40. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/render_markdown.py +0 -0
  41. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/runner/__init__.py +0 -0
  42. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/runner/describe_event.py +0 -0
  43. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/runner/execute_run.py +0 -0
  44. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/runner/lock_path.py +0 -0
  45. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/runner/new_run_id.py +0 -0
  46. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/runner/param_args.py +0 -0
  47. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/runner/param_grid.py +0 -0
  48. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/runner/plan_runs.py +0 -0
  49. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/runner/read_experiment_config.py +0 -0
  50. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/runner/run_experiment.py +0 -0
  51. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/runner/run_folder.py +0 -0
  52. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/runner/run_headless.py +0 -0
  53. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/runner/shell_command.py +0 -0
  54. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/runner/start_experiment.py +0 -0
  55. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/runner/stop_then_kill.py +0 -0
  56. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/runner/wait_for_group.py +0 -0
  57. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/runner/write_run_json.py +0 -0
  58. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/saved_outputs.py +0 -0
  59. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/serve_app.py +0 -0
  60. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/server.py +0 -0
  61. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/sort_href.py +0 -0
  62. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/sql_quote.py +0 -0
  63. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/static/labnotes.css +0 -0
  64. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/static/row-link.js +0 -0
  65. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/static/run-cell.js +0 -0
  66. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/static/view-toggle.js +0 -0
  67. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/stop_idle_kernels.py +0 -0
  68. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/summarize_config.py +0 -0
  69. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/tables/__init__.py +0 -0
  70. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/tables/experiment_rows.py +0 -0
  71. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/tables/file_prefix.py +0 -0
  72. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/tables/iso_time.py +0 -0
  73. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/tables/list_experiment_runs.py +0 -0
  74. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/tables/open_tables.py +0 -0
  75. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/tables/path_glob.py +0 -0
  76. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/tables/path_pattern.py +0 -0
  77. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/tables/read_experiment.py +0 -0
  78. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/tables/read_file.py +0 -0
  79. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/tables/read_run.py +0 -0
  80. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/tables/summarize_experiments.py +0 -0
  81. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/templates/base.html +0 -0
  82. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/templates/experiment.html +0 -0
  83. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/templates/index.html +0 -0
  84. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/templates/macros.html +0 -0
  85. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/tui/__init__.py +0 -0
  86. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/tui/dim.py +0 -0
  87. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/tui/format_elapsed.py +0 -0
  88. {labnotes-0.0.27 → labnotes-0.0.28}/src/labnotes/tui/run_tui.py +0 -0
  89. {labnotes-0.0.27 → labnotes-0.0.28}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: labnotes
3
- Version: 0.0.27
3
+ Version: 0.0.28
4
4
  Summary: Browse experiment designs, notes, and run data from a folder.
5
5
  Project-URL: Repository, https://github.com/thekevinscott/labnotes
6
6
  Author-email: Kevin Scott <me@thekevinscott.com>
@@ -90,7 +90,8 @@ open when they finish. Runs not started yet show grayed as `pending`, and as
90
90
  `skipped` once stopped. Move the cursor to a pending run and press `n` to run it
91
91
  next. `d` deselects a pending run so it won't run; `d` again puts it back at
92
92
  the end of the queue. `/` filters rows by params text; Enter keeps the filter,
93
- Escape clears it. `+` and `-` change how many run at once; lowering it lets running runs
93
+ Escape clears it. `D` deselects every pending run the filter shows. `+` and
94
+ `-` change how many run at once; lowering it lets running runs
94
95
  finish; `q` quits. Elsewhere, or with `--no-tui`, it prints a
95
96
  line per event instead.
96
97
 
@@ -20,6 +20,7 @@ class RunApp(App[None]):
20
20
  Binding("ctrl+c", "interrupt", "Stop runs"),
21
21
  Binding("n", "run_next", "Run next"),
22
22
  Binding("d", "toggle_run", "Deselect"),
23
+ Binding("D", "deselect_shown", "Deselect shown"),
23
24
  Binding("slash", "filter", "Filter", key_display="/"),
24
25
  Binding("escape", "clear_filter", "Clear filter"),
25
26
  Binding("plus,equals_sign", "concurrency(1)", "More at once", key_display="+"),
@@ -177,6 +178,12 @@ class RunApp(App[None]):
177
178
  if (run := self.cursor_run()) is not None:
178
179
  self.controls.toggle(run)
179
180
 
181
+ def action_deselect_shown(self) -> None:
182
+ shown = [str(key.value) for key in self.query_one(DataTable).rows]
183
+ for run in shown:
184
+ if run in self.pending:
185
+ self.controls.toggle(run)
186
+
180
187
  def action_concurrency(self, change: int) -> None:
181
188
  self.controls.set_concurrency(self.concurrency + change)
182
189
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes