matensemble 0.3.3__tar.gz → 0.3.4__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 (44) hide show
  1. {matensemble-0.3.3 → matensemble-0.3.4}/PKG-INFO +1 -1
  2. {matensemble-0.3.3 → matensemble-0.3.4}/pyproject.toml +1 -1
  3. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/TODO.md +15 -4
  4. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/pipeline.py +2 -4
  5. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/strategy.py +7 -9
  6. {matensemble-0.3.3 → matensemble-0.3.4}/LICENSE +0 -0
  7. {matensemble-0.3.3 → matensemble-0.3.4}/README.md +0 -0
  8. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/.python-version +0 -0
  9. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/README.md +0 -0
  10. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/__init__.py +0 -0
  11. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/chore.py +0 -0
  12. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dash/assets/index-1X2cLUgt.js +0 -0
  13. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dash/assets/index-DRkGfWlx.css +0 -0
  14. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dash/index.html +0 -0
  15. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dash/vite.svg +0 -0
  16. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/__init__.py +0 -0
  17. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/driver.py +0 -0
  18. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/ensemble.py +0 -0
  19. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/postprocessors/__init__.py +0 -0
  20. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/postprocessors/bispectrum_calculator.py +0 -0
  21. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/postprocessors/compute_diffraction.py +0 -0
  22. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/postprocessors/compute_order_from_pairs.py +0 -0
  23. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/postprocessors/compute_twist.py +0 -0
  24. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/postprocessors/correlations.py +0 -0
  25. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/postprocessors/ovito_calculators.py +0 -0
  26. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/task_lib/AnalysisSubprocess.py +0 -0
  27. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/task_lib/AnalysysDescriptor.py +0 -0
  28. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/task_lib/MDSubprocess.py +0 -0
  29. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/task_lib/__init__.py +0 -0
  30. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/task_lib/analysis_registry.py +0 -0
  31. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/utils/__init__.py +0 -0
  32. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/utils/lammps_init.py +0 -0
  33. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/utils/preprocessors.py +0 -0
  34. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/utils/stat.py +0 -0
  35. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/dynopro/utils/stress_rotate_z_theta.py +0 -0
  36. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/fluxlet.py +0 -0
  37. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/logger.py +0 -0
  38. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/manager.py +0 -0
  39. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/model.py +0 -0
  40. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/redis/__init__.py +0 -0
  41. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/redis/service.py +0 -0
  42. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/redis/test.py +0 -0
  43. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/runtime_worker.py +0 -0
  44. {matensemble-0.3.3 → matensemble-0.3.4}/src/matensemble/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: matensemble
3
- Version: 0.3.3
3
+ Version: 0.3.4
4
4
  Summary: An adaptive and highly asynchronous ensemble simulation workflow manager MatEnsemble (https://github.com/Q-CAD/MatEnsemble) built jointly on top of the hierarchical graph based scheduler FLUX and concurrent-futures infrastructure of python
5
5
  Author: Soumendu Bagchi, Kaleb Duchesneau
6
6
  Author-email: Soumendu Bagchi <soumendubagchi@gmail.com>, Kaleb Duchesneau <kalebduchesneau@gmail.com>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "matensemble"
3
- version = "0.3.3"
3
+ version = "0.3.4"
4
4
  description = "An adaptive and highly asynchronous ensemble simulation workflow manager MatEnsemble (https://github.com/Q-CAD/MatEnsemble) built jointly on top of the hierarchical graph based scheduler FLUX and concurrent-futures infrastructure of python"
5
5
  readme = "README.md"
6
6
  license-files = ["LICENSE"]
@@ -171,6 +171,17 @@
171
171
  - [x] Convert Scaffold into PowerPoint Presentation
172
172
  - [x] Email coordinator about length of presentation and audience
173
173
 
174
+ # === May 29, 2026 ===
175
+ - [x] Fix the strategy error
176
+ - [x] Make sure conda env is working
177
+ - [ ] Make sure all containers are working and stable
178
+ * Frontier
179
+ * Perlmutter
180
+ * Pathfinder
181
+ * Linux
182
+ - [ ] Update tutorials for all systems
183
+ - [ ] Make all figures for JOSS paper and explain all of them
184
+
174
185
  ## === AFTER EVERYTHING ABOVE IS DONE AND STABLE ===
175
186
 
176
187
  ## --- Model Context Protocol ---
@@ -197,12 +208,12 @@
197
208
 
198
209
  ## --- Create first draft for JOSS ---
199
210
  - [ ] Read some example papers
200
- - [ ] Create draft and show Dr. Bagchi
201
- - [ ] Polish the repository to be ready for review
211
+ - [x] Create draft and show Dr. Bagchi
212
+ - [x] Polish the repository to be ready for review
202
213
  - [ ] Make sure that the tests work
203
214
  - [ ] Make sure that the example workflows work correctly
204
- - [ ] Make sure that they can easily test the code and
205
- - [ ] Create a conda package that they can easily test the code without having
215
+ - [ ] Make sure that they can easily test the code
216
+ - [x] Create a conda package that they can easily test the code without having
206
217
  to compile flux and flux-sched themselves
207
218
 
208
219
  ## --- Reading List ---
@@ -278,7 +278,8 @@ class Pipeline:
278
278
  Returns
279
279
  -------
280
280
  Callable
281
- A dummy function that just prints a warning to the stdout
281
+ A dummy function that just prints a warning to the stdout. The
282
+ actual function is stored in the registry
282
283
  """
283
284
 
284
285
  def decorator(func: Callable[..., Any]) -> Callable[..., Any]:
@@ -603,9 +604,6 @@ class Pipeline:
603
604
  self._finished = True
604
605
  return self._collect_results()
605
606
 
606
- def add_user_strat(self, chore_name: str, bolo_list: list[str]):
607
- self._strategy_spec = {"name": chore_name, "bolo_list": bolo_list}
608
-
609
607
  def graph(self) -> nx.DiGraph:
610
608
  return self._create_graph()
611
609
 
@@ -224,9 +224,6 @@ class NonAdaptiveStrategy(FutureProcessingStrategy):
224
224
  return
225
225
 
226
226
 
227
- # TODO: Make the strategy look through the bolo list and spawn a new chore with the output of another
228
- # and then make sure that the chore that is acting as a processing strat is a on the bolo list
229
- # and if that is done then you need to get the results and spawn a new chore from the ChoreSpec
230
227
  class UserStrategy(FutureProcessingStrategy):
231
228
  def __init__(self, manager, pipeline, processing_chore, bolo_list) -> None:
232
229
  super().__init__(manager)
@@ -314,12 +311,13 @@ class UserStrategy(FutureProcessingStrategy):
314
311
  # untrusted paths or third-party producers.
315
312
  with (chore.workdir / "result.pickle").open("rb") as f:
316
313
  chore_spec = pickle.load(f)
317
- new_chore, new_out = self.pipeline._spawn_chore_from_spec(
318
- chore_spec
319
- )
320
- self.pipeline._admit_spawned_chore(
321
- new_chore, new_out, self.manager
322
- )
314
+ if chore_spec:
315
+ new_chore, new_out = self.pipeline._spawn_chore_from_spec(
316
+ chore_spec
317
+ )
318
+ self.pipeline._admit_spawned_chore(
319
+ new_chore, new_out, self.manager
320
+ )
323
321
  except Exception as e:
324
322
  self.manager._logger.exception(
325
323
  f"FAILED TO SPAWN CHORE: chore={self.proc_chore} | due the following Exception ->\n{e}"
File without changes
File without changes