labnotes 0.0.63__tar.gz → 0.0.64__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 (111) hide show
  1. {labnotes-0.0.63 → labnotes-0.0.64}/PKG-INFO +2 -2
  2. {labnotes-0.0.63 → labnotes-0.0.64}/README.md +1 -1
  3. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/context.md +1 -1
  4. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/experiments.py +1 -1
  5. {labnotes-0.0.63 → labnotes-0.0.64}/.gitignore +0 -0
  6. {labnotes-0.0.63 → labnotes-0.0.64}/CHANGELOG.md +0 -0
  7. {labnotes-0.0.63 → labnotes-0.0.64}/MIGRATIONS.md +0 -0
  8. {labnotes-0.0.63 → labnotes-0.0.64}/pyproject.toml +0 -0
  9. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/__init__.py +0 -0
  10. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/asset_url.py +0 -0
  11. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/cell_progress.py +0 -0
  12. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/check_counts.py +0 -0
  13. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/cli.py +0 -0
  14. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/context_guide.py +0 -0
  15. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/count_runs.py +0 -0
  16. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/create_app.py +0 -0
  17. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/create_experiment.py +0 -0
  18. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/create_note.py +0 -0
  19. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/data_html.py +0 -0
  20. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/default_config_text.py +0 -0
  21. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/default_counts.py +0 -0
  22. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/drain_watch.py +0 -0
  23. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/experiment_notes.py +0 -0
  24. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/experiment_progress.py +0 -0
  25. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/experiment_runs.py +0 -0
  26. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/file_changes.py +0 -0
  27. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/format_duration.py +0 -0
  28. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/format_value.py +0 -0
  29. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/group_runs.py +0 -0
  30. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/init.py +0 -0
  31. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/invocation_started.py +0 -0
  32. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/is_positive_int.py +0 -0
  33. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/list_experiments.py +0 -0
  34. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/list_runs.py +0 -0
  35. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/load_config.py +0 -0
  36. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/load_experiment.py +0 -0
  37. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/models.py +0 -0
  38. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/modes.py +0 -0
  39. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/nests_runs.py +0 -0
  40. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/notebook_kernel.py +0 -0
  41. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/output_html.py +0 -0
  42. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/parse_run_view.py +0 -0
  43. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/print_rows.py +0 -0
  44. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/python_blocks.py +0 -0
  45. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/read_config.py +0 -0
  46. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/read_path.py +0 -0
  47. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/render_markdown.py +0 -0
  48. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/__init__.py +0 -0
  49. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/describe_event.py +0 -0
  50. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/execute_run.py +0 -0
  51. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/hold_folder.py +0 -0
  52. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/new_param_run_id.py +0 -0
  53. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/new_run_id.py +0 -0
  54. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/new_stamped_run_id.py +0 -0
  55. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/param_args.py +0 -0
  56. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/param_grid.py +0 -0
  57. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/param_run_name.py +0 -0
  58. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/plan_runs.py +0 -0
  59. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/read_experiment_config.py +0 -0
  60. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/run_experiment.py +0 -0
  61. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/run_folder.py +0 -0
  62. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/run_headless.py +0 -0
  63. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/runs_parent.py +0 -0
  64. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/shell_command.py +0 -0
  65. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/start_experiment.py +0 -0
  66. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/stop_then_kill.py +0 -0
  67. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/wait_for_group.py +0 -0
  68. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/runner/write_run_json.py +0 -0
  69. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/save_conflict_copy.py +0 -0
  70. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/save_note.py +0 -0
  71. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/saved_outputs.py +0 -0
  72. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/serve_app.py +0 -0
  73. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/server.py +0 -0
  74. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/sort_href.py +0 -0
  75. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/sql_quote.py +0 -0
  76. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/static/experiment.js +0 -0
  77. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/static/labnotes.css +0 -0
  78. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/static/new-note.js +0 -0
  79. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/static/note-edit.js +0 -0
  80. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/static/note-editor.js +0 -0
  81. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/static/row-link.js +0 -0
  82. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/static/run-cell.js +0 -0
  83. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/static/view-toggle.js +0 -0
  84. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/summarize_config.py +0 -0
  85. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/tables/__init__.py +0 -0
  86. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/tables/experiment_rows.py +0 -0
  87. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/tables/file_prefix.py +0 -0
  88. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/tables/iso_time.py +0 -0
  89. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/tables/list_experiment_runs.py +0 -0
  90. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/tables/open_tables.py +0 -0
  91. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/tables/path_glob.py +0 -0
  92. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/tables/path_pattern.py +0 -0
  93. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/tables/read_experiment.py +0 -0
  94. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/tables/read_file.py +0 -0
  95. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/tables/read_run.py +0 -0
  96. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/tables/summarize_experiments.py +0 -0
  97. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/templates/base.html +0 -0
  98. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/templates/editor_imports.html +0 -0
  99. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/templates/experiment.html +0 -0
  100. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/templates/index.html +0 -0
  101. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/templates/macros.html +0 -0
  102. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/tui/__init__.py +0 -0
  103. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/tui/dim.py +0 -0
  104. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/tui/format_elapsed.py +0 -0
  105. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/tui/run_app.py +0 -0
  106. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/tui/run_tui.py +0 -0
  107. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/tui/runs_table.py +0 -0
  108. {labnotes-0.0.63 → labnotes-0.0.64}/src/labnotes/wait_for_note.py +0 -0
  109. {labnotes-0.0.63 → labnotes-0.0.64}/testing-conventions.toml +0 -0
  110. {labnotes-0.0.63 → labnotes-0.0.64}/tests/integration/conftest.py +0 -0
  111. {labnotes-0.0.63 → labnotes-0.0.64}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: labnotes
3
- Version: 0.0.63
3
+ Version: 0.0.64
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>
@@ -110,7 +110,7 @@ line per event instead.
110
110
  kills them. Closing the terminal or sending SIGTERM stops them the same way,
111
111
  then kills any still going 5 seconds later.
112
112
  - A second `run` of the same experiment fails while the first holds the lock.
113
- - It exits 1 if any run failed.
113
+ - It exits 0 even if runs fail; the summary line counts failures.
114
114
 
115
115
  `labnotes server` serves a local site at http://127.0.0.1:8000 from the same
116
116
  `.labnotes.toml`: a table of experiments, and a page per experiment with its
@@ -89,7 +89,7 @@ line per event instead.
89
89
  kills them. Closing the terminal or sending SIGTERM stops them the same way,
90
90
  then kills any still going 5 seconds later.
91
91
  - A second `run` of the same experiment fails while the first holds the lock.
92
- - It exits 1 if any run failed.
92
+ - It exits 0 even if runs fail; the summary line counts failures.
93
93
 
94
94
  `labnotes server` serves a local site at http://127.0.0.1:8000 from the same
95
95
  `.labnotes.toml`: a table of experiments, and a page per experiment with its
@@ -117,6 +117,6 @@ line per event instead.
117
117
  then kills any still going 5 seconds later. Once the runs are done, either
118
118
  one closes the live view.
119
119
  - A second `run` of the same experiment fails while the first holds the lock.
120
- - It exits 1 if any run failed.
120
+ - It exits 0 even if runs fail; the summary line counts failures.
121
121
 
122
122
  `uvx labnotes server` serves the experiments, their markdown files and their runs as a local site, read from the same `.labnotes.toml`. An experiment's page shows its `experiment.toml` on one line, then a Runs tab with a table of its runs and a Notebooks tab with one tab per markdown file.
@@ -72,7 +72,7 @@ def experiments(
72
72
  raise click.ClickException(str(error)) from error
73
73
  failed = sum(result["exit_code"] != 0 for result in results)
74
74
  click.echo(f"{len(results) - failed} passed, {failed} failed.")
75
- ctx.exit(1 if failed else 0)
75
+ return
76
76
  if action not in (None, "runs"):
77
77
  raise click.UsageError(f"Unknown action {action}. Use runs or run.")
78
78
  try:
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes