labnotes 0.0.76__tar.gz → 0.0.77__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.76 → labnotes-0.0.77}/PKG-INFO +1 -1
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/context.md +2 -2
- labnotes-0.0.77/src/labnotes/daemon/socket_path.py +13 -0
- labnotes-0.0.76/src/labnotes/daemon/socket_path.py +0 -7
- {labnotes-0.0.76 → labnotes-0.0.77}/.gitignore +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/CHANGELOG.md +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/MIGRATIONS.md +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/README.md +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/pyproject.toml +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/__init__.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/__main__.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/asset_url.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/check_counts.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/cli.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/context_guide.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/count_groups.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/count_runs.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/create_app.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/create_experiment.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/create_note.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/daemon/__init__.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/daemon/daemon_app.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/daemon/daemon_client.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/daemon/daemon_running.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/daemon/daemon_server.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/daemon/describe_status.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/daemon/ensure_daemon.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/daemon/exit_when_idle.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/daemon/remote_start.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/daemon/run_daemon.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/daemon/run_logs.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/daemon/serve_daemon.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/daemon/stop_runs.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/daemon/watch_daemon.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/daemon/watch_status.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/daemon_command.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/data_html.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/default_config_text.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/default_counts.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/drain_watch.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/experiment_notes.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/experiment_runs.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/experiments.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/file_changes.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/format_duration.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/format_started.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/format_value.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/group_runs.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/init.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/invocation_started.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/is_positive_int.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/list_experiments.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/list_runs.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/load_config.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/load_experiment.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/models.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/modes.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/nests_runs.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/note_path.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/notebook_kernel.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/output_html.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/parse_run_view.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/print_rows.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/python_blocks.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/read_config.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/read_path.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/render_markdown.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/run_command.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/run_status.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/__init__.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/describe_event.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/execute_run.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/hold_folder.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/new_param_run_id.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/new_run_id.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/new_stamped_run_id.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/param_args.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/param_grid.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/param_run_name.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/plan_runs.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/prepare_experiment.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/read_experiment_config.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/run_experiment.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/run_folder.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/run_headless.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/runs_parent.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/shell_command.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/signal_tree.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/stop_then_kill.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/wait_for_tree.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/runner/write_run_json.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/save_conflict_copy.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/save_note.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/saved_outputs.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/serve_app.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/server.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/shared_params.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/sort_href.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/sql_quote.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/static/experiment.js +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/static/labnotes.css +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/static/local-time.js +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/static/new-note.js +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/static/note-edit.js +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/static/note-editor.js +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/static/row-link.js +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/static/run-cell.js +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/static/view-toggle.js +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/summarize_config.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tables/__init__.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tables/experiment_rows.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tables/experiment_run_ids.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tables/file_prefix.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tables/file_text.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tables/iso_time.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tables/list_experiment_runs.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tables/note_text.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tables/open_tables.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tables/path_glob.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tables/path_pattern.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tables/read_experiment.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tables/read_file.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tables/read_run.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tables/summarize_experiments.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/templates/base.html +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/templates/editor_imports.html +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/templates/experiment.html +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/templates/index.html +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/templates/note.html +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tui/__init__.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tui/dim.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tui/format_elapsed.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tui/run_app.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tui/run_tui.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/tui/runs_table.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/src/labnotes/wait_for_note.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/testing-conventions.toml +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/tests/integration/conftest.py +0 -0
- {labnotes-0.0.76 → labnotes-0.0.77}/uv.lock +0 -0
|
@@ -113,8 +113,8 @@ going. Elsewhere, it prints a line per event instead.
|
|
|
113
113
|
`.labnotes.toml`, then 1.
|
|
114
114
|
- `-e PATH` reads another file instead of `experiment.toml`.
|
|
115
115
|
- `run` hands its runs to the project's labnotes daemon, starting it if
|
|
116
|
-
needed, and shows or waits for them. The daemon listens on
|
|
117
|
-
|
|
116
|
+
needed, and shows or waits for them. The daemon listens on a socket in
|
|
117
|
+
`/tmp/labnotes-<uid>/` and exits once nothing is running and no client has
|
|
118
118
|
been connected for 15 seconds. Runs belong to the daemon, so quitting the
|
|
119
119
|
live view, closing its terminal, or killing `run` outright leaves them going.
|
|
120
120
|
- Ctrl-C stops the running scripts and records their end. A second Ctrl-C
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import hashlib
|
|
2
|
+
import os
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# Unix socket paths cap at 107 bytes, so the socket can't live in a deep project.
|
|
7
|
+
# A fixed folder, not XDG_RUNTIME_DIR or TMPDIR, so every shell finds the daemon.
|
|
8
|
+
def socket_path(root: Path) -> Path:
|
|
9
|
+
folder = Path("/tmp") / f"labnotes-{os.getuid()}"
|
|
10
|
+
folder.mkdir(exist_ok=True)
|
|
11
|
+
folder.chmod(0o700)
|
|
12
|
+
digest = hashlib.sha256(str(root.resolve()).encode()).hexdigest()[:16]
|
|
13
|
+
return folder / f"{digest}.sock"
|
|
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
|
|
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
|