labnotes 0.0.50__tar.gz → 0.0.51__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.
- {labnotes-0.0.50 → labnotes-0.0.51}/PKG-INFO +1 -1
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/tui/run_app.py +9 -1
- {labnotes-0.0.50 → labnotes-0.0.51}/.gitignore +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/CHANGELOG.md +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/MIGRATIONS.md +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/README.md +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/pyproject.toml +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/__init__.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/asset_url.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/cell_progress.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/check_counts.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/cli.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/context.md +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/context_guide.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/count_runs.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/create_app.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/create_experiment.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/data_html.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/default_config_text.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/default_counts.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/drain_watch.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/experiment_notes.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/experiment_progress.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/experiment_runs.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/experiments.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/format_duration.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/format_value.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/init.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/is_positive_int.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/list_experiments.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/list_runs.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/load_config.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/load_experiment.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/models.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/modes.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/notebook_kernel.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/output_html.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/parse_run_view.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/print_rows.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/python_blocks.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/read_config.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/read_path.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/render_markdown.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/__init__.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/describe_event.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/execute_run.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/hold_folder.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/new_run_id.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/new_stamped_run_id.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/param_args.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/param_grid.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/plan_runs.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/read_experiment_config.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/run_experiment.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/run_folder.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/run_headless.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/runs_parent.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/shell_command.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/start_experiment.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/stop_then_kill.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/wait_for_group.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/runner/write_run_json.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/saved_outputs.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/serve_app.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/server.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/sort_href.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/sql_quote.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/static/experiment.js +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/static/labnotes.css +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/static/row-link.js +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/static/run-cell.js +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/static/view-toggle.js +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/stop_idle_kernels.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/summarize_config.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/tables/__init__.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/tables/experiment_rows.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/tables/file_prefix.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/tables/iso_time.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/tables/list_experiment_runs.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/tables/open_tables.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/tables/path_glob.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/tables/path_pattern.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/tables/read_experiment.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/tables/read_file.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/tables/read_run.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/tables/summarize_experiments.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/templates/base.html +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/templates/experiment.html +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/templates/index.html +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/templates/macros.html +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/tui/__init__.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/tui/dim.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/tui/format_elapsed.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/tui/run_tui.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/src/labnotes/tui/runs_table.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/testing-conventions.toml +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/tests/integration/conftest.py +0 -0
- {labnotes-0.0.50 → labnotes-0.0.51}/uv.lock +0 -0
|
@@ -21,6 +21,7 @@ STREAMS = ("stdout", "stderr")
|
|
|
21
21
|
PENDING, PASSED, FAILED = "○", "✓", "✗"
|
|
22
22
|
SPINNER = "|/-\\"
|
|
23
23
|
SKIPPED, DESELECTED = "–", "⊘"
|
|
24
|
+
VIEWING_ACTIONS = {"leave", "quit", "interrupt", "command_palette"}
|
|
24
25
|
|
|
25
26
|
|
|
26
27
|
class RunApp(App[None]):
|
|
@@ -206,6 +207,9 @@ class RunApp(App[None]):
|
|
|
206
207
|
if run in table.rows:
|
|
207
208
|
table.update_cell(run, column, cell, update_width=True)
|
|
208
209
|
|
|
210
|
+
def check_action(self, action: str, parameters: tuple[object, ...]) -> bool:
|
|
211
|
+
return self.viewing is None or action in VIEWING_ACTIONS
|
|
212
|
+
|
|
209
213
|
def show_concurrency(self, event: dict[str, object]) -> None:
|
|
210
214
|
self.concurrency = int(event["concurrency"]) # type: ignore[call-overload]
|
|
211
215
|
self.sub_title = f"{self.concurrency} at a time"
|
|
@@ -290,7 +294,9 @@ class RunApp(App[None]):
|
|
|
290
294
|
self.query_one(Log).clear()
|
|
291
295
|
self.query_one(DataTable).display = False
|
|
292
296
|
self.query_one(Log).display = True
|
|
293
|
-
self.
|
|
297
|
+
self.sub_title = run
|
|
298
|
+
self.show("")
|
|
299
|
+
self.refresh_bindings()
|
|
294
300
|
self.follow()
|
|
295
301
|
|
|
296
302
|
def follow(self) -> None:
|
|
@@ -319,6 +325,8 @@ class RunApp(App[None]):
|
|
|
319
325
|
self.viewing = None
|
|
320
326
|
self.query_one(Log).display = False
|
|
321
327
|
self.query_one(DataTable).display = True
|
|
328
|
+
self.sub_title = f"{self.concurrency} at a time"
|
|
329
|
+
self.refresh_bindings()
|
|
322
330
|
if self.idle:
|
|
323
331
|
self.show_summary()
|
|
324
332
|
else:
|
|
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
|
|
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
|
|
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
|
|
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
|