bindmc 0.1.4__tar.gz → 0.1.5__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 (42) hide show
  1. {bindmc-0.1.4 → bindmc-0.1.5}/PKG-INFO +1 -1
  2. {bindmc-0.1.4 → bindmc-0.1.5}/pyproject.toml +1 -1
  3. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/main.py +1 -1
  4. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/bayes.py +7 -2
  5. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/fitting.py +1 -1
  6. {bindmc-0.1.4 → bindmc-0.1.5}/README.md +0 -0
  7. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/__init__.py +0 -0
  8. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/__main__.py +0 -0
  9. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/Class model.md +0 -0
  10. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/TODO.md +0 -0
  11. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/TODO_old.md +0 -0
  12. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/__init__.py +0 -0
  13. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/app.py +0 -0
  14. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/BindingConstant.py +0 -0
  15. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/ChemicalShiftParam.py +0 -0
  16. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/Component.py +0 -0
  17. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/ExptData.py +0 -0
  18. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/ExptDataType.py +0 -0
  19. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/FitResult.py +0 -0
  20. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/MCMCSim.py +0 -0
  21. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/Model.py +0 -0
  22. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/RawData.py +0 -0
  23. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/Simulation.py +0 -0
  24. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/UIBindings.py +0 -0
  25. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/__init__.py +0 -0
  26. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/__init__.py +0 -0
  27. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/base.py +0 -0
  28. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/bayes_priors.py +0 -0
  29. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/binding_model.py +0 -0
  30. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/body.py +0 -0
  31. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/data_gen.py +0 -0
  32. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/data_import.py +0 -0
  33. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/data_model.py +0 -0
  34. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/graph.py +0 -0
  35. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/header.py +0 -0
  36. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/simulation.py +0 -0
  37. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/default_models.json +0 -0
  38. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/export/__init__.py +0 -0
  39. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/export/notebook_exporter.py +0 -0
  40. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/state/__init__.py +0 -0
  41. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/state/statemanager.py +0 -0
  42. {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bindmc
3
- Version: 0.1.4
3
+ Version: 0.1.5
4
4
  Keywords: chemistry,analytical chemistry,binding constants,supramolecular
5
5
  Author: Martin Peeks
6
6
  Author-email: Martin Peeks <martinp23@googlemail.com>, m.peeks@unsw.edu.au
@@ -4,7 +4,7 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "bindmc"
7
- version = "0.1.4"
7
+ version = "0.1.5"
8
8
  readme = "README.md"
9
9
  keywords = ["chemistry", "analytical chemistry", "binding constants", "supramolecular"]
10
10
  classifiers = [
@@ -107,7 +107,7 @@ storage_path.mkdir(parents=True, exist_ok=True)
107
107
  # Redirect native window persistence data away from default paths
108
108
  app.native.start_args["storage_path"] = str(storage_path)
109
109
 
110
- if __name__ == "__main__":
110
+ if __name__ in {"__main__", "__mp_main__"}:
111
111
  ui.run(title="BindMC", reload=reload, native=native_mode, port=native.find_open_port(), storage_secret="bindmc_secret")
112
112
 
113
113
 
@@ -245,7 +245,7 @@ class BayesPanel(BaseComponent):
245
245
  return
246
246
 
247
247
  if active_fit.bd_model is None:
248
- print("No bindtools model selected for fitting, generating one.")
248
+ logger.info("No bindtools model selected for fitting, generating one.")
249
249
  ui.notify("Running an initial fit using least_sq")
250
250
  m1 = self.sm.generate_binding_model_for_fit(active_fit)
251
251
  m1 = await run.cpu_bound(
@@ -262,6 +262,7 @@ class BayesPanel(BaseComponent):
262
262
  nwalkers = int(self.nwalkers_input.value)
263
263
  obslist = self.sm.active_expt_data.get_obs_list(self.sm._expt_dtypes)
264
264
 
265
+ logger.info("Setting up for MCMC run")
265
266
  # Create MCMC simulation (not yet registered in state)
266
267
  self.mcmc = MCMCSim(
267
268
  model=self.sm.active_model,
@@ -281,12 +282,13 @@ class BayesPanel(BaseComponent):
281
282
  type="info",
282
283
  timeout=60000,
283
284
  )
285
+ logger.info("Running a trial run")
284
286
  try:
285
287
  trial_elapsed = await run.cpu_bound(partial(_run_mcmc_trial, self.mcmc.mc, _TRIAL_STEPS))
286
288
  it_s = _TRIAL_STEPS / trial_elapsed
287
289
  full_seconds = nsteps_target * trial_elapsed / _TRIAL_STEPS
288
290
  full_time_str = _format_duration(full_seconds)
289
-
291
+ logger.info("Trial run finished; took {trial_elapsed:.1f} s ({it_s:.2f} it/s).")
290
292
  with ui.dialog() as timing_dialog, ui.card().classes("w-[min(560px,92vw)]"):
291
293
  ui.label("Runtime estimate").classes("text-lg font-bold")
292
294
  ui.label(f"{_TRIAL_STEPS:,} steps took {trial_elapsed:.1f} s ({it_s:.2f} it/s).").classes(
@@ -296,6 +298,8 @@ class BayesPanel(BaseComponent):
296
298
  f"The full run ({nsteps_target:,} steps, {nwalkers} walkers) "
297
299
  f"will take approximately {full_time_str}."
298
300
  ).classes("mt-2")
301
+ logger.info(f"The full run ({nsteps_target:,} steps, {nwalkers} walkers) "
302
+ f"will take approximately {full_time_str}.")
299
303
  ui.label("Do you want to continue?").classes("mt-1 font-medium")
300
304
  with ui.row().classes("w-full justify-end gap-2 mt-3"):
301
305
  ui.button("Cancel", on_click=lambda: timing_dialog.submit(False))
@@ -320,6 +324,7 @@ class BayesPanel(BaseComponent):
320
324
  self.run_button.set_enabled(False)
321
325
  self.stop_button.set_enabled(True)
322
326
  self.progress_bar.value = 0
327
+ logger.info("Starting MCMC analysis")
323
328
  self.progress_label.text = "Starting MCMC analysis..."
324
329
  self._log_status("Starting MCMC analysis...")
325
330
  self._start_run_timers()
@@ -535,7 +535,7 @@ class FittingPanel(BaseComponent):
535
535
 
536
536
  def _update_fit_graphs(self, e=None) -> None:
537
537
  """Update the fit results display."""
538
- print("Updating fit results...")
538
+ logger.info("Updating fit results...")
539
539
  self.fit_graph.clear_graph(update=False)
540
540
  if len(self.sm.fits) > 0:
541
541
  self.speciation_graph.clear_graph(update=False)
File without changes
File without changes
File without changes
File without changes
File without changes