essreduce 25.5.1__tar.gz → 25.5.2__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 (146) hide show
  1. {essreduce-25.5.1/src/essreduce.egg-info → essreduce-25.5.2}/PKG-INFO +2 -2
  2. {essreduce-25.5.1 → essreduce-25.5.2}/docs/user-guide/tof/dream.ipynb +3 -1
  3. {essreduce-25.5.1 → essreduce-25.5.2}/docs/user-guide/tof/frame-unwrapping.ipynb +6 -2
  4. {essreduce-25.5.1 → essreduce-25.5.2}/docs/user-guide/tof/wfm.ipynb +3 -1
  5. {essreduce-25.5.1 → essreduce-25.5.2}/pyproject.toml +1 -1
  6. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/base.in +1 -1
  7. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/base.txt +7 -7
  8. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/basetest.txt +12 -10
  9. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/ci.txt +5 -5
  10. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/dev.txt +6 -6
  11. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/docs.in +1 -0
  12. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/docs.txt +12 -10
  13. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/nightly.txt +10 -9
  14. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/static.txt +2 -2
  15. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/data.py +17 -0
  16. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/nexus/types.py +31 -66
  17. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/nexus/workflow.py +83 -30
  18. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/streaming.py +24 -0
  19. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/time_of_flight/simulation.py +2 -2
  20. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/time_of_flight/workflow.py +7 -12
  21. {essreduce-25.5.1 → essreduce-25.5.2/src/essreduce.egg-info}/PKG-INFO +2 -2
  22. {essreduce-25.5.1 → essreduce-25.5.2}/src/essreduce.egg-info/SOURCES.txt +3 -2
  23. {essreduce-25.5.1 → essreduce-25.5.2}/src/essreduce.egg-info/requires.txt +1 -1
  24. essreduce-25.5.2/tests/accumulators_test.py +281 -0
  25. {essreduce-25.5.1 → essreduce-25.5.2}/tests/nexus/nexus_loader_test.py +2 -2
  26. {essreduce-25.5.1 → essreduce-25.5.2}/tests/nexus/workflow_test.py +124 -59
  27. {essreduce-25.5.1 → essreduce-25.5.2}/tests/streaming_test.py +0 -176
  28. {essreduce-25.5.1 → essreduce-25.5.2}/tests/time_of_flight/unwrap_test.py +8 -3
  29. {essreduce-25.5.1 → essreduce-25.5.2}/tests/time_of_flight/wfm_test.py +10 -4
  30. {essreduce-25.5.1 → essreduce-25.5.2}/tests/time_of_flight/workflow_test.py +29 -9
  31. essreduce-25.5.2/tools/shrink_nexus.py +83 -0
  32. essreduce-25.5.1/src/ess/reduce/utils.py +0 -36
  33. {essreduce-25.5.1 → essreduce-25.5.2}/.copier-answers.ess.yml +0 -0
  34. {essreduce-25.5.1 → essreduce-25.5.2}/.copier-answers.yml +0 -0
  35. {essreduce-25.5.1 → essreduce-25.5.2}/.github/ISSUE_TEMPLATE/blank.md +0 -0
  36. {essreduce-25.5.1 → essreduce-25.5.2}/.github/ISSUE_TEMPLATE/high-level-requirement.yml +0 -0
  37. {essreduce-25.5.1 → essreduce-25.5.2}/.github/dependabot.yml +0 -0
  38. {essreduce-25.5.1 → essreduce-25.5.2}/.github/workflows/ci.yml +0 -0
  39. {essreduce-25.5.1 → essreduce-25.5.2}/.github/workflows/docs.yml +0 -0
  40. {essreduce-25.5.1 → essreduce-25.5.2}/.github/workflows/nightly_at_main.yml +0 -0
  41. {essreduce-25.5.1 → essreduce-25.5.2}/.github/workflows/nightly_at_release.yml +0 -0
  42. {essreduce-25.5.1 → essreduce-25.5.2}/.github/workflows/python-version-ci +0 -0
  43. {essreduce-25.5.1 → essreduce-25.5.2}/.github/workflows/release.yml +0 -0
  44. {essreduce-25.5.1 → essreduce-25.5.2}/.github/workflows/test.yml +0 -0
  45. {essreduce-25.5.1 → essreduce-25.5.2}/.github/workflows/unpinned.yml +0 -0
  46. {essreduce-25.5.1 → essreduce-25.5.2}/.github/workflows/weekly_windows_macos.yml +0 -0
  47. {essreduce-25.5.1 → essreduce-25.5.2}/.gitignore +0 -0
  48. {essreduce-25.5.1 → essreduce-25.5.2}/.pre-commit-config.yaml +0 -0
  49. {essreduce-25.5.1 → essreduce-25.5.2}/.python-version +0 -0
  50. {essreduce-25.5.1 → essreduce-25.5.2}/CODE_OF_CONDUCT.md +0 -0
  51. {essreduce-25.5.1 → essreduce-25.5.2}/CONTRIBUTING.md +0 -0
  52. {essreduce-25.5.1 → essreduce-25.5.2}/LICENSE +0 -0
  53. {essreduce-25.5.1 → essreduce-25.5.2}/MANIFEST.in +0 -0
  54. {essreduce-25.5.1 → essreduce-25.5.2}/README.md +0 -0
  55. {essreduce-25.5.1 → essreduce-25.5.2}/conda/meta.yaml +0 -0
  56. {essreduce-25.5.1 → essreduce-25.5.2}/docs/_static/anaconda-icon.js +0 -0
  57. {essreduce-25.5.1 → essreduce-25.5.2}/docs/_static/favicon.svg +0 -0
  58. {essreduce-25.5.1 → essreduce-25.5.2}/docs/_static/logo-dark.svg +0 -0
  59. {essreduce-25.5.1 → essreduce-25.5.2}/docs/_static/logo.svg +0 -0
  60. {essreduce-25.5.1 → essreduce-25.5.2}/docs/_templates/class-template.rst +0 -0
  61. {essreduce-25.5.1 → essreduce-25.5.2}/docs/_templates/doc_version.html +0 -0
  62. {essreduce-25.5.1 → essreduce-25.5.2}/docs/_templates/module-template.rst +0 -0
  63. {essreduce-25.5.1 → essreduce-25.5.2}/docs/about/index.md +0 -0
  64. {essreduce-25.5.1 → essreduce-25.5.2}/docs/api-reference/index.md +0 -0
  65. {essreduce-25.5.1 → essreduce-25.5.2}/docs/conf.py +0 -0
  66. {essreduce-25.5.1 → essreduce-25.5.2}/docs/developer/coding-conventions.md +0 -0
  67. {essreduce-25.5.1 → essreduce-25.5.2}/docs/developer/dependency-management.md +0 -0
  68. {essreduce-25.5.1 → essreduce-25.5.2}/docs/developer/getting-started.md +0 -0
  69. {essreduce-25.5.1 → essreduce-25.5.2}/docs/developer/gui.ipynb +0 -0
  70. {essreduce-25.5.1 → essreduce-25.5.2}/docs/developer/index.md +0 -0
  71. {essreduce-25.5.1 → essreduce-25.5.2}/docs/index.md +0 -0
  72. {essreduce-25.5.1 → essreduce-25.5.2}/docs/user-guide/index.md +0 -0
  73. {essreduce-25.5.1 → essreduce-25.5.2}/docs/user-guide/installation.md +0 -0
  74. {essreduce-25.5.1 → essreduce-25.5.2}/docs/user-guide/reduction-workflow-guidelines.md +0 -0
  75. {essreduce-25.5.1 → essreduce-25.5.2}/docs/user-guide/tof/index.md +0 -0
  76. {essreduce-25.5.1 → essreduce-25.5.2}/docs/user-guide/widget.md +0 -0
  77. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/basetest.in +0 -0
  78. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/ci.in +0 -0
  79. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/dev.in +0 -0
  80. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/make_base.py +0 -0
  81. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/mypy.in +0 -0
  82. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/mypy.txt +0 -0
  83. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/nightly.in +0 -0
  84. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/static.in +0 -0
  85. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/test.in +0 -0
  86. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/test.txt +0 -0
  87. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/wheels.in +0 -0
  88. {essreduce-25.5.1 → essreduce-25.5.2}/requirements/wheels.txt +0 -0
  89. {essreduce-25.5.1 → essreduce-25.5.2}/resources/logo.svg +0 -0
  90. {essreduce-25.5.1 → essreduce-25.5.2}/setup.cfg +0 -0
  91. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/__init__.py +0 -0
  92. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/live/__init__.py +0 -0
  93. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/live/raw.py +0 -0
  94. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/live/roi.py +0 -0
  95. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/live/workflow.py +0 -0
  96. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/logging.py +0 -0
  97. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/nexus/__init__.py +0 -0
  98. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/nexus/_nexus_loader.py +0 -0
  99. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/nexus/json_generator.py +0 -0
  100. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/nexus/json_nexus.py +0 -0
  101. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/parameter.py +0 -0
  102. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/py.typed +0 -0
  103. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/scripts/grow_nexus.py +0 -0
  104. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/time_of_flight/__init__.py +0 -0
  105. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/time_of_flight/eto_to_tof.py +0 -0
  106. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/time_of_flight/fakes.py +0 -0
  107. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/time_of_flight/interpolator_numba.py +0 -0
  108. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/time_of_flight/interpolator_scipy.py +0 -0
  109. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/time_of_flight/to_events.py +0 -0
  110. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/time_of_flight/types.py +0 -0
  111. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/ui.py +0 -0
  112. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/uncertainty.py +0 -0
  113. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/widgets/__init__.py +0 -0
  114. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/widgets/_base.py +0 -0
  115. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/widgets/_binedges_widget.py +0 -0
  116. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/widgets/_bounds_widget.py +0 -0
  117. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/widgets/_config.py +0 -0
  118. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/widgets/_filename_widget.py +0 -0
  119. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/widgets/_linspace_widget.py +0 -0
  120. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/widgets/_optional_widget.py +0 -0
  121. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/widgets/_spinner.py +0 -0
  122. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/widgets/_string_widget.py +0 -0
  123. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/widgets/_switchable_widget.py +0 -0
  124. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/widgets/_vector_widget.py +0 -0
  125. {essreduce-25.5.1 → essreduce-25.5.2}/src/ess/reduce/workflow.py +0 -0
  126. {essreduce-25.5.1 → essreduce-25.5.2}/src/essreduce.egg-info/dependency_links.txt +0 -0
  127. {essreduce-25.5.1 → essreduce-25.5.2}/src/essreduce.egg-info/entry_points.txt +0 -0
  128. {essreduce-25.5.1 → essreduce-25.5.2}/src/essreduce.egg-info/top_level.txt +0 -0
  129. {essreduce-25.5.1 → essreduce-25.5.2}/tests/live/raw_test.py +0 -0
  130. {essreduce-25.5.1 → essreduce-25.5.2}/tests/live/roi_test.py +0 -0
  131. {essreduce-25.5.1 → essreduce-25.5.2}/tests/nexus/json_generator_test.py +0 -0
  132. {essreduce-25.5.1 → essreduce-25.5.2}/tests/nexus/json_nexus_examples/array_dataset.json +0 -0
  133. {essreduce-25.5.1 → essreduce-25.5.2}/tests/nexus/json_nexus_examples/dataset.json +0 -0
  134. {essreduce-25.5.1 → essreduce-25.5.2}/tests/nexus/json_nexus_examples/detector.json +0 -0
  135. {essreduce-25.5.1 → essreduce-25.5.2}/tests/nexus/json_nexus_examples/entry.json +0 -0
  136. {essreduce-25.5.1 → essreduce-25.5.2}/tests/nexus/json_nexus_examples/event_data.json +0 -0
  137. {essreduce-25.5.1 → essreduce-25.5.2}/tests/nexus/json_nexus_examples/instrument.json +0 -0
  138. {essreduce-25.5.1 → essreduce-25.5.2}/tests/nexus/json_nexus_examples/log.json +0 -0
  139. {essreduce-25.5.1 → essreduce-25.5.2}/tests/nexus/json_nexus_test.py +0 -0
  140. {essreduce-25.5.1 → essreduce-25.5.2}/tests/package_test.py +0 -0
  141. {essreduce-25.5.1 → essreduce-25.5.2}/tests/scripts/test_grow_nexus.py +0 -0
  142. {essreduce-25.5.1 → essreduce-25.5.2}/tests/time_of_flight/interpolator_test.py +0 -0
  143. {essreduce-25.5.1 → essreduce-25.5.2}/tests/time_of_flight/to_events_test.py +0 -0
  144. {essreduce-25.5.1 → essreduce-25.5.2}/tests/uncertainty_test.py +0 -0
  145. {essreduce-25.5.1 → essreduce-25.5.2}/tests/widget_test.py +0 -0
  146. {essreduce-25.5.1 → essreduce-25.5.2}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: essreduce
3
- Version: 25.5.1
3
+ Version: 25.5.2
4
4
  Summary: Common data reduction tools for the ESS facility
5
5
  Author: Scipp contributors
6
6
  License: BSD 3-Clause License
@@ -51,7 +51,7 @@ Classifier: Typing :: Typed
51
51
  Requires-Python: >=3.10
52
52
  Description-Content-Type: text/markdown
53
53
  License-File: LICENSE
54
- Requires-Dist: sciline>=25.04.1
54
+ Requires-Dist: sciline>=25.05.1
55
55
  Requires-Dist: scipp>=25.01.0
56
56
  Requires-Dist: scippneutron>=25.02.0
57
57
  Requires-Dist: scippnexus>=24.11.0
@@ -306,7 +306,9 @@
306
306
  "outputs": [],
307
307
  "source": [
308
308
  "wf = time_of_flight.GenericTofWorkflow(\n",
309
- " tof_lut_provider=time_of_flight.TofLutProvider.TOF\n",
309
+ " tof_lut_provider=time_of_flight.TofLutProvider.TOF,\n",
310
+ " run_types=[SampleRun],\n",
311
+ " monitor_types=[],\n",
310
312
  ")\n",
311
313
  "wf[DetectorData[SampleRun]] = raw_data\n",
312
314
  "wf[time_of_flight.DetectorLtotal[SampleRun]] = Ltotal\n",
@@ -160,7 +160,9 @@
160
160
  "outputs": [],
161
161
  "source": [
162
162
  "wf = time_of_flight.GenericTofWorkflow(\n",
163
- " tof_lut_provider=time_of_flight.TofLutProvider.TOF\n",
163
+ " tof_lut_provider=time_of_flight.TofLutProvider.TOF,\n",
164
+ " run_types=[SampleRun],\n",
165
+ " monitor_types=[],\n",
164
166
  ")\n",
165
167
  "\n",
166
168
  "wf[DetectorData[SampleRun]] = nxevent_data\n",
@@ -371,7 +373,9 @@
371
373
  "outputs": [],
372
374
  "source": [
373
375
  "wf = time_of_flight.GenericTofWorkflow(\n",
374
- " tof_lut_provider=time_of_flight.TofLutProvider.TOF\n",
376
+ " tof_lut_provider=time_of_flight.TofLutProvider.TOF,\n",
377
+ " run_types=[SampleRun],\n",
378
+ " monitor_types=[],\n",
375
379
  ")\n",
376
380
  "\n",
377
381
  "nxevent_data = results.to_nxevent_data()\n",
@@ -327,7 +327,9 @@
327
327
  "outputs": [],
328
328
  "source": [
329
329
  "wf = time_of_flight.GenericTofWorkflow(\n",
330
- " tof_lut_provider=time_of_flight.TofLutProvider.TOF\n",
330
+ " tof_lut_provider=time_of_flight.TofLutProvider.TOF,\n",
331
+ " run_types=[SampleRun],\n",
332
+ " monitor_types=[],\n",
331
333
  ")\n",
332
334
  "wf[DetectorData[SampleRun]] = raw_data\n",
333
335
  "wf[time_of_flight.DetectorLtotal[SampleRun]] = Ltotal\n",
@@ -31,7 +31,7 @@ requires-python = ">=3.10"
31
31
  # Run 'tox -e deps' after making changes here. This will update requirement files.
32
32
  # Make sure to list one dependency per line.
33
33
  dependencies = [
34
- "sciline>=25.04.1",
34
+ "sciline>=25.05.1",
35
35
  "scipp>=25.01.0",
36
36
  "scippneutron>=25.02.0",
37
37
  "scippnexus>=24.11.0",
@@ -2,7 +2,7 @@
2
2
  # will not be touched by ``make_base.py``
3
3
  # --- END OF CUSTOM SECTION ---
4
4
  # The following was generated by 'tox -e deps', DO NOT EDIT MANUALLY!
5
- sciline>=25.04.1
5
+ sciline>=25.05.1
6
6
  scipp>=25.01.0
7
7
  scippneutron>=25.02.0
8
8
  scippnexus>=24.11.0
@@ -1,4 +1,4 @@
1
- # SHA1:082d6bf55d8a06cdc1dd3a0a78dd31c318c26424
1
+ # SHA1:da1d0d3975da182dcdb34676612971ba09dbdc53
2
2
  #
3
3
  # This file was generated by pip-compile-multi.
4
4
  # To update, run:
@@ -17,7 +17,7 @@ dnspython==2.7.0
17
17
  # via email-validator
18
18
  email-validator==2.2.0
19
19
  # via scippneutron
20
- fonttools==4.57.0
20
+ fonttools==4.58.0
21
21
  # via matplotlib
22
22
  h5py==3.13.0
23
23
  # via
@@ -31,7 +31,7 @@ lazy-loader==0.4
31
31
  # via
32
32
  # plopp
33
33
  # scippneutron
34
- matplotlib==3.10.1
34
+ matplotlib==3.10.3
35
35
  # via
36
36
  # mpltoolbox
37
37
  # plopp
@@ -39,7 +39,7 @@ mpltoolbox==25.4.0
39
39
  # via scippneutron
40
40
  networkx==3.4.2
41
41
  # via cyclebane
42
- numpy==2.2.5
42
+ numpy==2.2.6
43
43
  # via
44
44
  # contourpy
45
45
  # h5py
@@ -66,20 +66,20 @@ python-dateutil==2.9.0.post0
66
66
  # matplotlib
67
67
  # scippneutron
68
68
  # scippnexus
69
- sciline==25.4.1
69
+ sciline==25.5.1
70
70
  # via -r base.in
71
71
  scipp==25.5.0
72
72
  # via
73
73
  # -r base.in
74
74
  # scippneutron
75
75
  # scippnexus
76
- scippneutron==25.2.1
76
+ scippneutron==25.5.0
77
77
  # via -r base.in
78
78
  scippnexus==25.4.0
79
79
  # via
80
80
  # -r base.in
81
81
  # scippneutron
82
- scipy==1.15.2
82
+ scipy==1.15.3
83
83
  # via
84
84
  # scippneutron
85
85
  # scippnexus
@@ -19,13 +19,13 @@ cycler==0.12.1
19
19
  # via matplotlib
20
20
  decorator==5.2.1
21
21
  # via ipython
22
- exceptiongroup==1.2.2
22
+ exceptiongroup==1.3.0
23
23
  # via
24
24
  # ipython
25
25
  # pytest
26
26
  executing==2.2.0
27
27
  # via stack-data
28
- fonttools==4.57.0
28
+ fonttools==4.58.0
29
29
  # via matplotlib
30
30
  idna==3.10
31
31
  # via requests
@@ -33,11 +33,11 @@ iniconfig==2.1.0
33
33
  # via pytest
34
34
  ipython==8.36.0
35
35
  # via ipywidgets
36
- ipywidgets==8.1.6
36
+ ipywidgets==8.1.7
37
37
  # via -r basetest.in
38
38
  jedi==0.19.2
39
39
  # via ipython
40
- jupyterlab-widgets==3.0.14
40
+ jupyterlab-widgets==3.0.15
41
41
  # via ipywidgets
42
42
  kiwisolver==1.4.8
43
43
  # via matplotlib
@@ -47,13 +47,13 @@ lazy-loader==0.4
47
47
  # tof
48
48
  llvmlite==0.44.0
49
49
  # via numba
50
- matplotlib==3.10.1
50
+ matplotlib==3.10.3
51
51
  # via plopp
52
52
  matplotlib-inline==0.1.7
53
53
  # via ipython
54
54
  numba==0.61.2
55
55
  # via -r basetest.in
56
- numpy==2.2.5
56
+ numpy==2.2.6
57
57
  # via
58
58
  # contourpy
59
59
  # matplotlib
@@ -72,11 +72,11 @@ pexpect==4.9.0
72
72
  # via ipython
73
73
  pillow==11.2.1
74
74
  # via matplotlib
75
- platformdirs==4.3.7
75
+ platformdirs==4.3.8
76
76
  # via pooch
77
77
  plopp==25.4.1
78
78
  # via tof
79
- pluggy==1.5.0
79
+ pluggy==1.6.0
80
80
  # via pytest
81
81
  pooch==1.8.2
82
82
  # via -r basetest.in
@@ -98,7 +98,7 @@ requests==2.32.3
98
98
  # via pooch
99
99
  scipp==25.5.0
100
100
  # via tof
101
- scipy==1.15.2
101
+ scipy==1.15.3
102
102
  # via
103
103
  # -r basetest.in
104
104
  # tof
@@ -117,7 +117,9 @@ traitlets==5.14.3
117
117
  # ipywidgets
118
118
  # matplotlib-inline
119
119
  typing-extensions==4.13.2
120
- # via ipython
120
+ # via
121
+ # exceptiongroup
122
+ # ipython
121
123
  urllib3==2.4.0
122
124
  # via requests
123
125
  wcwidth==0.2.13
@@ -32,13 +32,13 @@ packaging==25.0
32
32
  # -r ci.in
33
33
  # pyproject-api
34
34
  # tox
35
- platformdirs==4.3.7
35
+ platformdirs==4.3.8
36
36
  # via
37
37
  # tox
38
38
  # virtualenv
39
- pluggy==1.5.0
39
+ pluggy==1.6.0
40
40
  # via tox
41
- pyproject-api==1.9.0
41
+ pyproject-api==1.9.1
42
42
  # via tox
43
43
  requests==2.32.3
44
44
  # via -r ci.in
@@ -48,11 +48,11 @@ tomli==2.2.1
48
48
  # via
49
49
  # pyproject-api
50
50
  # tox
51
- tox==4.25.0
51
+ tox==4.26.0
52
52
  # via -r ci.in
53
53
  typing-extensions==4.13.2
54
54
  # via tox
55
55
  urllib3==2.4.0
56
56
  # via requests
57
- virtualenv==20.30.0
57
+ virtualenv==20.31.2
58
58
  # via tox
@@ -26,13 +26,13 @@ async-lru==2.0.5
26
26
  # via jupyterlab
27
27
  cffi==1.17.1
28
28
  # via argon2-cffi-bindings
29
- click==8.1.8
29
+ click==8.2.0
30
30
  # via
31
31
  # pip-compile-multi
32
32
  # pip-tools
33
33
  copier==9.7.1
34
34
  # via -r dev.in
35
- dunamai==1.23.1
35
+ dunamai==1.24.1
36
36
  # via copier
37
37
  fqdn==1.5.1
38
38
  # via jsonschema
@@ -61,7 +61,7 @@ jupyter-events==0.12.0
61
61
  # via jupyter-server
62
62
  jupyter-lsp==2.2.5
63
63
  # via jupyterlab
64
- jupyter-server==2.15.0
64
+ jupyter-server==2.16.0
65
65
  # via
66
66
  # jupyter-lsp
67
67
  # jupyterlab
@@ -69,7 +69,7 @@ jupyter-server==2.15.0
69
69
  # notebook-shim
70
70
  jupyter-server-terminals==0.5.3
71
71
  # via jupyter-server
72
- jupyterlab==4.4.1
72
+ jupyterlab==4.4.2
73
73
  # via -r dev.in
74
74
  jupyterlab-server==2.27.3
75
75
  # via jupyterlab
@@ -85,7 +85,7 @@ pip-tools==7.4.1
85
85
  # via pip-compile-multi
86
86
  plumbum==1.9.0
87
87
  # via copier
88
- prometheus-client==0.21.1
88
+ prometheus-client==0.22.0
89
89
  # via jupyter-server
90
90
  pycparser==2.22
91
91
  # via cffi
@@ -111,7 +111,7 @@ terminado==0.18.1
111
111
  # jupyter-server-terminals
112
112
  toposort==1.10
113
113
  # via pip-compile-multi
114
- types-python-dateutil==2.9.0.20241206
114
+ types-python-dateutil==2.9.0.20250516
115
115
  # via arrow
116
116
  uri-template==1.3.0
117
117
  # via jsonschema
@@ -3,6 +3,7 @@ ipykernel
3
3
  ipython!=8.7.0 # Breaks syntax highlighting in Jupyter code cells.
4
4
  myst-parser
5
5
  nbsphinx
6
+ numba
6
7
  plopp
7
8
  pydata-sphinx-theme>=0.14
8
9
  sphinx
@@ -1,4 +1,4 @@
1
- # SHA1:de5c64b312f00d07eca11697a7756051987dfe90
1
+ # SHA1:5205c7bf93f31f2c74209026f99d2e5496ed7adc
2
2
  #
3
3
  # This file was generated by pip-compile-multi.
4
4
  # To update, run:
@@ -10,8 +10,6 @@ accessible-pygments==0.0.5
10
10
  # via pydata-sphinx-theme
11
11
  alabaster==1.0.0
12
12
  # via sphinx
13
- appnope==0.1.4
14
- # via ipykernel
15
13
  asttokens==3.0.0
16
14
  # via stack-data
17
15
  attrs==25.3.0
@@ -48,7 +46,7 @@ docutils==0.21.2
48
46
  # nbsphinx
49
47
  # pydata-sphinx-theme
50
48
  # sphinx
51
- exceptiongroup==1.2.2
49
+ exceptiongroup==1.3.0
52
50
  # via ipython
53
51
  executing==2.2.0
54
52
  # via stack-data
@@ -65,7 +63,7 @@ ipython==8.36.0
65
63
  # -r docs.in
66
64
  # ipykernel
67
65
  # ipywidgets
68
- ipywidgets==8.1.6
66
+ ipywidgets==8.1.7
69
67
  # via -r docs.in
70
68
  jedi==0.19.2
71
69
  # via ipython
@@ -92,8 +90,10 @@ jupyter-core==5.7.2
92
90
  # nbformat
93
91
  jupyterlab-pygments==0.3.0
94
92
  # via nbconvert
95
- jupyterlab-widgets==3.0.14
93
+ jupyterlab-widgets==3.0.15
96
94
  # via ipywidgets
95
+ llvmlite==0.44.0
96
+ # via numba
97
97
  markdown-it-py==3.0.0
98
98
  # via
99
99
  # mdit-py-plugins
@@ -127,13 +127,15 @@ nbsphinx==0.9.7
127
127
  # via -r docs.in
128
128
  nest-asyncio==1.6.0
129
129
  # via ipykernel
130
+ numba==0.61.2
131
+ # via -r docs.in
130
132
  pandocfilters==1.5.1
131
133
  # via nbconvert
132
134
  parso==0.8.4
133
135
  # via jedi
134
136
  pexpect==4.9.0
135
137
  # via ipython
136
- platformdirs==4.3.7
138
+ platformdirs==4.3.8
137
139
  # via jupyter-core
138
140
  prompt-toolkit==3.0.51
139
141
  # via ipython
@@ -164,11 +166,11 @@ referencing==0.36.2
164
166
  # jsonschema-specifications
165
167
  requests==2.32.3
166
168
  # via sphinx
167
- rpds-py==0.24.0
169
+ rpds-py==0.25.0
168
170
  # via
169
171
  # jsonschema
170
172
  # referencing
171
- snowballstemmer==2.2.0
173
+ snowballstemmer==3.0.1
172
174
  # via sphinx
173
175
  soupsieve==2.7
174
176
  # via beautifulsoup4
@@ -207,7 +209,7 @@ tof==25.5.0
207
209
  # via -r docs.in
208
210
  tomli==2.2.1
209
211
  # via sphinx
210
- tornado==6.4.2
212
+ tornado==6.5
211
213
  # via
212
214
  # ipykernel
213
215
  # jupyter-client
@@ -32,13 +32,13 @@ dnspython==2.7.0
32
32
  # via email-validator
33
33
  email-validator==2.2.0
34
34
  # via scippneutron
35
- exceptiongroup==1.2.2
35
+ exceptiongroup==1.3.0
36
36
  # via
37
37
  # ipython
38
38
  # pytest
39
39
  executing==2.2.0
40
40
  # via stack-data
41
- fonttools==4.57.0
41
+ fonttools==4.58.0
42
42
  # via matplotlib
43
43
  h5py==3.13.0
44
44
  # via
@@ -52,11 +52,11 @@ iniconfig==2.1.0
52
52
  # via pytest
53
53
  ipython==8.36.0
54
54
  # via ipywidgets
55
- ipywidgets==8.1.6
55
+ ipywidgets==8.1.7
56
56
  # via -r nightly.in
57
57
  jedi==0.19.2
58
58
  # via ipython
59
- jupyterlab-widgets==3.0.14
59
+ jupyterlab-widgets==3.0.15
60
60
  # via ipywidgets
61
61
  kiwisolver==1.4.8
62
62
  # via matplotlib
@@ -67,7 +67,7 @@ lazy-loader==0.4
67
67
  # tof
68
68
  llvmlite==0.44.0
69
69
  # via numba
70
- matplotlib==3.10.1
70
+ matplotlib==3.10.3
71
71
  # via
72
72
  # mpltoolbox
73
73
  # plopp
@@ -79,7 +79,7 @@ networkx==3.4.2
79
79
  # via cyclebane
80
80
  numba==0.61.2
81
81
  # via -r nightly.in
82
- numpy==2.2.5
82
+ numpy==2.2.6
83
83
  # via
84
84
  # contourpy
85
85
  # h5py
@@ -100,13 +100,13 @@ pexpect==4.9.0
100
100
  # via ipython
101
101
  pillow==11.2.1
102
102
  # via matplotlib
103
- platformdirs==4.3.7
103
+ platformdirs==4.3.8
104
104
  # via pooch
105
105
  plopp==25.4.1
106
106
  # via
107
107
  # scippneutron
108
108
  # tof
109
- pluggy==1.5.0
109
+ pluggy==1.6.0
110
110
  # via pytest
111
111
  pooch==1.8.2
112
112
  # via -r nightly.in
@@ -147,7 +147,7 @@ scippnexus @ git+https://github.com/scipp/scippnexus@main
147
147
  # via
148
148
  # -r nightly.in
149
149
  # scippneutron
150
- scipy==1.15.2
150
+ scipy==1.15.3
151
151
  # via
152
152
  # -r nightly.in
153
153
  # scippneutron
@@ -169,6 +169,7 @@ traitlets==5.14.3
169
169
  # matplotlib-inline
170
170
  typing-extensions==4.13.2
171
171
  # via
172
+ # exceptiongroup
172
173
  # ipython
173
174
  # pydantic
174
175
  # pydantic-core
@@ -15,11 +15,11 @@ identify==2.6.10
15
15
  # via pre-commit
16
16
  nodeenv==1.9.1
17
17
  # via pre-commit
18
- platformdirs==4.3.7
18
+ platformdirs==4.3.8
19
19
  # via virtualenv
20
20
  pre-commit==4.2.0
21
21
  # via -r static.in
22
22
  pyyaml==6.0.2
23
23
  # via pre-commit
24
- virtualenv==20.30.0
24
+ virtualenv==20.31.2
25
25
  # via pre-commit
@@ -40,6 +40,15 @@ _bifrost_registry = Registry(
40
40
  )
41
41
 
42
42
 
43
+ _dream_registry = Registry(
44
+ instrument='dream',
45
+ files={
46
+ "TEST_977695_00068064.hdf": "md5:9e6ee9ec70d7c5e8c0c93b9e07e8949f",
47
+ },
48
+ version='2',
49
+ )
50
+
51
+
43
52
  _loki_registry = Registry(
44
53
  instrument='loki',
45
54
  files={
@@ -94,3 +103,11 @@ def loki_tutorial_background_run_60393() -> str:
94
103
  def loki_tutorial_sample_transmission_run() -> str:
95
104
  """Sample transmission run (sample + sample holder/can + transmission monitor)."""
96
105
  return _loki_registry.get_path('60394-2022-02-28_2215.nxs')
106
+
107
+
108
+ def dream_coda_test_file() -> str:
109
+ """CODA file for DREAM where most pulses have been removed.
110
+
111
+ See ``tools/shrink_nexus.py``.
112
+ """
113
+ return _dream_registry.get_path('TEST_977695_00068064.hdf')
@@ -8,6 +8,7 @@ import sciline
8
8
  import scipp as sc
9
9
  import scippnexus as snx
10
10
  from scippneutron import metadata as scn_meta
11
+ from scippneutron.chopper import DiskChopper
11
12
 
12
13
  FilePath = NewType('FilePath', Path)
13
14
  """Full path to a NeXus file on disk."""
@@ -69,19 +70,13 @@ class TransmissionRun(Generic[ScatteringRunType]):
69
70
  """
70
71
 
71
72
 
72
- RunType = TypeVar(
73
- 'RunType',
74
- BackgroundRun,
75
- EmptyBeamRun,
76
- SampleRun,
77
- # Note that mypy does not seem to like this nesting, may need to find a workaround
78
- TransmissionRun[SampleRun],
79
- TransmissionRun[BackgroundRun],
80
- VanadiumRun,
81
- )
73
+ RunType = TypeVar('RunType')
82
74
  """TypeVar for specifying what run some data belongs to.
83
75
 
84
- Possible values:
76
+ This type must be constrained when used in a Sciline pipeline.
77
+ E.g., by passing ``run_types`` to :class:`ess.reduce.nexus.GenericNeXusWorkflow`.
78
+
79
+ ESSreduce provides the following but custom types can be used:
85
80
 
86
81
  - :class:`BackgroundRun`
87
82
  - :class:`EmptyBeamRun`
@@ -92,58 +87,28 @@ Possible values:
92
87
 
93
88
 
94
89
  # 1.2 Monitor types
95
- Monitor1 = NewType('Monitor1', int)
96
- """Identifier for an arbitrary monitor"""
97
- Monitor2 = NewType('Monitor2', int)
98
- """Identifier for an arbitrary monitor"""
99
- Monitor3 = NewType('Monitor3', int)
100
- """Identifier for an arbitrary monitor"""
101
- Monitor4 = NewType('Monitor4', int)
102
- """Identifier for an arbitrary monitor"""
103
- Monitor5 = NewType('Monitor5', int)
104
- """Identifier for an arbitrary monitor"""
105
- Monitor6 = NewType('Monitor6', int)
106
- """Identifier for an arbitrary monitor"""
107
90
  IncidentMonitor = NewType('IncidentMonitor', int)
108
91
  """Incident monitor"""
109
92
  TransmissionMonitor = NewType('TransmissionMonitor', int)
110
93
  """Transmission monitor"""
111
- FrameMonitor0 = NewType('FrameMonitor', int)
94
+ FrameMonitor0 = NewType('FrameMonitor0', int)
112
95
  """Frame monitor number 0"""
113
- FrameMonitor1 = NewType('FrameMonitor', int)
96
+ FrameMonitor1 = NewType('FrameMonitor1', int)
114
97
  """Frame monitor number 1"""
115
- FrameMonitor2 = NewType('FrameMonitor', int)
98
+ FrameMonitor2 = NewType('FrameMonitor2', int)
116
99
  """Frame monitor number 2"""
117
- FrameMonitor3 = NewType('FrameMonitor', int)
100
+ FrameMonitor3 = NewType('FrameMonitor3', int)
118
101
  """Frame monitor number 3"""
119
102
  CaveMonitor = NewType('CaveMonitor', int)
120
103
  """A monitor located in the instrument cave"""
121
- MonitorType = TypeVar(
122
- 'MonitorType',
123
- Monitor1,
124
- Monitor2,
125
- Monitor3,
126
- Monitor4,
127
- Monitor5,
128
- Monitor6,
129
- IncidentMonitor,
130
- TransmissionMonitor,
131
- FrameMonitor0,
132
- FrameMonitor1,
133
- FrameMonitor2,
134
- FrameMonitor3,
135
- CaveMonitor,
136
- )
104
+ MonitorType = TypeVar('MonitorType')
137
105
  """TypeVar for specifying what monitor some data belongs to.
138
106
 
139
- Possible values:
107
+ This type must be constrained when used in a Sciline pipeline.
108
+ E.g., by passing ``monitor_types`` to :class:`ess.reduce.nexus.GenericNeXusWorkflow`.
109
+
110
+ ESSreduce provides the following but custom types can be used:
140
111
 
141
- - :class:`Monitor1`
142
- - :class:`Monitor2`
143
- - :class:`Monitor3`
144
- - :class:`Monitor4`
145
- - :class:`Monitor5`
146
- - :class:`Monitor6`
147
112
  - :class:`IncidentMonitor`
148
113
  - :class:`TransmissionMonitor`
149
114
  - :class:`FrameMonitor0`
@@ -154,27 +119,20 @@ Possible values:
154
119
  """
155
120
 
156
121
 
157
- Component = TypeVar(
158
- 'Component',
122
+ Component = TypeVar('Component')
123
+ """A beamline component in a neXus file."""
124
+ COMPONENT_CONSTRAINTS = (
159
125
  snx.NXdetector,
160
126
  snx.NXsample,
161
127
  snx.NXsource,
162
128
  snx.NXdisk_chopper,
163
129
  snx.NXcrystal,
164
- Monitor1,
165
- Monitor2,
166
- Monitor3,
167
- Monitor4,
168
- Monitor5,
169
- Monitor6,
170
- IncidentMonitor,
171
- TransmissionMonitor,
172
- FrameMonitor0,
173
- FrameMonitor1,
174
- FrameMonitor2,
175
- FrameMonitor3,
176
- CaveMonitor,
177
130
  )
131
+ """Base constraints for the Component type variable.
132
+
133
+ This list will be supplemented with monitor types when creating a pipeline.
134
+ """
135
+
178
136
  UniqueComponent = TypeVar('UniqueComponent', snx.NXsample, snx.NXsource)
179
137
  """Components that can be identified by their type as there will only be one."""
180
138
 
@@ -336,8 +294,15 @@ class NeXusTransformation(Generic[Component, RunType]):
336
294
  return NeXusTransformation(value=transform)
337
295
 
338
296
 
339
- class Choppers(
297
+ class RawChoppers(
340
298
  sciline.Scope[RunType, sc.DataGroup[sc.DataGroup[Any]]],
341
299
  sc.DataGroup[sc.DataGroup[Any]],
342
300
  ):
343
301
  """All choppers in a NeXus file."""
302
+
303
+
304
+ class DiskChoppers(
305
+ sciline.Scope[RunType, sc.DataGroup[DiskChopper]],
306
+ sc.DataGroup[DiskChopper],
307
+ ):
308
+ """All disk choppers parsed from a NeXus file."""