Skip to content

Commit 0ffba46

Browse files
Merge pull request #221 from easyscience/develop
πŸŽ‰ Release: merge develop into master
2 parents dcc7f92 + 192726b commit 0ffba46

28 files changed

Lines changed: 488 additions & 41 deletions
Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
# 137. CLI `fit` Command Never Saves Results to Disk
22

3-
Closed on re-verification β€” **not a defect**. `Analysis.fit()`
4-
auto-saves via `self.project.save()` in `_run_single` / `_run_joint` /
5-
`_run_sequential` (`analysis.py:2661,2688,2727`) whenever the project
6-
path is set. The CLI `fit` command's non-`--dry` path leaves
7-
`project.info.path` set, so results persist; `--dry` nulls the path to
8-
suppress saving (asserted by `test_cli_fit_dry_clears_path`). The
9-
original audit finding read the CLI in isolation and missed `fit()`'s
10-
internal save; no code change is needed.
3+
Closed after fixing the CLI persistence boundary. `Analysis.fit()`
4+
updates fit state without saving the project. The CLI `fit` command now
5+
calls `project.save()` explicitly after a successful non-`--dry` fit, so
6+
updated results still persist. With `--dry`, the project path is cleared
7+
for the fit and the explicit save is skipped, preventing project files
8+
and fit sidecars from being overwritten.

β€Ždocs/dev/issues/open/lowest_live-notebook-plotly-delivery-loader-vs-native-mimetype.mdβ€Ž

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,16 @@ gap. Two ways to fix it:
4141
(the loader only needs Plotly once it renders), then calls the same
4242
`renderSpec` entry point. `google.colab.output.pauseOutputUntil` holds
4343
the output frame until the figure β€” or a visible error message β€” is on
44-
screen. Concurrent outputs in one cell share frame-global loading
44+
screen. Colab pauses outputframe auto-resizing (and the cell's later
45+
outputs) while that promise is pending, so the bootstrap asks for a
46+
remeasure just after it resolves; otherwise the height taken before
47+
the plot replaced its placeholder stays as blank space below the
48+
chart. That request is scheduled on the next paint with a timer
49+
backstop, because a hidden browser tab never paints. Where that API is
50+
absent, the fallback measures Colab's output area β€” every output of
51+
the cell, so siblings are not clipped β€” rather than the root scroll
52+
height, which is clamped to the frame viewport and so can only grow
53+
it. Concurrent outputs in one cell share frame-global loading
4554
promises, so each asset is fetched and parsed only once. An immutable,
4655
exact-release-tag jsDelivr URL is the fallback while a new
4756
documentation version is deploying or if that deployment fails. Dev

β€Ždocs/docs/tutorials/bayesian-dream-lbco-hrpt.ipynbβ€Ž

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -769,6 +769,26 @@
769769
"source": [
770770
"project.display.posterior.predictive(expt_name='hrpt', x_min=92, x_max=93)"
771771
]
772+
},
773+
{
774+
"cell_type": "markdown",
775+
"id": "63",
776+
"metadata": {},
777+
"source": [
778+
"## πŸ’Ύ Save Project\n",
779+
"\n",
780+
"Save the fitted parameters and analysis results."
781+
]
782+
},
783+
{
784+
"cell_type": "code",
785+
"execution_count": null,
786+
"id": "64",
787+
"metadata": {},
788+
"outputs": [],
789+
"source": [
790+
"project.save()"
791+
]
772792
}
773793
],
774794
"metadata": {

β€Ždocs/docs/tutorials/bayesian-dream-lbco-hrpt.pyβ€Ž

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,3 +362,11 @@
362362

363363
# %%
364364
project.display.posterior.predictive(expt_name='hrpt', x_min=92, x_max=93)
365+
366+
# %% [markdown]
367+
# ## πŸ’Ύ Save Project
368+
#
369+
# Save the fitted parameters and analysis results.
370+
371+
# %%
372+
project.save()

β€Ždocs/docs/tutorials/bayesian-emcee-lbco-hrpt.ipynbβ€Ž

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -755,6 +755,26 @@
755755
"source": [
756756
"project.display.posterior.predictive(expt_name='hrpt', x_min=92, x_max=93)"
757757
]
758+
},
759+
{
760+
"cell_type": "markdown",
761+
"id": "62",
762+
"metadata": {},
763+
"source": [
764+
"## πŸ’Ύ Save Project\n",
765+
"\n",
766+
"Save the fitted parameters and analysis results."
767+
]
768+
},
769+
{
770+
"cell_type": "code",
771+
"execution_count": null,
772+
"id": "63",
773+
"metadata": {},
774+
"outputs": [],
775+
"source": [
776+
"project.save()"
777+
]
758778
}
759779
],
760780
"metadata": {

β€Ždocs/docs/tutorials/bayesian-emcee-lbco-hrpt.pyβ€Ž

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,3 +355,11 @@
355355

356356
# %%
357357
project.display.posterior.predictive(expt_name='hrpt', x_min=92, x_max=93)
358+
359+
# %% [markdown]
360+
# ## πŸ’Ύ Save Project
361+
#
362+
# Save the fitted parameters and analysis results.
363+
364+
# %%
365+
project.save()

β€Ždocs/docs/tutorials/bayesian-emcee-tbti-heidi.ipynbβ€Ž

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,26 @@
621621
"source": [
622622
"project.display.posterior.predictive(expt_name='heidi')"
623623
]
624+
},
625+
{
626+
"cell_type": "markdown",
627+
"id": "53",
628+
"metadata": {},
629+
"source": [
630+
"## πŸ’Ύ Save Project\n",
631+
"\n",
632+
"Save the fitted parameters and analysis results."
633+
]
634+
},
635+
{
636+
"cell_type": "code",
637+
"execution_count": null,
638+
"id": "54",
639+
"metadata": {},
640+
"outputs": [],
641+
"source": [
642+
"project.save()"
643+
]
624644
}
625645
],
626646
"metadata": {

β€Ždocs/docs/tutorials/bayesian-emcee-tbti-heidi.pyβ€Ž

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,3 +276,11 @@
276276

277277
# %%
278278
project.display.posterior.predictive(expt_name='heidi')
279+
280+
# %% [markdown]
281+
# ## πŸ’Ύ Save Project
282+
#
283+
# Save the fitted parameters and analysis results.
284+
285+
# %%
286+
project.save()

β€Ždocs/docs/tutorials/calibrate-beer-ess.ipynbβ€Ž

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -785,6 +785,26 @@
785785
" x_max=2.13,\n",
786786
")"
787787
]
788+
},
789+
{
790+
"cell_type": "markdown",
791+
"id": "67",
792+
"metadata": {},
793+
"source": [
794+
"## πŸ’Ύ Save Project\n",
795+
"\n",
796+
"Save the fitted parameters and analysis results."
797+
]
798+
},
799+
{
800+
"cell_type": "code",
801+
"execution_count": null,
802+
"id": "68",
803+
"metadata": {},
804+
"outputs": [],
805+
"source": [
806+
"project.save()"
807+
]
788808
}
789809
],
790810
"metadata": {

β€Ždocs/docs/tutorials/calibrate-beer-ess.pyβ€Ž

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,3 +350,11 @@
350350
x_min=2.08,
351351
x_max=2.13,
352352
)
353+
354+
# %% [markdown]
355+
# ## πŸ’Ύ Save Project
356+
#
357+
# Save the fitted parameters and analysis results.
358+
359+
# %%
360+
project.save()

0 commit comments

Comments
Β (0)