essdiffraction 26.5.1__tar.gz → 26.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 (124) hide show
  1. {essdiffraction-26.5.1/src/essdiffraction.egg-info → essdiffraction-26.5.2}/PKG-INFO +5 -5
  2. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/README.md +1 -1
  3. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/_templates/doc_version.html +1 -1
  4. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/about/index.md +2 -2
  5. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/api-reference/index.md +28 -0
  6. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/conf.py +1 -1
  7. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/index.md +7 -2
  8. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/user-guide/dream/dream-powder-reduction.ipynb +1 -1
  9. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/user-guide/index.md +1 -0
  10. essdiffraction-26.5.2/docs/user-guide/magic/index.md +4 -0
  11. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/pyproject.toml +3 -3
  12. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/beer/io.py +2 -2
  13. essdiffraction-26.5.2/src/ess/magic/__init__.py +19 -0
  14. essdiffraction-26.5.2/src/ess/magic/beamline.py +9 -0
  15. essdiffraction-26.5.2/src/ess/magic/data.py +10 -0
  16. essdiffraction-26.5.2/src/ess/magic/types.py +31 -0
  17. essdiffraction-26.5.2/src/ess/magic/workflow.py +23 -0
  18. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/powder/types.py +1 -4
  19. {essdiffraction-26.5.1 → essdiffraction-26.5.2/src/essdiffraction.egg-info}/PKG-INFO +5 -5
  20. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/essdiffraction.egg-info/SOURCES.txt +7 -0
  21. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tests/beer/mcstas_reduction_test.py +3 -0
  22. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tests/dream/geant4_reduction_test.py +1 -1
  23. essdiffraction-26.5.2/tests/magic/workflow_test.py +17 -0
  24. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/.copier-answers.ess.yml +0 -0
  25. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/.copier-answers.yml +0 -0
  26. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/LICENSE +0 -0
  27. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/_static/anaconda-icon.js +0 -0
  28. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/_static/essdiffraction-search-logo.png +0 -0
  29. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/_static/favicon.svg +0 -0
  30. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/_static/logo-dark.svg +0 -0
  31. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/_static/logo.svg +0 -0
  32. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/_static/thumbnails/beer_mcstas_dark.svg +0 -0
  33. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/_static/thumbnails/beer_mcstas_light.svg +0 -0
  34. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/_static/thumbnails/dream_advanced_powder_reduction_dark.svg +0 -0
  35. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/_static/thumbnails/dream_advanced_powder_reduction_light.svg +0 -0
  36. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/_static/thumbnails/dream_basic_powder_reduction_dark.svg +0 -0
  37. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/_static/thumbnails/dream_basic_powder_reduction_light.svg +0 -0
  38. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/_templates/class-template.rst +0 -0
  39. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/_templates/layout.html +0 -0
  40. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/_templates/module-template.rst +0 -0
  41. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/about/bibliography.rst +0 -0
  42. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/bibliography.bib +0 -0
  43. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/developer/coding-conventions.md +0 -0
  44. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/developer/dependency-management.md +0 -0
  45. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/developer/getting-started.md +0 -0
  46. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/developer/index.md +0 -0
  47. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/user-guide/beer/beer_modulation_mcstas.ipynb +0 -0
  48. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/user-guide/beer/index.md +0 -0
  49. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/user-guide/common/index.md +0 -0
  50. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/user-guide/common/vanadium_processing.ipynb +0 -0
  51. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/user-guide/dream/dream-advanced-powder-reduction.ipynb +0 -0
  52. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/user-guide/dream/dream-detector-diagnostics.ipynb +0 -0
  53. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/user-guide/dream/dream-instrument-view.ipynb +0 -0
  54. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/user-guide/dream/dream-make-wavelength-lookup-table.ipynb +0 -0
  55. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/user-guide/dream/dream-visualize-absorption.ipynb +0 -0
  56. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/user-guide/dream/index.md +0 -0
  57. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/user-guide/dream/workflow-widget-dream.ipynb +0 -0
  58. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/user-guide/installation.md +0 -0
  59. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/user-guide/sns-instruments/POWGEN_data_reduction.ipynb +0 -0
  60. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/docs/user-guide/sns-instruments/index.md +0 -0
  61. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/resources/logo.svg +0 -0
  62. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/setup.cfg +0 -0
  63. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/beer/__init__.py +0 -0
  64. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/beer/clustering.py +0 -0
  65. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/beer/conversions.py +0 -0
  66. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/beer/data.py +0 -0
  67. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/beer/peakfinding.py +0 -0
  68. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/beer/types.py +0 -0
  69. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/beer/workflow.py +0 -0
  70. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/diffraction/__init__.py +0 -0
  71. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/diffraction/peaks.py +0 -0
  72. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/diffraction/py.typed +0 -0
  73. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/dream/__init__.py +0 -0
  74. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/dream/beamline.py +0 -0
  75. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/dream/data.py +0 -0
  76. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/dream/diagnostics.py +0 -0
  77. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/dream/instrument_view.py +0 -0
  78. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/dream/io/__init__.py +0 -0
  79. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/dream/io/cif.py +0 -0
  80. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/dream/io/geant4.py +0 -0
  81. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/dream/parameters.py +0 -0
  82. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/dream/py.typed +0 -0
  83. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/dream/workflows.py +0 -0
  84. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/powder/__init__.py +0 -0
  85. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/powder/_util.py +0 -0
  86. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/powder/calibration.py +0 -0
  87. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/powder/conversion.py +0 -0
  88. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/powder/correction.py +0 -0
  89. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/powder/filtering.py +0 -0
  90. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/powder/grouping.py +0 -0
  91. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/powder/logging.py +0 -0
  92. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/powder/masking.py +0 -0
  93. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/powder/py.typed +0 -0
  94. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/powder/smoothing.py +0 -0
  95. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/powder/transform.py +0 -0
  96. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/powder/workflow.py +0 -0
  97. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/snspowder/powgen/__init__.py +0 -0
  98. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/snspowder/powgen/beamline.py +0 -0
  99. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/snspowder/powgen/calibration.py +0 -0
  100. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/snspowder/powgen/data.py +0 -0
  101. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/snspowder/powgen/instrument_view.py +0 -0
  102. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/snspowder/powgen/peaks.py +0 -0
  103. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/ess/snspowder/powgen/workflow.py +0 -0
  104. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/essdiffraction.egg-info/dependency_links.txt +0 -0
  105. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/essdiffraction.egg-info/requires.txt +0 -0
  106. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/src/essdiffraction.egg-info/top_level.txt +0 -0
  107. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tests/conftest.py +0 -0
  108. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tests/diffraction/peaks_test.py +0 -0
  109. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tests/dream/diagnostics_test.py +0 -0
  110. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tests/dream/instrument_view_test.py +0 -0
  111. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tests/dream/io/cif_test.py +0 -0
  112. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tests/dream/io/geant4_test.py +0 -0
  113. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tests/dream/workflows/dream_generic_workflow_test.py +0 -0
  114. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tests/package_test.py +0 -0
  115. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tests/powder/conversion_test.py +0 -0
  116. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tests/powder/correction_test.py +0 -0
  117. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tests/powder/filtering_test.py +0 -0
  118. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tests/powder/transform_test.py +0 -0
  119. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tests/snspowder/powgen/load_test.py +0 -0
  120. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tests/snspowder/powgen/powgen_reduction_test.py +0 -0
  121. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tools/docs/beer-thumbnails.ipynb +0 -0
  122. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tools/docs/dream-thumbnails.ipynb +0 -0
  123. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tools/preprocess_pg3_files.ipynb +0 -0
  124. {essdiffraction-26.5.1 → essdiffraction-26.5.2}/tools/shrink_nexus.py +0 -0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: essdiffraction
3
- Version: 26.5.1
3
+ Version: 26.5.2
4
4
  Summary: Diffraction data reduction for the European Spallation Source
5
5
  Author: Scipp contributors
6
6
  License-Expression: BSD-3-Clause
7
- Project-URL: Bug Tracker, https://github.com/scipp/essdiffraction/issues
8
- Project-URL: Documentation, https://scipp.github.io/essdiffraction
9
- Project-URL: Source, https://github.com/scipp/essdiffraction
7
+ Project-URL: Bug Tracker, https://github.com/scipp/ess/issues
8
+ Project-URL: Documentation, https://scipp.github.io/ess/diffraction
9
+ Project-URL: Source, https://github.com/scipp/ess/tree/main/packages/essdiffraction
10
10
  Classifier: Intended Audience :: Science/Research
11
11
  Classifier: Natural Language :: English
12
12
  Classifier: Operating System :: OS Independent
@@ -58,7 +58,7 @@ Dynamic: license-file
58
58
 
59
59
  [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)
60
60
  [![PyPI badge](http://img.shields.io/pypi/v/essdiffraction.svg)](https://pypi.python.org/pypi/essdiffraction)
61
- [![Anaconda-Server Badge](https://anaconda.org/conda-forge/essdiffraction/badges/version.svg)](https://anaconda.org/conda-forge/essdiffraction)
61
+ [![Conda Badge](https://img.shields.io/conda/v/conda-forge/essdiffraction)](https://anaconda.org/conda-forge/essdiffraction)
62
62
  [![License: BSD 3-Clause](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](LICENSE)
63
63
 
64
64
  # ESSdiffraction
@@ -1,6 +1,6 @@
1
1
  [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)
2
2
  [![PyPI badge](http://img.shields.io/pypi/v/essdiffraction.svg)](https://pypi.python.org/pypi/essdiffraction)
3
- [![Anaconda-Server Badge](https://anaconda.org/conda-forge/essdiffraction/badges/version.svg)](https://anaconda.org/conda-forge/essdiffraction)
3
+ [![Conda Badge](https://img.shields.io/conda/v/conda-forge/essdiffraction)](https://anaconda.org/conda-forge/essdiffraction)
4
4
  [![License: BSD 3-Clause](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](LICENSE)
5
5
 
6
6
  # ESSdiffraction
@@ -1,2 +1,2 @@
1
1
  <!-- This will display the version of the docs -->
2
- Current ESSdiffraction version: {{ version }} (<a href="https://github.com/scipp/essdiffraction/releases">older versions</a>).
2
+ Current ESSdiffraction version: {{ version }} (<a href="https://github.com/scipp/ess/releases?q=essdiffraction">older versions</a>).
@@ -18,12 +18,12 @@ To cite a specific version of ESSdiffraction, select the desired version on Zeno
18
18
 
19
19
  ## Older versions of the documentation
20
20
 
21
- Older versions of the documentation pages can be found under the assets of each [release](https://github.com/scipp/essdiffraction/releases).
21
+ Older versions of the documentation pages can be found under the assets of each [release](https://github.com/scipp/ess/releases?q=essdiffraction).
22
22
  Simply download the archive, unzip and view locally in a web browser.
23
23
 
24
24
  ## Source code and development
25
25
 
26
- ESSdiffraction is hosted and developed [on GitHub](https://github.com/scipp/essdiffraction).
26
+ ESSdiffraction is hosted and developed [on GitHub](https://github.com/scipp/ess/tree/main/packages/essdiffraction).
27
27
 
28
28
  ```{toctree}
29
29
  ---
@@ -140,6 +140,34 @@
140
140
  workflow
141
141
  ```
142
142
 
143
+ ## MAGIC
144
+
145
+ ### Workflows
146
+
147
+
148
+ ```{eval-rst}
149
+ .. currentmodule:: ess.magic
150
+
151
+ .. autosummary::
152
+ :toctree: ../generated/functions
153
+
154
+ MagicWorkflow
155
+ ```
156
+
157
+ ### Submodules
158
+
159
+ ```{eval-rst}
160
+ .. autosummary::
161
+ :toctree: ../generated/modules
162
+ :template: module-template.rst
163
+ :recursive:
164
+
165
+ beamline
166
+ data
167
+ types
168
+ workflow
169
+ ```
170
+
143
171
  ## SNS powder
144
172
 
145
173
  ```{eval-rst}
@@ -191,7 +191,7 @@ html_theme_options = {
191
191
  "icon_links": [
192
192
  {
193
193
  "name": "GitHub",
194
- "url": "https://github.com/scipp/essdiffraction",
194
+ "url": "https://github.com/scipp/ess/tree/main/packages/essdiffraction",
195
195
  "icon": "fa-brands fa-github",
196
196
  "type": "fontawesome",
197
197
  },
@@ -43,6 +43,11 @@
43
43
 
44
44
  :::
45
45
 
46
+ :::{grid-item-card} MAGIC
47
+ :link: user-guide/magic/index.md
48
+
49
+ :::
50
+
46
51
  :::{grid-item-card} SNS instruments
47
52
  :link: user-guide/sns-instruments/index.md
48
53
 
@@ -61,8 +66,8 @@
61
66
 
62
67
  ## Get in touch
63
68
 
64
- - If you have questions that are not answered by these documentation pages, ask on [discussions](https://github.com/scipp/essdiffraction/discussions). Please include a self-contained reproducible example if possible.
65
- - Report bugs (including unclear, missing, or wrong documentation!), suggest features or view the source code [on GitHub](https://github.com/scipp/essdiffraction).
69
+ - If you have questions that are not answered by these documentation pages, ask on [discussions](https://github.com/scipp/ess/discussions). Please include a self-contained reproducible example if possible.
70
+ - Report bugs (including unclear, missing, or wrong documentation!), suggest features or view the source code [on GitHub](https://github.com/scipp/ess/tree/main/packages/essdiffraction).
66
71
 
67
72
  ```{toctree}
68
73
  ---
@@ -165,7 +165,7 @@
165
165
  "source": [
166
166
  "cif_data.comment = \"\"\"This file was generated with the basic DREAM data reduction user guide\n",
167
167
  "in the documentation of ESSdiffraction.\n",
168
- "See https://scipp.github.io/essdiffraction/\n",
168
+ "See https://scipp.github.io/ess/diffraction/\n",
169
169
  "\"\"\"\n",
170
170
  "cif_data.save(\"reduced.cif\")"
171
171
  ]
@@ -8,6 +8,7 @@ maxdepth: 1
8
8
  installation
9
9
  dream/index
10
10
  beer/index
11
+ magic/index
11
12
  sns-instruments/index
12
13
  common/index
13
14
  ```
@@ -0,0 +1,4 @@
1
+ # MAGIC
2
+
3
+ MAGIC — **Mag**netism Single-Crystal Diffractometer — is an ESS polarised
4
+ time-of-flight single-crystal diffractometer for studying magnetic structures.
@@ -74,9 +74,9 @@ docs = [
74
74
  ]
75
75
 
76
76
  [project.urls]
77
- "Bug Tracker" = "https://github.com/scipp/essdiffraction/issues"
78
- "Documentation" = "https://scipp.github.io/essdiffraction"
79
- "Source" = "https://github.com/scipp/essdiffraction"
77
+ "Bug Tracker" = "https://github.com/scipp/ess/issues"
78
+ "Documentation" = "https://scipp.github.io/ess/diffraction"
79
+ "Source" = "https://github.com/scipp/ess/tree/main/packages/essdiffraction"
80
80
 
81
81
  [tool.setuptools_scm]
82
82
  root = "../.."
@@ -209,7 +209,7 @@ def _load_beer_mcstas(f, *, north_or_south=None, number=None, detector_sizes):
209
209
  positions['MCC'],
210
210
  )
211
211
  data = (
212
- next(_find_all_h5(data_dir, f'.*{north_or_south}{number}'))
212
+ next(_find_all_h5(data_dir, f'.*{north_or_south}{number}_events'))
213
213
  if north_or_south is not None and number is not None
214
214
  else next(_find_all_h5(data_dir, f'.*{north_or_south}'))
215
215
  if north_or_south is not None
@@ -222,7 +222,7 @@ def _load_beer_mcstas(f, *, north_or_south=None, number=None, detector_sizes):
222
222
  ]
223
223
  detector_rotation = _find_h5(
224
224
  f['/entry1/instrument/components'],
225
- f'.*nD_Mantid_?{north_or_south}_{number}.*'
225
+ f'.*nD_Mantid_?{north_or_south}_{number}$'
226
226
  if north_or_south is not None and number is not None
227
227
  else f'.*nD_Mantid_?{north_or_south}.*'
228
228
  if north_or_south is not None
@@ -0,0 +1,19 @@
1
+ # SPDX-License-Identifier: BSD-3-Clause
2
+ # Copyright (c) 2026 Scipp contributors (https://github.com/scipp)
3
+
4
+ import importlib.metadata
5
+
6
+ from .workflow import MagicWorkflow, default_parameters
7
+
8
+ try:
9
+ __version__ = importlib.metadata.version("essdiffraction")
10
+ except importlib.metadata.PackageNotFoundError:
11
+ __version__ = "0.0.0"
12
+
13
+ del importlib
14
+
15
+ __all__ = [
16
+ 'MagicWorkflow',
17
+ '__version__',
18
+ 'default_parameters',
19
+ ]
@@ -0,0 +1,9 @@
1
+ # SPDX-License-Identifier: BSD-3-Clause
2
+ # Copyright (c) 2026 Scipp contributors (https://github.com/scipp)
3
+ """Geometry and default parameters for MAGIC."""
4
+
5
+ DETECTOR_BANK_SIZES: dict[str, dict[str, int]] = {
6
+ 'detector_a': {},
7
+ 'detector_b': {},
8
+ }
9
+ """Names and dimensions are placeholders."""
@@ -0,0 +1,10 @@
1
+ # SPDX-License-Identifier: BSD-3-Clause
2
+ # Copyright (c) 2026 Scipp contributors (https://github.com/scipp)
3
+
4
+ from ess.reduce.data import make_registry
5
+
6
+ _registry = make_registry(
7
+ "ess/magic",
8
+ version="1",
9
+ files={},
10
+ )
@@ -0,0 +1,31 @@
1
+ # SPDX-License-Identifier: BSD-3-Clause
2
+ # Copyright (c) 2026 Scipp contributors (https://github.com/scipp)
3
+
4
+ from enum import Enum
5
+ from typing import NewType
6
+
7
+ import scipp as sc
8
+
9
+ from ess.reduce.nexus.types import Filename, RawDetector, RunType, SampleRun
10
+
11
+ RawDetector = RawDetector
12
+ Filename = Filename
13
+ RunType = RunType
14
+ SampleRun = SampleRun
15
+
16
+
17
+ class DetectorBank(Enum):
18
+ detector_a = 'detector_a'
19
+ detector_b = 'detector_b'
20
+
21
+
22
+ class PolarizationState(Enum):
23
+ up = 'up'
24
+ down = 'down'
25
+
26
+
27
+ IncidentPolarization = NewType("IncidentPolarization", sc.Variable)
28
+ """Polarisation of the incident beam."""
29
+
30
+ ScatteredPolarization = NewType("ScatteredPolarization", sc.Variable)
31
+ """Polarisation of the scattered beam (polarisation analysis mode)."""
@@ -0,0 +1,23 @@
1
+ # SPDX-License-Identifier: BSD-3-Clause
2
+ # Copyright (c) 2026 Scipp contributors (https://github.com/scipp)
3
+
4
+ import sciline as sl
5
+
6
+ from ess.reduce.nexus.types import DetectorBankSizes
7
+
8
+ from .beamline import DETECTOR_BANK_SIZES
9
+
10
+ default_parameters = {
11
+ DetectorBankSizes: DETECTOR_BANK_SIZES,
12
+ }
13
+
14
+
15
+ def MagicWorkflow() -> sl.Pipeline:
16
+ """Workflow for the MAGIC single-crystal magnetism diffractometer.
17
+
18
+ This is currently a placeholder skeleton: it registers default beamline
19
+ parameters but provides no reduction providers yet. Single-crystal and
20
+ polarisation-analysis providers will be added as the MAGIC reduction
21
+ pipeline is developed.
22
+ """
23
+ return sl.Pipeline(providers=(), params=default_parameters)
@@ -33,6 +33,7 @@ NeXusDetectorName = reduce_t.NeXusDetectorName
33
33
  NeXusMonitorName = reduce_t.NeXusName
34
34
  NeXusComponent = reduce_t.NeXusComponent
35
35
  Position = reduce_t.Position
36
+ ProtonCharge = reduce_t.ProtonCharge
36
37
 
37
38
  DetectorBankSizes = reduce_t.DetectorBankSizes
38
39
 
@@ -191,10 +192,6 @@ PixelMaskFilename = NewType("PixelMaskFilename", str)
191
192
  """Filename of a pixel mask."""
192
193
 
193
194
 
194
- class ProtonCharge(sciline.Scope[RunType, sc.DataArray], sc.DataArray):
195
- """Time-dependent proton charge."""
196
-
197
-
198
195
  class RawDataAndMetadata(sciline.Scope[RunType, sc.DataGroup], sc.DataGroup):
199
196
  """Raw data and associated metadata."""
200
197
 
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: essdiffraction
3
- Version: 26.5.1
3
+ Version: 26.5.2
4
4
  Summary: Diffraction data reduction for the European Spallation Source
5
5
  Author: Scipp contributors
6
6
  License-Expression: BSD-3-Clause
7
- Project-URL: Bug Tracker, https://github.com/scipp/essdiffraction/issues
8
- Project-URL: Documentation, https://scipp.github.io/essdiffraction
9
- Project-URL: Source, https://github.com/scipp/essdiffraction
7
+ Project-URL: Bug Tracker, https://github.com/scipp/ess/issues
8
+ Project-URL: Documentation, https://scipp.github.io/ess/diffraction
9
+ Project-URL: Source, https://github.com/scipp/ess/tree/main/packages/essdiffraction
10
10
  Classifier: Intended Audience :: Science/Research
11
11
  Classifier: Natural Language :: English
12
12
  Classifier: Operating System :: OS Independent
@@ -58,7 +58,7 @@ Dynamic: license-file
58
58
 
59
59
  [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)
60
60
  [![PyPI badge](http://img.shields.io/pypi/v/essdiffraction.svg)](https://pypi.python.org/pypi/essdiffraction)
61
- [![Anaconda-Server Badge](https://anaconda.org/conda-forge/essdiffraction/badges/version.svg)](https://anaconda.org/conda-forge/essdiffraction)
61
+ [![Conda Badge](https://img.shields.io/conda/v/conda-forge/essdiffraction)](https://anaconda.org/conda-forge/essdiffraction)
62
62
  [![License: BSD 3-Clause](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](LICENSE)
63
63
 
64
64
  # ESSdiffraction
@@ -42,6 +42,7 @@ docs/user-guide/dream/dream-powder-reduction.ipynb
42
42
  docs/user-guide/dream/dream-visualize-absorption.ipynb
43
43
  docs/user-guide/dream/index.md
44
44
  docs/user-guide/dream/workflow-widget-dream.ipynb
45
+ docs/user-guide/magic/index.md
45
46
  docs/user-guide/sns-instruments/POWGEN_data_reduction.ipynb
46
47
  docs/user-guide/sns-instruments/index.md
47
48
  resources/logo.svg
@@ -67,6 +68,11 @@ src/ess/dream/workflows.py
67
68
  src/ess/dream/io/__init__.py
68
69
  src/ess/dream/io/cif.py
69
70
  src/ess/dream/io/geant4.py
71
+ src/ess/magic/__init__.py
72
+ src/ess/magic/beamline.py
73
+ src/ess/magic/data.py
74
+ src/ess/magic/types.py
75
+ src/ess/magic/workflow.py
70
76
  src/ess/powder/__init__.py
71
77
  src/ess/powder/_util.py
72
78
  src/ess/powder/calibration.py
@@ -103,6 +109,7 @@ tests/dream/instrument_view_test.py
103
109
  tests/dream/io/cif_test.py
104
110
  tests/dream/io/geant4_test.py
105
111
  tests/dream/workflows/dream_generic_workflow_test.py
112
+ tests/magic/workflow_test.py
106
113
  tests/powder/conversion_test.py
107
114
  tests/powder/correction_test.py
108
115
  tests/powder/filtering_test.py
@@ -105,6 +105,9 @@ def test_can_load_3d_detector():
105
105
  mcstas_few_neutrons_3d_detector_example(), DetectorBank.south, sizes
106
106
  )
107
107
  assert 'panel' in da.dims
108
+ # Detector position.x is monotone in panel dimension.
109
+ panel_x_diff = np.diff(da.coords['detector_position'].fields.x.values)
110
+ assert (panel_x_diff > 0).all() or (panel_x_diff < 0).all()
108
111
 
109
112
 
110
113
  def test_can_load_monitor():
@@ -307,7 +307,7 @@ def test_pipeline_save_data_to_disk(output_folder: Path):
307
307
  result = wf.compute(ReducedTofCIF)
308
308
  result.comment = """This file was generated with the DREAM data reduction user guide
309
309
  in the documentation of ESSdiffraction.
310
- See https://scipp.github.io/essdiffraction/
310
+ See https://scipp.github.io/ess/diffraction/
311
311
  """
312
312
  result.save(output_folder / "dream_reduced.cif")
313
313
 
@@ -0,0 +1,17 @@
1
+ # SPDX-License-Identifier: BSD-3-Clause
2
+ # Copyright (c) 2026 Scipp contributors (https://github.com/scipp)
3
+ import sciline as sl
4
+ from ess.magic import MagicWorkflow, default_parameters
5
+
6
+ from ess.reduce.nexus.types import DetectorBankSizes
7
+
8
+
9
+ def test_magic_workflow_can_be_constructed():
10
+ wf = MagicWorkflow()
11
+ assert isinstance(wf, sl.Pipeline)
12
+
13
+
14
+ def test_default_parameters_include_detector_bank_sizes():
15
+ sizes = default_parameters[DetectorBankSizes]
16
+ assert 'detector_a' in sizes
17
+ assert 'detector_b' in sizes
File without changes