essdiffraction 24.11.0__tar.gz → 25.2.1__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.
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/.copier-answers.yml +4 -4
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/.github/workflows/ci.yml +6 -6
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/.github/workflows/docs.yml +3 -3
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/.github/workflows/nightly_at_main.yml +3 -3
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/.github/workflows/nightly_at_release.yml +4 -4
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/.github/workflows/release.yml +5 -5
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/.github/workflows/test.yml +2 -2
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/.github/workflows/unpinned.yml +4 -4
- essdiffraction-25.2.1/.github/workflows/weekly_windows_macos.yml +42 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/.gitignore +4 -1
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/.pre-commit-config.yaml +10 -2
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/LICENSE +1 -1
- {essdiffraction-24.11.0/src/essdiffraction.egg-info → essdiffraction-25.2.1}/PKG-INFO +7 -5
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/api-reference/index.md +1 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/conf.py +4 -4
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/user-guide/dream/dream-data-reduction.ipynb +27 -51
- essdiffraction-25.2.1/docs/user-guide/dream/dream-visualize-absorption.ipynb +225 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/user-guide/dream/index.md +1 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/user-guide/dream/workflow-widget-dream.ipynb +5 -3
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/user-guide/sns-instruments/POWGEN_data_reduction.ipynb +4 -5
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/pyproject.toml +5 -4
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/base.in +3 -2
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/base.txt +48 -31
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/basetest.txt +8 -12
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/ci.txt +11 -17
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/dev.txt +11 -19
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/docs.txt +29 -32
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/make_base.py +12 -7
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/mypy.txt +1 -1
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/nightly.in +9 -2
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/nightly.txt +100 -23
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/static.txt +4 -4
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/wheels.txt +0 -2
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/diffraction/__init__.py +2 -2
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/dream/__init__.py +3 -1
- essdiffraction-25.2.1/src/ess/dream/beamline.py +256 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/dream/data.py +51 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/dream/io/__init__.py +2 -2
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/dream/io/cif.py +23 -6
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/dream/io/geant4.py +110 -12
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/dream/io/nexus.py +4 -1
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/dream/parameters.py +4 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/dream/workflow.py +20 -2
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/powder/conversion.py +101 -5
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/powder/correction.py +3 -3
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/powder/filtering.py +2 -2
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/powder/types.py +51 -4
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/snspowder/powgen/data.py +4 -4
- {essdiffraction-24.11.0 → essdiffraction-25.2.1/src/essdiffraction.egg-info}/PKG-INFO +7 -5
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/essdiffraction.egg-info/SOURCES.txt +5 -1
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/essdiffraction.egg-info/requires.txt +3 -2
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/tests/dream/geant4_reduction_test.py +41 -18
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/tests/dream/io/cif_test.py +24 -4
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/tests/package_test.py +2 -2
- essdiffraction-25.2.1/tools/dream-make-tof-lookup-table.ipynb +147 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/tox.ini +5 -2
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/.copier-answers.ess.yml +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/.github/ISSUE_TEMPLATE/blank.md +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/.github/ISSUE_TEMPLATE/high-level-requirement.yml +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/.github/dependabot.yml +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/.github/workflows/python-version-ci +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/.python-version +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/CODE_OF_CONDUCT.md +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/CONTRIBUTING.md +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/MANIFEST.in +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/README.md +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/conda/meta.yaml +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/_static/anaconda-icon.js +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/_static/favicon.svg +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/_static/logo-dark.svg +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/_static/logo.svg +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/_templates/class-template.rst +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/_templates/doc_version.html +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/_templates/module-template.rst +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/about/bibliography.rst +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/about/index.md +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/bibliography.bib +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/developer/coding-conventions.md +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/developer/dependency-management.md +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/developer/getting-started.md +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/developer/index.md +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/index.md +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/user-guide/dream/dream-detector-diagnostics.ipynb +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/user-guide/dream/dream-instrument-view.ipynb +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/user-guide/index.md +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/user-guide/sns-instruments/index.md +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/user-guide/sns-instruments/preprocess_files.ipynb +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/user-guide/sns-instruments/vanadium_processing.ipynb +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/basetest.in +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/ci.in +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/dev.in +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/docs.in +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/mypy.in +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/static.in +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/test.in +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/test.txt +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/requirements/wheels.in +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/resources/logo.svg +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/setup.cfg +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/diffraction/py.typed +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/dream/diagnostics.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/dream/instrument_view.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/dream/py.typed +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/powder/__init__.py +3 -3
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/powder/_util.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/powder/calibration.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/powder/grouping.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/powder/logging.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/powder/masking.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/powder/py.typed +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/powder/smoothing.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/powder/transform.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/snspowder/powgen/__init__.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/snspowder/powgen/beamline.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/snspowder/powgen/calibration.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/snspowder/powgen/instrument_view.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/snspowder/powgen/peaks.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/ess/snspowder/powgen/workflow.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/essdiffraction.egg-info/dependency_links.txt +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/src/essdiffraction.egg-info/top_level.txt +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/tests/dream/diagnostics_test.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/tests/dream/instrument_view_test.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/tests/dream/io/geant4_test.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/tests/dream/io/nexus_test.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/tests/powder/conversion_test.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/tests/powder/correction_test.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/tests/powder/filtering_test.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/tests/powder/transform_test.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/tests/snspowder/powgen/load_test.py +0 -0
- {essdiffraction-24.11.0 → essdiffraction-25.2.1}/tests/snspowder/powgen/powgen_reduction_test.py +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY
|
|
2
|
-
_commit:
|
|
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.
|
|
5
|
+
max_python: '3.13'
|
|
6
6
|
min_python: '3.10'
|
|
7
7
|
namespace_package: ess
|
|
8
|
-
nightly_deps: scipp,scippnexus,sciline,plopp,scippneutron,essreduce
|
|
8
|
+
nightly_deps: scipp,scippnexus,sciline,plopp,scippneutron,essreduce,tof
|
|
9
9
|
orgname: scipp
|
|
10
10
|
prettyname: ESSdiffraction
|
|
11
11
|
projectname: essdiffraction
|
|
12
12
|
related_projects: Scipp,ScippNexus,ScippNeutron,Sciline,Plopp,ESSreduce
|
|
13
|
-
year:
|
|
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-
|
|
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=$(
|
|
23
|
-
echo "min_tox_env=py$(
|
|
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
|
|
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-
|
|
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: ${{
|
|
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-
|
|
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.
|
|
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-
|
|
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=$(
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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 }}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
repos:
|
|
2
2
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
-
rev:
|
|
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.
|
|
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,11 +1,11 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: essdiffraction
|
|
3
|
-
Version:
|
|
3
|
+
Version: 25.2.1
|
|
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)
|
|
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,21 +45,23 @@ 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>=
|
|
55
|
+
Requires-Dist: essreduce>=25.02.4
|
|
55
56
|
Requires-Dist: graphviz
|
|
56
57
|
Requires-Dist: numpy
|
|
57
58
|
Requires-Dist: plopp
|
|
58
59
|
Requires-Dist: pythreejs
|
|
59
60
|
Requires-Dist: sciline>=24.06.0
|
|
60
61
|
Requires-Dist: scipp>=24.09.1
|
|
61
|
-
Requires-Dist: scippneutron>=
|
|
62
|
+
Requires-Dist: scippneutron>=25.02.0
|
|
62
63
|
Requires-Dist: scippnexus>=23.12.0
|
|
64
|
+
Requires-Dist: tof>=25.01.2
|
|
63
65
|
Provides-Extra: test
|
|
64
66
|
Requires-Dist: pandas; extra == "test"
|
|
65
67
|
Requires-Dist: pooch; extra == "test"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
-
# Copyright (c)
|
|
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 =
|
|
18
|
-
copyright =
|
|
19
|
-
author =
|
|
17
|
+
project = 'ESSdiffraction'
|
|
18
|
+
copyright = '2025 Scipp contributors'
|
|
19
|
+
author = 'Scipp contributors'
|
|
20
20
|
|
|
21
21
|
html_show_sourcelink = True
|
|
22
22
|
|
{essdiffraction-24.11.0 → essdiffraction-25.2.1}/docs/user-guide/dream/dream-data-reduction.ipynb
RENAMED
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
"outputs": [],
|
|
21
21
|
"source": [
|
|
22
22
|
"import scipp as sc\n",
|
|
23
|
-
"\n",
|
|
24
23
|
"from ess import dream, powder\n",
|
|
25
24
|
"import ess.dream.data # noqa: F401\n",
|
|
26
25
|
"from ess.powder.types import *"
|
|
@@ -52,7 +51,7 @@
|
|
|
52
51
|
"metadata": {},
|
|
53
52
|
"source": [
|
|
54
53
|
"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](
|
|
54
|
+
"(the keys are types defined in [essdiffraction.powder.types](../../generated/modules/ess.powder.types.rst)):"
|
|
56
55
|
]
|
|
57
56
|
},
|
|
58
57
|
{
|
|
@@ -71,14 +70,14 @@
|
|
|
71
70
|
"workflow[UncertaintyBroadcastMode] = UncertaintyBroadcastMode.drop\n",
|
|
72
71
|
"# Edges for binning in d-spacing\n",
|
|
73
72
|
"workflow[DspacingBins] = sc.linspace(\"dspacing\", 0.0, 2.3434, 201, unit=\"angstrom\")\n",
|
|
74
|
-
"#
|
|
75
|
-
"workflow[TofMask] =
|
|
76
|
-
" x > sc.scalar(86e6, unit=\"ns\")\n",
|
|
77
|
-
")\n",
|
|
73
|
+
"# Empty masks by default\n",
|
|
74
|
+
"workflow[TofMask] = None\n",
|
|
78
75
|
"workflow[TwoThetaMask] = None\n",
|
|
79
76
|
"workflow[WavelengthMask] = None\n",
|
|
80
77
|
"# No pixel masks\n",
|
|
81
|
-
"workflow = powder.with_pixel_mask_filenames(workflow, [])"
|
|
78
|
+
"workflow = powder.with_pixel_mask_filenames(workflow, [])\n",
|
|
79
|
+
"# Time-of-flight lookup table\n",
|
|
80
|
+
"workflow[TimeOfFlightLookupTableFilename] = dream.data.tof_lookup_table_high_flux()"
|
|
82
81
|
]
|
|
83
82
|
},
|
|
84
83
|
{
|
|
@@ -86,7 +85,7 @@
|
|
|
86
85
|
"id": "6",
|
|
87
86
|
"metadata": {},
|
|
88
87
|
"source": [
|
|
89
|
-
"## Use the workflow\n",
|
|
88
|
+
"## Use the reduction workflow\n",
|
|
90
89
|
"\n",
|
|
91
90
|
"We can visualize the graph for computing the final normalized result for intensity as a function of time-of-flight:"
|
|
92
91
|
]
|
|
@@ -152,7 +151,7 @@
|
|
|
152
151
|
"in the documentation of ESSdiffraction.\n",
|
|
153
152
|
"See https://scipp.github.io/essdiffraction/\n",
|
|
154
153
|
"\"\"\"\n",
|
|
155
|
-
"cif_data.save(
|
|
154
|
+
"cif_data.save(\"reduced.cif\")"
|
|
156
155
|
]
|
|
157
156
|
},
|
|
158
157
|
{
|
|
@@ -192,9 +191,9 @@
|
|
|
192
191
|
"outputs": [],
|
|
193
192
|
"source": [
|
|
194
193
|
"two_theta = sc.linspace(\"two_theta\", 0.8, 2.4, 301, unit=\"rad\")\n",
|
|
195
|
-
"intermediates[MaskedData[SampleRun]].hist(
|
|
196
|
-
"
|
|
197
|
-
")"
|
|
194
|
+
"intermediates[MaskedData[SampleRun]].hist(\n",
|
|
195
|
+
" two_theta=two_theta, wavelength=300\n",
|
|
196
|
+
").plot(norm=\"log\")"
|
|
198
197
|
]
|
|
199
198
|
},
|
|
200
199
|
{
|
|
@@ -216,7 +215,7 @@
|
|
|
216
215
|
"outputs": [],
|
|
217
216
|
"source": [
|
|
218
217
|
"workflow[TwoThetaBins] = sc.linspace(\n",
|
|
219
|
-
" dim=\"two_theta\", unit=\"rad\", start=0.8, stop=2.4, num=
|
|
218
|
+
" dim=\"two_theta\", unit=\"rad\", start=0.8, stop=2.4, num=201\n",
|
|
220
219
|
")"
|
|
221
220
|
]
|
|
222
221
|
},
|
|
@@ -237,31 +236,13 @@
|
|
|
237
236
|
"id": "19",
|
|
238
237
|
"metadata": {},
|
|
239
238
|
"outputs": [],
|
|
240
|
-
"source": [
|
|
241
|
-
"angle = sc.midpoints(grouped_dspacing.coords[\"two_theta\"])\n",
|
|
242
|
-
"sc.plot(\n",
|
|
243
|
-
" {\n",
|
|
244
|
-
" f\"{angle[group].value:.3f} {angle[group].unit}\": grouped_dspacing[\n",
|
|
245
|
-
" \"two_theta\", group\n",
|
|
246
|
-
" ].hist()\n",
|
|
247
|
-
" for group in range(2, 6)\n",
|
|
248
|
-
" }\n",
|
|
249
|
-
")"
|
|
250
|
-
]
|
|
251
|
-
},
|
|
252
|
-
{
|
|
253
|
-
"cell_type": "code",
|
|
254
|
-
"execution_count": null,
|
|
255
|
-
"id": "20",
|
|
256
|
-
"metadata": {},
|
|
257
|
-
"outputs": [],
|
|
258
239
|
"source": [
|
|
259
240
|
"grouped_dspacing.hist().plot(norm=\"log\")"
|
|
260
241
|
]
|
|
261
242
|
},
|
|
262
243
|
{
|
|
263
244
|
"cell_type": "markdown",
|
|
264
|
-
"id": "
|
|
245
|
+
"id": "20",
|
|
265
246
|
"metadata": {},
|
|
266
247
|
"source": [
|
|
267
248
|
"## Normalizing by monitor\n",
|
|
@@ -283,7 +264,7 @@
|
|
|
283
264
|
{
|
|
284
265
|
"cell_type": "code",
|
|
285
266
|
"execution_count": null,
|
|
286
|
-
"id": "
|
|
267
|
+
"id": "21",
|
|
287
268
|
"metadata": {},
|
|
288
269
|
"outputs": [],
|
|
289
270
|
"source": [
|
|
@@ -292,7 +273,7 @@
|
|
|
292
273
|
},
|
|
293
274
|
{
|
|
294
275
|
"cell_type": "markdown",
|
|
295
|
-
"id": "
|
|
276
|
+
"id": "22",
|
|
296
277
|
"metadata": {},
|
|
297
278
|
"source": [
|
|
298
279
|
"In addition to the parameters used before, we also need to provide filenames for monitor data and a position of the monitor as that is not saved in the simulation files:"
|
|
@@ -301,14 +282,14 @@
|
|
|
301
282
|
{
|
|
302
283
|
"cell_type": "code",
|
|
303
284
|
"execution_count": null,
|
|
304
|
-
"id": "
|
|
285
|
+
"id": "23",
|
|
305
286
|
"metadata": {},
|
|
306
287
|
"outputs": [],
|
|
307
288
|
"source": [
|
|
308
289
|
"workflow[MonitorFilename[SampleRun]] = dream.data.simulated_monitor_diamond_sample()\n",
|
|
309
290
|
"workflow[MonitorFilename[VanadiumRun]] = dream.data.simulated_monitor_vanadium_sample()\n",
|
|
310
291
|
"workflow[MonitorFilename[BackgroundRun]] = dream.data.simulated_monitor_empty_can()\n",
|
|
311
|
-
"workflow[CaveMonitorPosition] = sc.vector([0.0, 0.0, -4220.0], unit
|
|
292
|
+
"workflow[CaveMonitorPosition] = sc.vector([0.0, 0.0, -4220.0], unit=\"mm\")\n",
|
|
312
293
|
"\n",
|
|
313
294
|
"# These are the same as at the top of the notebook:\n",
|
|
314
295
|
"workflow[Filename[SampleRun]] = dream.data.simulated_diamond_sample()\n",
|
|
@@ -318,18 +299,17 @@
|
|
|
318
299
|
"workflow[NeXusDetectorName] = \"mantle\"\n",
|
|
319
300
|
"workflow[UncertaintyBroadcastMode] = UncertaintyBroadcastMode.drop\n",
|
|
320
301
|
"workflow[DspacingBins] = sc.linspace(\"dspacing\", 0.0, 2.3434, 201, unit=\"angstrom\")\n",
|
|
321
|
-
"workflow[TofMask] =
|
|
322
|
-
" x > sc.scalar(86e6, unit=\"ns\")\n",
|
|
323
|
-
")\n",
|
|
302
|
+
"workflow[TofMask] = None\n",
|
|
324
303
|
"workflow[TwoThetaMask] = None\n",
|
|
325
304
|
"workflow[WavelengthMask] = None\n",
|
|
326
|
-
"workflow = powder.with_pixel_mask_filenames(workflow, [])"
|
|
305
|
+
"workflow = powder.with_pixel_mask_filenames(workflow, [])\n",
|
|
306
|
+
"workflow[TimeOfFlightLookupTableFilename] = dream.data.tof_lookup_table_high_flux()"
|
|
327
307
|
]
|
|
328
308
|
},
|
|
329
309
|
{
|
|
330
310
|
"cell_type": "code",
|
|
331
311
|
"execution_count": null,
|
|
332
|
-
"id": "
|
|
312
|
+
"id": "24",
|
|
333
313
|
"metadata": {},
|
|
334
314
|
"outputs": [],
|
|
335
315
|
"source": [
|
|
@@ -339,7 +319,7 @@
|
|
|
339
319
|
{
|
|
340
320
|
"cell_type": "code",
|
|
341
321
|
"execution_count": null,
|
|
342
|
-
"id": "
|
|
322
|
+
"id": "25",
|
|
343
323
|
"metadata": {},
|
|
344
324
|
"outputs": [],
|
|
345
325
|
"source": [
|
|
@@ -352,7 +332,7 @@
|
|
|
352
332
|
{
|
|
353
333
|
"cell_type": "code",
|
|
354
334
|
"execution_count": null,
|
|
355
|
-
"id": "
|
|
335
|
+
"id": "26",
|
|
356
336
|
"metadata": {},
|
|
357
337
|
"outputs": [],
|
|
358
338
|
"source": [
|
|
@@ -361,7 +341,7 @@
|
|
|
361
341
|
},
|
|
362
342
|
{
|
|
363
343
|
"cell_type": "markdown",
|
|
364
|
-
"id": "
|
|
344
|
+
"id": "27",
|
|
365
345
|
"metadata": {},
|
|
366
346
|
"source": [
|
|
367
347
|
"Comparing the final, normalized result shows that it agrees with the data that was normalized by proton-charge:"
|
|
@@ -370,14 +350,11 @@
|
|
|
370
350
|
{
|
|
371
351
|
"cell_type": "code",
|
|
372
352
|
"execution_count": null,
|
|
373
|
-
"id": "
|
|
353
|
+
"id": "28",
|
|
374
354
|
"metadata": {},
|
|
375
355
|
"outputs": [],
|
|
376
356
|
"source": [
|
|
377
|
-
"sc.plot({\
|
|
378
|
-
" 'By proton charge': histogram,\n",
|
|
379
|
-
" 'By monitor': normalized_by_monitor.hist()\n",
|
|
380
|
-
"})"
|
|
357
|
+
"sc.plot({\"By proton charge\": histogram, \"By monitor\": normalized_by_monitor.hist()})"
|
|
381
358
|
]
|
|
382
359
|
}
|
|
383
360
|
],
|
|
@@ -396,8 +373,7 @@
|
|
|
396
373
|
"mimetype": "text/x-python",
|
|
397
374
|
"name": "python",
|
|
398
375
|
"nbconvert_exporter": "python",
|
|
399
|
-
"pygments_lexer": "ipython3"
|
|
400
|
-
"version": "3.10.14"
|
|
376
|
+
"pygments_lexer": "ipython3"
|
|
401
377
|
}
|
|
402
378
|
},
|
|
403
379
|
"nbformat": 4,
|