essdiffraction 24.11.0__tar.gz → 25.2.0__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 (127) hide show
  1. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/.copier-answers.yml +3 -3
  2. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/.github/workflows/ci.yml +6 -6
  3. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/.github/workflows/docs.yml +3 -3
  4. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/.github/workflows/nightly_at_main.yml +3 -3
  5. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/.github/workflows/nightly_at_release.yml +4 -4
  6. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/.github/workflows/release.yml +5 -5
  7. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/.github/workflows/test.yml +2 -2
  8. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/.github/workflows/unpinned.yml +4 -4
  9. essdiffraction-25.2.0/.github/workflows/weekly_windows_macos.yml +42 -0
  10. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/.gitignore +4 -1
  11. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/.pre-commit-config.yaml +10 -2
  12. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/LICENSE +1 -1
  13. {essdiffraction-24.11.0/src/essdiffraction.egg-info → essdiffraction-25.2.0}/PKG-INFO +5 -4
  14. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/conf.py +4 -4
  15. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/user-guide/dream/dream-data-reduction.ipynb +1 -1
  16. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/user-guide/dream/workflow-widget-dream.ipynb +5 -3
  17. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/user-guide/sns-instruments/POWGEN_data_reduction.ipynb +1 -1
  18. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/pyproject.toml +3 -3
  19. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/base.in +1 -1
  20. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/base.txt +23 -25
  21. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/basetest.txt +8 -8
  22. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/ci.txt +11 -11
  23. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/dev.txt +12 -14
  24. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/docs.txt +28 -28
  25. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/make_base.py +12 -7
  26. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/mypy.txt +1 -1
  27. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/nightly.in +8 -2
  28. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/nightly.txt +101 -20
  29. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/static.txt +4 -4
  30. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/diffraction/__init__.py +2 -2
  31. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/dream/data.py +35 -0
  32. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/dream/io/__init__.py +2 -2
  33. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/dream/io/geant4.py +5 -1
  34. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/dream/io/nexus.py +4 -1
  35. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/powder/types.py +4 -2
  36. {essdiffraction-24.11.0 → essdiffraction-25.2.0/src/essdiffraction.egg-info}/PKG-INFO +5 -4
  37. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/essdiffraction.egg-info/SOURCES.txt +1 -0
  38. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/essdiffraction.egg-info/requires.txt +1 -1
  39. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/tests/package_test.py +2 -2
  40. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/tox.ini +4 -1
  41. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/.copier-answers.ess.yml +0 -0
  42. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/.github/ISSUE_TEMPLATE/blank.md +0 -0
  43. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/.github/ISSUE_TEMPLATE/high-level-requirement.yml +0 -0
  44. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/.github/dependabot.yml +0 -0
  45. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/.github/workflows/python-version-ci +0 -0
  46. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/.python-version +0 -0
  47. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/CODE_OF_CONDUCT.md +0 -0
  48. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/CONTRIBUTING.md +0 -0
  49. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/MANIFEST.in +0 -0
  50. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/README.md +0 -0
  51. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/conda/meta.yaml +0 -0
  52. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/_static/anaconda-icon.js +0 -0
  53. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/_static/favicon.svg +0 -0
  54. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/_static/logo-dark.svg +0 -0
  55. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/_static/logo.svg +0 -0
  56. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/_templates/class-template.rst +0 -0
  57. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/_templates/doc_version.html +0 -0
  58. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/_templates/module-template.rst +0 -0
  59. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/about/bibliography.rst +0 -0
  60. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/about/index.md +0 -0
  61. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/api-reference/index.md +0 -0
  62. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/bibliography.bib +0 -0
  63. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/developer/coding-conventions.md +0 -0
  64. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/developer/dependency-management.md +0 -0
  65. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/developer/getting-started.md +0 -0
  66. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/developer/index.md +0 -0
  67. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/index.md +0 -0
  68. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/user-guide/dream/dream-detector-diagnostics.ipynb +0 -0
  69. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/user-guide/dream/dream-instrument-view.ipynb +0 -0
  70. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/user-guide/dream/index.md +0 -0
  71. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/user-guide/index.md +0 -0
  72. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/user-guide/sns-instruments/index.md +0 -0
  73. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/user-guide/sns-instruments/preprocess_files.ipynb +0 -0
  74. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/docs/user-guide/sns-instruments/vanadium_processing.ipynb +0 -0
  75. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/basetest.in +0 -0
  76. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/ci.in +0 -0
  77. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/dev.in +0 -0
  78. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/docs.in +0 -0
  79. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/mypy.in +0 -0
  80. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/static.in +0 -0
  81. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/test.in +0 -0
  82. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/test.txt +0 -0
  83. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/wheels.in +0 -0
  84. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/requirements/wheels.txt +0 -0
  85. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/resources/logo.svg +0 -0
  86. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/setup.cfg +0 -0
  87. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/diffraction/py.typed +0 -0
  88. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/dream/__init__.py +1 -1
  89. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/dream/diagnostics.py +0 -0
  90. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/dream/instrument_view.py +0 -0
  91. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/dream/io/cif.py +0 -0
  92. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/dream/parameters.py +0 -0
  93. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/dream/py.typed +0 -0
  94. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/dream/workflow.py +0 -0
  95. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/powder/__init__.py +3 -3
  96. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/powder/_util.py +0 -0
  97. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/powder/calibration.py +0 -0
  98. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/powder/conversion.py +0 -0
  99. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/powder/correction.py +0 -0
  100. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/powder/filtering.py +0 -0
  101. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/powder/grouping.py +0 -0
  102. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/powder/logging.py +0 -0
  103. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/powder/masking.py +0 -0
  104. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/powder/py.typed +0 -0
  105. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/powder/smoothing.py +0 -0
  106. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/powder/transform.py +0 -0
  107. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/snspowder/powgen/__init__.py +0 -0
  108. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/snspowder/powgen/beamline.py +0 -0
  109. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/snspowder/powgen/calibration.py +0 -0
  110. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/snspowder/powgen/data.py +0 -0
  111. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/snspowder/powgen/instrument_view.py +0 -0
  112. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/snspowder/powgen/peaks.py +0 -0
  113. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/ess/snspowder/powgen/workflow.py +0 -0
  114. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/essdiffraction.egg-info/dependency_links.txt +0 -0
  115. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/src/essdiffraction.egg-info/top_level.txt +0 -0
  116. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/tests/dream/diagnostics_test.py +0 -0
  117. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/tests/dream/geant4_reduction_test.py +0 -0
  118. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/tests/dream/instrument_view_test.py +0 -0
  119. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/tests/dream/io/cif_test.py +0 -0
  120. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/tests/dream/io/geant4_test.py +0 -0
  121. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/tests/dream/io/nexus_test.py +0 -0
  122. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/tests/powder/conversion_test.py +0 -0
  123. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/tests/powder/correction_test.py +0 -0
  124. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/tests/powder/filtering_test.py +0 -0
  125. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/tests/powder/transform_test.py +0 -0
  126. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/tests/snspowder/powgen/load_test.py +0 -0
  127. {essdiffraction-24.11.0 → essdiffraction-25.2.0}/tests/snspowder/powgen/powgen_reduction_test.py +0 -0
@@ -1,8 +1,8 @@
1
1
  # Changes here will be overwritten by Copier; NEVER EDIT MANUALLY
2
- _commit: 75b9a8f
2
+ _commit: 5c4fd02
3
3
  _src_path: gh:scipp/copier_template
4
4
  description: Diffraction data reduction for the European Spallation Source
5
- max_python: '3.12'
5
+ max_python: '3.13'
6
6
  min_python: '3.10'
7
7
  namespace_package: ess
8
8
  nightly_deps: scipp,scippnexus,sciline,plopp,scippneutron,essreduce
@@ -10,4 +10,4 @@ orgname: scipp
10
10
  prettyname: ESSdiffraction
11
11
  projectname: essdiffraction
12
12
  related_projects: Scipp,ScippNexus,ScippNeutron,Sciline,Plopp,ESSreduce
13
- year: 2024
13
+ year: 2025
@@ -10,7 +10,7 @@ on:
10
10
  jobs:
11
11
  formatting:
12
12
  name: Formatting and static analysis
13
- runs-on: 'ubuntu-22.04'
13
+ runs-on: 'ubuntu-24.04'
14
14
  outputs:
15
15
  min_python: ${{ steps.vars.outputs.min_python }}
16
16
  min_tox_env: ${{ steps.vars.outputs.min_tox_env }}
@@ -19,15 +19,15 @@ jobs:
19
19
  - name: Get Python version for other CI jobs
20
20
  id: vars
21
21
  run: |
22
- echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT
23
- echo "min_tox_env=py$(cat .github/workflows/python-version-ci | sed 's/\.//g')" >> $GITHUB_OUTPUT
22
+ echo "min_python=$(< .github/workflows/python-version-ci)" >> "$GITHUB_OUTPUT"
23
+ echo "min_tox_env=py$(sed 's/\.//g' < .github/workflows/python-version-ci)" >> "$GITHUB_OUTPUT"
24
24
  - uses: actions/setup-python@v5
25
25
  with:
26
26
  python-version-file: '.github/workflows/python-version-ci'
27
27
  - uses: pre-commit/action@v3.0.1
28
28
  with:
29
29
  extra_args: --all-files
30
- - uses: pre-commit-ci/lite-action@v1.0.3
30
+ - uses: pre-commit-ci/lite-action@v1.1.0
31
31
  if: always()
32
32
  with:
33
33
  msg: Apply automatic formatting
@@ -37,7 +37,7 @@ jobs:
37
37
  needs: formatting
38
38
  strategy:
39
39
  matrix:
40
- os: ['ubuntu-22.04']
40
+ os: ['ubuntu-24.04']
41
41
  python:
42
42
  - version: '${{needs.formatting.outputs.min_python}}'
43
43
  tox-env: '${{needs.formatting.outputs.min_tox_env}}'
@@ -53,6 +53,6 @@ jobs:
53
53
  uses: ./.github/workflows/docs.yml
54
54
  with:
55
55
  publish: false
56
- linkcheck: ${{ contains(matrix.variant.os, 'ubuntu') && github.ref == 'refs/heads/main' }}
56
+ linkcheck: ${{ github.ref == 'refs/heads/main' }}
57
57
  branch: ${{ github.head_ref == '' && github.ref_name || github.head_ref }}
58
58
  secrets: inherit
@@ -41,7 +41,7 @@ env:
41
41
  jobs:
42
42
  docs:
43
43
  name: Build documentation
44
- runs-on: 'ubuntu-22.04'
44
+ runs-on: 'ubuntu-24.04'
45
45
  env:
46
46
  ESS_PROTECTED_FILESTORE_USERNAME: ${{ secrets.ESS_PROTECTED_FILESTORE_USERNAME }}
47
47
  ESS_PROTECTED_FILESTORE_PASSWORD: ${{ secrets.ESS_PROTECTED_FILESTORE_PASSWORD }}
@@ -58,7 +58,7 @@ jobs:
58
58
  python-version-file: '.github/workflows/python-version-ci'
59
59
  - run: python -m pip install --upgrade pip
60
60
  - run: python -m pip install -r requirements/ci.txt
61
- - run: tox -e releasedocs -- ${VERSION}
61
+ - run: tox -e releasedocs -- "${VERSION}"
62
62
  if: ${{ inputs.version != '' }}
63
63
  - run: tox -e docs
64
64
  if: ${{ inputs.version == '' }}
@@ -69,7 +69,7 @@ jobs:
69
69
  name: docs_html
70
70
  path: html/
71
71
 
72
- - uses: JamesIves/github-pages-deploy-action@v4.6.4
72
+ - uses: JamesIves/github-pages-deploy-action@v4.7.2
73
73
  if: ${{ inputs.publish }}
74
74
  with:
75
75
  branch: gh-pages
@@ -8,21 +8,21 @@ on:
8
8
  jobs:
9
9
  setup:
10
10
  name: Setup variables
11
- runs-on: 'ubuntu-22.04'
11
+ runs-on: 'ubuntu-24.04'
12
12
  outputs:
13
13
  min_python: ${{ steps.vars.outputs.min_python }}
14
14
  steps:
15
15
  - uses: actions/checkout@v4
16
16
  - name: Get Python version for other CI jobs
17
17
  id: vars
18
- run: echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT
18
+ run: echo "min_python=$(< .github/workflows/python-version-ci)" >> "$GITHUB_OUTPUT"
19
19
 
20
20
  tests:
21
21
  name: Tests
22
22
  needs: setup
23
23
  strategy:
24
24
  matrix:
25
- os: ['ubuntu-22.04']
25
+ os: ['ubuntu-24.04']
26
26
  python:
27
27
  - version: '${{needs.setup.outputs.min_python}}'
28
28
  tox-env: 'nightly'
@@ -8,7 +8,7 @@ on:
8
8
  jobs:
9
9
  setup:
10
10
  name: Setup variables
11
- runs-on: 'ubuntu-22.04'
11
+ runs-on: 'ubuntu-24.04'
12
12
  outputs:
13
13
  min_python: ${{ steps.vars.outputs.min_python }}
14
14
  release_tag: ${{ steps.release.outputs.release_tag }}
@@ -18,17 +18,17 @@ jobs:
18
18
  fetch-depth: 0 # history required so we can determine latest release tag
19
19
  - name: Get last release tag from git
20
20
  id: release
21
- run: echo "release_tag=$(git describe --tags --abbrev=0 --match '[0-9]*.[0-9]*.[0-9]*')" >> $GITHUB_OUTPUT
21
+ run: echo "release_tag=$(git describe --tags --abbrev=0 --match '[0-9]*.[0-9]*.[0-9]*')" >> "$GITHUB_OUTPUT"
22
22
  - name: Get Python version for other CI jobs
23
23
  id: vars
24
- run: echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT
24
+ run: echo "min_python=$(cat .github/workflows/python-version-ci)" >> "$GITHUB_OUTPUT"
25
25
 
26
26
  tests:
27
27
  name: Tests
28
28
  needs: setup
29
29
  strategy:
30
30
  matrix:
31
- os: ['ubuntu-22.04']
31
+ os: ['ubuntu-24.04']
32
32
  python:
33
33
  - version: '${{needs.setup.outputs.min_python}}'
34
34
  tox-env: 'nightly'
@@ -12,7 +12,7 @@ defaults:
12
12
  jobs:
13
13
  build_conda:
14
14
  name: Conda build
15
- runs-on: 'ubuntu-22.04'
15
+ runs-on: 'ubuntu-24.04'
16
16
 
17
17
  steps:
18
18
  - uses: actions/checkout@v4
@@ -35,7 +35,7 @@ jobs:
35
35
 
36
36
  build_wheels:
37
37
  name: Wheels
38
- runs-on: 'ubuntu-22.04'
38
+ runs-on: 'ubuntu-24.04'
39
39
 
40
40
  steps:
41
41
  - uses: actions/checkout@v4
@@ -61,7 +61,7 @@ jobs:
61
61
  upload_pypi:
62
62
  name: Deploy PyPI
63
63
  needs: [build_wheels, build_conda]
64
- runs-on: 'ubuntu-22.04'
64
+ runs-on: 'ubuntu-24.04'
65
65
  environment: release
66
66
  permissions:
67
67
  id-token: write
@@ -73,7 +73,7 @@ jobs:
73
73
  upload_conda:
74
74
  name: Deploy Conda
75
75
  needs: [build_wheels, build_conda]
76
- runs-on: 'ubuntu-22.04'
76
+ runs-on: 'ubuntu-24.04'
77
77
  if: github.event_name == 'release' && github.event.action == 'published'
78
78
 
79
79
  steps:
@@ -97,7 +97,7 @@ jobs:
97
97
  assets:
98
98
  name: Upload docs
99
99
  needs: docs
100
- runs-on: 'ubuntu-22.04'
100
+ runs-on: 'ubuntu-24.04'
101
101
  permissions:
102
102
  contents: write # This is needed so that the action can upload the asset
103
103
  steps:
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
  inputs:
6
6
  os-variant:
7
- default: 'ubuntu-22.04'
7
+ default: 'ubuntu-24.04'
8
8
  type: string
9
9
  python-version:
10
10
  type: string
@@ -23,7 +23,7 @@ on:
23
23
  workflow_call:
24
24
  inputs:
25
25
  os-variant:
26
- default: 'ubuntu-22.04'
26
+ default: 'ubuntu-24.04'
27
27
  type: string
28
28
  python-version:
29
29
  type: string
@@ -8,7 +8,7 @@ on:
8
8
  jobs:
9
9
  setup:
10
10
  name: Setup variables
11
- runs-on: 'ubuntu-22.04'
11
+ runs-on: 'ubuntu-24.04'
12
12
  outputs:
13
13
  min_python: ${{ steps.vars.outputs.min_python }}
14
14
  release_tag: ${{ steps.release.outputs.release_tag }}
@@ -18,17 +18,17 @@ jobs:
18
18
  fetch-depth: 0 # history required so we can determine latest release tag
19
19
  - name: Get last release tag from git
20
20
  id: release
21
- run: echo "release_tag=$(git describe --tags --abbrev=0 --match '[0-9]*.[0-9]*.[0-9]*')" >> $GITHUB_OUTPUT
21
+ run: echo "release_tag=$(git describe --tags --abbrev=0 --match '[0-9]*.[0-9]*.[0-9]*')" >> "$GITHUB_OUTPUT"
22
22
  - name: Get Python version for other CI jobs
23
23
  id: vars
24
- run: echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT
24
+ run: echo "min_python=$(cat .github/workflows/python-version-ci)" >> "$GITHUB_OUTPUT"
25
25
 
26
26
  tests:
27
27
  name: Tests
28
28
  needs: setup
29
29
  strategy:
30
30
  matrix:
31
- os: ['ubuntu-22.04']
31
+ os: ['ubuntu-24.04']
32
32
  python:
33
33
  - version: '${{needs.setup.outputs.min_python}}'
34
34
  tox-env: 'unpinned'
@@ -0,0 +1,42 @@
1
+ name: Windows and MacOS weekly tests
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ schedule:
6
+ - cron: '0 2 * * 1'
7
+
8
+ jobs:
9
+ pytox:
10
+ name: Python and Tox env
11
+ runs-on: 'ubuntu-24.04'
12
+ outputs:
13
+ min_python: ${{ steps.vars.outputs.min_python }}
14
+ min_tox_env: ${{ steps.vars.outputs.min_tox_env }}
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ - name: Get Python version for other CI jobs
18
+ id: vars
19
+ run: |
20
+ echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT
21
+ echo "min_tox_env=py$(cat .github/workflows/python-version-ci | sed 's/\.//g')" >> $GITHUB_OUTPUT
22
+ tests:
23
+ name: Tests
24
+ needs: pytox
25
+ strategy:
26
+ matrix:
27
+ os: ['macos-latest', 'windows-latest']
28
+ python:
29
+ - version: '${{needs.pytox.outputs.min_python}}'
30
+ tox-env: '${{needs.pytox.outputs.min_tox_env}}'
31
+ uses: ./.github/workflows/test.yml
32
+ with:
33
+ os-variant: ${{ matrix.os }}
34
+ python-version: ${{ matrix.python.version }}
35
+ tox-env: ${{ matrix.python.tox-env }}
36
+
37
+ docs:
38
+ needs: tests
39
+ uses: ./.github/workflows/docs.yml
40
+ with:
41
+ publish: false
42
+ branch: ${{ github.head_ref == '' && github.ref_name || github.head_ref }}
@@ -4,7 +4,8 @@ dist
4
4
  html
5
5
  .tox
6
6
  *.egg-info
7
- uv.lock # we lock dependencies with pip-compile, not uv
7
+ # we lock dependencies with pip-compile, not uv
8
+ uv.lock
8
9
 
9
10
  *.sw?
10
11
 
@@ -42,3 +43,5 @@ docs/generated/
42
43
  *.rcif
43
44
  *.ort
44
45
  *.zip
46
+ *.sqw
47
+ *.nxspe
@@ -1,8 +1,10 @@
1
1
  repos:
2
2
  - repo: https://github.com/pre-commit/pre-commit-hooks
3
- rev: v4.6.0
3
+ rev: v5.0.0
4
4
  hooks:
5
5
  - id: check-added-large-files
6
+ - id: check-case-conflict
7
+ - id: check-illegal-windows-names
6
8
  - id: check-json
7
9
  exclude: asv.conf.json
8
10
  - id: check-merge-conflict
@@ -21,7 +23,7 @@ repos:
21
23
  args: [ "--drop-empty-cells",
22
24
  "--extra-keys 'metadata.language_info.version cell.metadata.jp-MarkdownHeadingCollapsed cell.metadata.pycharm'" ]
23
25
  - repo: https://github.com/astral-sh/ruff-pre-commit
24
- rev: v0.6.2
26
+ rev: v0.8.0
25
27
  hooks:
26
28
  - id: ruff
27
29
  args: [ --fix ]
@@ -44,3 +46,9 @@ repos:
44
46
  - id: rst-directive-colons
45
47
  - id: rst-inline-touching-normal
46
48
  - id: text-unicode-replacement-char
49
+ - repo: https://github.com/rhysd/actionlint
50
+ rev: v1.7.3
51
+ hooks:
52
+ - id: actionlint
53
+ # Disable because of false-positive SC2046
54
+ args: ["-shellcheck="]
@@ -1,6 +1,6 @@
1
1
  BSD 3-Clause License
2
2
 
3
- Copyright (c) 2024, Scipp contributors (https://github.com/scipp)
3
+ Copyright (c) 2025, Scipp contributors (https://github.com/scipp)
4
4
  All rights reserved.
5
5
 
6
6
  Redistribution and use in source and binary forms, with or without
@@ -1,11 +1,11 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: essdiffraction
3
- Version: 24.11.0
3
+ Version: 25.2.0
4
4
  Summary: Diffraction data reduction for the European Spallation Source
5
5
  Author: Scipp contributors
6
6
  License: BSD 3-Clause License
7
7
 
8
- Copyright (c) 2024, Scipp contributors (https://github.com/scipp)
8
+ Copyright (c) 2025, Scipp contributors (https://github.com/scipp)
9
9
  All rights reserved.
10
10
 
11
11
  Redistribution and use in source and binary forms, with or without
@@ -45,13 +45,14 @@ Classifier: Programming Language :: Python :: 3 :: Only
45
45
  Classifier: Programming Language :: Python :: 3.10
46
46
  Classifier: Programming Language :: Python :: 3.11
47
47
  Classifier: Programming Language :: Python :: 3.12
48
+ Classifier: Programming Language :: Python :: 3.13
48
49
  Classifier: Topic :: Scientific/Engineering
49
50
  Classifier: Typing :: Typed
50
51
  Requires-Python: >=3.10
51
52
  Description-Content-Type: text/markdown
52
53
  License-File: LICENSE
53
54
  Requires-Dist: dask
54
- Requires-Dist: essreduce>=24.11.3
55
+ Requires-Dist: essreduce>=24.12.0
55
56
  Requires-Dist: graphviz
56
57
  Requires-Dist: numpy
57
58
  Requires-Dist: plopp
@@ -1,5 +1,5 @@
1
1
  # SPDX-License-Identifier: BSD-3-Clause
2
- # Copyright (c) 2024 Scipp contributors (https://github.com/scipp)
2
+ # Copyright (c) 2025 Scipp contributors (https://github.com/scipp)
3
3
 
4
4
  import doctest
5
5
  import os
@@ -14,9 +14,9 @@ sys.path.insert(0, os.path.abspath("."))
14
14
  logger = logging.getLogger(__name__)
15
15
 
16
16
  # General information about the project.
17
- project = "ESSdiffraction"
18
- copyright = "2024 Scipp contributors"
19
- author = "Scipp contributors"
17
+ project = 'ESSdiffraction'
18
+ copyright = '2025 Scipp contributors'
19
+ author = 'Scipp contributors'
20
20
 
21
21
  html_show_sourcelink = True
22
22
 
@@ -52,7 +52,7 @@
52
52
  "metadata": {},
53
53
  "source": [
54
54
  "We then need to set the missing parameters which are specific to each experiment\n",
55
- "(the keys are types defined in [essdiffraction.powder.types](../generated/modules/ess.diffraction.powder.types.rst)):"
55
+ "(the keys are types defined in [essdiffraction.powder.types](../../generated/modules/ess.powder.types.rst)):"
56
56
  ]
57
57
  },
58
58
  {
@@ -7,7 +7,7 @@
7
7
  "source": [
8
8
  "# Workflow widgets example\n",
9
9
  "\n",
10
- "This notebook illustrates how we can use ESSreduce’s [workflow widgets](https://scipp.github.io/essreduce/user-guide/widget.html) to generate a graphical interface for running the LoKI tutorial workflow.\n",
10
+ "This notebook illustrates how we can use ESSreduce’s [workflow widgets](https://scipp.github.io/essreduce/user-guide/widget.html) to generate a graphical interface for running the [DREAM GEANT4 workflow](./dream-data-reduction.rst).\n",
11
11
  "\n",
12
12
  "## Initializing the GUI\n",
13
13
  "\n",
@@ -39,6 +39,7 @@
39
39
  "id": "2",
40
40
  "metadata": {
41
41
  "editable": true,
42
+ "nbsphinx": "hidden",
42
43
  "slideshow": {
43
44
  "slide_type": ""
44
45
  },
@@ -65,7 +66,7 @@
65
66
  "# Set parameters\n",
66
67
  "pbox._input_widgets[Filename[SampleRun]].children[0].value = dream.data.simulated_diamond_sample()\n",
67
68
  "pbox._input_widgets[Filename[VanadiumRun]].children[0].value = dream.data.simulated_vanadium_sample()\n",
68
- "pbox._input_widgets[DspacingBins].children[0].fields[\"stop\"].value = 2.3434\n",
69
+ "pbox._input_widgets[DspacingBins].fields[\"stop\"].value = 2.3434\n",
69
70
  "# Run the workflow\n",
70
71
  "rbox = wfw.result_box\n",
71
72
  "rbox.run_button.click()"
@@ -132,7 +133,8 @@
132
133
  "mimetype": "text/x-python",
133
134
  "name": "python",
134
135
  "nbconvert_exporter": "python",
135
- "pygments_lexer": "ipython3"
136
+ "pygments_lexer": "ipython3",
137
+ "version": "3.10.14"
136
138
  }
137
139
  },
138
140
  "nbformat": 4,
@@ -60,7 +60,7 @@
60
60
  "metadata": {},
61
61
  "source": [
62
62
  "We then need to set the missing parameters which are specific to each experiment\n",
63
- "(the keys are types defined in [essdiffraction.powder.types](../generated/modules/ess.diffraction.powder.types.rst)):"
63
+ "(the keys are types defined in [essdiffraction.powder.types](../../generated/modules/ess.powder.types.rst)):"
64
64
  ]
65
65
  },
66
66
  {
@@ -21,6 +21,7 @@ classifiers = [
21
21
  "Programming Language :: Python :: 3.10",
22
22
  "Programming Language :: Python :: 3.11",
23
23
  "Programming Language :: Python :: 3.12",
24
+ "Programming Language :: Python :: 3.13",
24
25
  "Topic :: Scientific/Engineering",
25
26
  "Typing :: Typed",
26
27
  ]
@@ -31,7 +32,7 @@ requires-python = ">=3.10"
31
32
  # Make sure to list one dependency per line.
32
33
  dependencies = [
33
34
  "dask",
34
- "essreduce>=24.11.3",
35
+ "essreduce>=24.12.0",
35
36
  "graphviz",
36
37
  "numpy",
37
38
  "plopp",
@@ -90,13 +91,12 @@ ignore = [
90
91
  # https://docs.astral.sh/ruff/formatter/#conflicting-lint-rules
91
92
  "COM812", "COM819", "D206", "D300", "E111", "E114", "E117", "ISC001", "ISC002", "Q000", "Q001", "Q002", "Q003", "W191",
92
93
  ]
93
- fixable = ["B010", "I001", "PT001"]
94
+ fixable = ["B010", "I001", "PT001", "RUF022"]
94
95
  isort.known-first-party = ["ess.diffraction", "ess.dream", "ess.powder"]
95
96
  pydocstyle.convention = "numpy"
96
97
 
97
98
  [tool.ruff.lint.per-file-ignores]
98
99
  # those files have an increased risk of relying on import order
99
- "__init__.py" = ["I"]
100
100
  "tests/*" = [
101
101
  "S101", # asserts are fine in tests
102
102
  "B018", # 'useless expressions' are ok because some tests just check for exceptions
@@ -3,7 +3,7 @@
3
3
  # --- END OF CUSTOM SECTION ---
4
4
  # The following was generated by 'tox -e deps', DO NOT EDIT MANUALLY!
5
5
  dask
6
- essreduce>=24.11.3
6
+ essreduce>=24.12.0
7
7
  graphviz
8
8
  numpy
9
9
  plopp
@@ -1,15 +1,15 @@
1
- # SHA1:6b89155439eb051cb7a3ca3e31678c9fa96a6f5a
1
+ # SHA1:1c545a5dfb8b66d23509534f3ddf41f94ead839c
2
2
  #
3
3
  # This file is autogenerated by pip-compile-multi
4
4
  # To update, run:
5
5
  #
6
6
  # pip-compile-multi
7
7
  #
8
- asttokens==2.4.1
8
+ asttokens==3.0.0
9
9
  # via stack-data
10
- click==8.1.7
10
+ click==8.1.8
11
11
  # via dask
12
- cloudpickle==3.1.0
12
+ cloudpickle==3.1.1
13
13
  # via dask
14
14
  comm==0.2.2
15
15
  # via ipywidgets
@@ -19,19 +19,19 @@ cyclebane==24.10.0
19
19
  # via sciline
20
20
  cycler==0.12.1
21
21
  # via matplotlib
22
- dask==2024.11.2
22
+ dask==2025.1.0
23
23
  # via -r base.in
24
24
  decorator==5.1.1
25
25
  # via ipython
26
- essreduce==24.11.3
26
+ essreduce==25.2.0
27
27
  # via -r base.in
28
28
  exceptiongroup==1.2.2
29
29
  # via ipython
30
- executing==2.1.0
30
+ executing==2.2.0
31
31
  # via stack-data
32
- fonttools==4.55.0
32
+ fonttools==4.56.0
33
33
  # via matplotlib
34
- fsspec==2024.10.0
34
+ fsspec==2025.2.0
35
35
  # via dask
36
36
  graphviz==0.20.3
37
37
  # via -r base.in
@@ -39,11 +39,11 @@ h5py==3.12.1
39
39
  # via
40
40
  # scippneutron
41
41
  # scippnexus
42
- importlib-metadata==8.5.0
42
+ importlib-metadata==8.6.1
43
43
  # via dask
44
44
  ipydatawidgets==4.3.5
45
45
  # via pythreejs
46
- ipython==8.29.0
46
+ ipython==8.32.0
47
47
  # via ipywidgets
48
48
  ipywidgets==8.1.5
49
49
  # via
@@ -53,11 +53,11 @@ jedi==0.19.2
53
53
  # via ipython
54
54
  jupyterlab-widgets==3.0.13
55
55
  # via ipywidgets
56
- kiwisolver==1.4.7
56
+ kiwisolver==1.4.8
57
57
  # via matplotlib
58
58
  locket==1.0.0
59
59
  # via partd
60
- matplotlib==3.9.2
60
+ matplotlib==3.10.0
61
61
  # via
62
62
  # mpltoolbox
63
63
  # plopp
@@ -67,7 +67,7 @@ mpltoolbox==24.5.1
67
67
  # via scippneutron
68
68
  networkx==3.4.2
69
69
  # via cyclebane
70
- numpy==2.1.3
70
+ numpy==2.2.2
71
71
  # via
72
72
  # -r base.in
73
73
  # contourpy
@@ -89,21 +89,21 @@ partd==1.4.2
89
89
  # via dask
90
90
  pexpect==4.9.0
91
91
  # via ipython
92
- pillow==11.0.0
92
+ pillow==11.1.0
93
93
  # via matplotlib
94
94
  plopp==24.10.0
95
95
  # via
96
96
  # -r base.in
97
97
  # scippneutron
98
- prompt-toolkit==3.0.48
98
+ prompt-toolkit==3.0.50
99
99
  # via ipython
100
100
  ptyprocess==0.7.0
101
101
  # via pexpect
102
102
  pure-eval==0.2.3
103
103
  # via stack-data
104
- pygments==2.18.0
104
+ pygments==2.19.1
105
105
  # via ipython
106
- pyparsing==3.2.0
106
+ pyparsing==3.2.1
107
107
  # via matplotlib
108
108
  python-dateutil==2.9.0.post0
109
109
  # via
@@ -117,13 +117,13 @@ sciline==24.10.0
117
117
  # via
118
118
  # -r base.in
119
119
  # essreduce
120
- scipp==24.11.1
120
+ scipp==25.2.0
121
121
  # via
122
122
  # -r base.in
123
123
  # essreduce
124
124
  # scippneutron
125
125
  # scippnexus
126
- scippneutron==24.11.0
126
+ scippneutron==25.1.0
127
127
  # via
128
128
  # -r base.in
129
129
  # essreduce
@@ -132,14 +132,12 @@ scippnexus==24.11.1
132
132
  # -r base.in
133
133
  # essreduce
134
134
  # scippneutron
135
- scipy==1.14.1
135
+ scipy==1.15.1
136
136
  # via
137
137
  # scippneutron
138
138
  # scippnexus
139
- six==1.16.0
140
- # via
141
- # asttokens
142
- # python-dateutil
139
+ six==1.17.0
140
+ # via python-dateutil
143
141
  stack-data==0.6.3
144
142
  # via ipython
145
143
  toolz==1.0.0
@@ -5,9 +5,9 @@
5
5
  #
6
6
  # pip-compile-multi
7
7
  #
8
- certifi==2024.8.30
8
+ certifi==2025.1.31
9
9
  # via requests
10
- charset-normalizer==3.4.0
10
+ charset-normalizer==3.4.1
11
11
  # via requests
12
12
  exceptiongroup==1.2.2
13
13
  # via pytest
@@ -15,7 +15,7 @@ idna==3.10
15
15
  # via requests
16
16
  iniconfig==2.0.0
17
17
  # via pytest
18
- numpy==2.1.3
18
+ numpy==2.2.2
19
19
  # via pandas
20
20
  packaging==24.2
21
21
  # via
@@ -29,19 +29,19 @@ pluggy==1.5.0
29
29
  # via pytest
30
30
  pooch==1.8.2
31
31
  # via -r basetest.in
32
- pytest==8.3.3
32
+ pytest==8.3.4
33
33
  # via -r basetest.in
34
34
  python-dateutil==2.9.0.post0
35
35
  # via pandas
36
- pytz==2024.2
36
+ pytz==2025.1
37
37
  # via pandas
38
38
  requests==2.32.3
39
39
  # via pooch
40
- six==1.16.0
40
+ six==1.17.0
41
41
  # via python-dateutil
42
42
  tomli==2.2.1
43
43
  # via pytest
44
- tzdata==2024.2
44
+ tzdata==2025.1
45
45
  # via pandas
46
- urllib3==2.2.3
46
+ urllib3==2.3.0
47
47
  # via requests