diff --git a/.copier-answers.yml b/.copier-answers.yml index ff3098bd..cd5005d0 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,8 +1,8 @@ # Changes here will be overwritten by Copier; NEVER EDIT MANUALLY -_commit: a052529 +_commit: 5c4fd02 _src_path: gh:scipp/copier_template description: SANS data reduction for the European Spallation Source -max_python: '3.12' +max_python: '3.13' min_python: '3.10' namespace_package: ess nightly_deps: plopp,sciline,scippneutron,scippnexus,scipp,essreduce @@ -10,4 +10,4 @@ orgname: scipp prettyname: ESSsans projectname: esssans related_projects: Scipp,ScippNexus,ScippNeutron,Sciline,Plopp,ESSreduce -year: 2024 +year: 2025 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 356700a7..b273e684 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,7 @@ on: jobs: formatting: name: Formatting and static analysis - runs-on: 'ubuntu-22.04' + runs-on: 'ubuntu-24.04' outputs: min_python: ${{ steps.vars.outputs.min_python }} min_tox_env: ${{ steps.vars.outputs.min_tox_env }} @@ -19,15 +19,15 @@ jobs: - name: Get Python version for other CI jobs id: vars run: | - echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT - echo "min_tox_env=py$(cat .github/workflows/python-version-ci | sed 's/\.//g')" >> $GITHUB_OUTPUT + echo "min_python=$(< .github/workflows/python-version-ci)" >> "$GITHUB_OUTPUT" + echo "min_tox_env=py$(sed 's/\.//g' < .github/workflows/python-version-ci)" >> "$GITHUB_OUTPUT" - uses: actions/setup-python@v5 with: python-version-file: '.github/workflows/python-version-ci' - uses: pre-commit/action@v3.0.1 with: extra_args: --all-files - - uses: pre-commit-ci/lite-action@v1.0.3 + - uses: pre-commit-ci/lite-action@v1.1.0 if: always() with: msg: Apply automatic formatting @@ -37,7 +37,7 @@ jobs: needs: formatting strategy: matrix: - os: ['ubuntu-22.04'] + os: ['ubuntu-24.04'] python: - version: '${{needs.formatting.outputs.min_python}}' tox-env: '${{needs.formatting.outputs.min_tox_env}}' @@ -53,6 +53,6 @@ jobs: uses: ./.github/workflows/docs.yml with: publish: false - linkcheck: ${{ contains(matrix.variant.os, 'ubuntu') && github.ref == 'refs/heads/main' }} + linkcheck: ${{ github.ref == 'refs/heads/main' }} branch: ${{ github.head_ref == '' && github.ref_name || github.head_ref }} secrets: inherit diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index c6a413ea..a90bcf10 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -41,7 +41,7 @@ env: jobs: docs: name: Build documentation - runs-on: 'ubuntu-22.04' + runs-on: 'ubuntu-24.04' env: ESS_PROTECTED_FILESTORE_USERNAME: ${{ secrets.ESS_PROTECTED_FILESTORE_USERNAME }} ESS_PROTECTED_FILESTORE_PASSWORD: ${{ secrets.ESS_PROTECTED_FILESTORE_PASSWORD }} @@ -58,7 +58,7 @@ jobs: python-version-file: '.github/workflows/python-version-ci' - run: python -m pip install --upgrade pip - run: python -m pip install -r requirements/ci.txt - - run: tox -e releasedocs -- ${VERSION} + - run: tox -e releasedocs -- "${VERSION}" if: ${{ inputs.version != '' }} - run: tox -e docs if: ${{ inputs.version == '' }} @@ -69,7 +69,7 @@ jobs: name: docs_html path: html/ - - uses: JamesIves/github-pages-deploy-action@v4.6.4 + - uses: JamesIves/github-pages-deploy-action@v4.7.2 if: ${{ inputs.publish }} with: branch: gh-pages diff --git a/.github/workflows/nightly_at_main.yml b/.github/workflows/nightly_at_main.yml index c2b9d33a..20e9ee4a 100644 --- a/.github/workflows/nightly_at_main.yml +++ b/.github/workflows/nightly_at_main.yml @@ -8,21 +8,21 @@ on: jobs: setup: name: Setup variables - runs-on: 'ubuntu-22.04' + runs-on: 'ubuntu-24.04' outputs: min_python: ${{ steps.vars.outputs.min_python }} steps: - uses: actions/checkout@v4 - name: Get Python version for other CI jobs id: vars - run: echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT + run: echo "min_python=$(< .github/workflows/python-version-ci)" >> "$GITHUB_OUTPUT" tests: name: Tests needs: setup strategy: matrix: - os: ['ubuntu-22.04'] + os: ['ubuntu-24.04'] python: - version: '${{needs.setup.outputs.min_python}}' tox-env: 'nightly' diff --git a/.github/workflows/nightly_at_release.yml b/.github/workflows/nightly_at_release.yml index 3faa1c23..14b75213 100644 --- a/.github/workflows/nightly_at_release.yml +++ b/.github/workflows/nightly_at_release.yml @@ -8,7 +8,7 @@ on: jobs: setup: name: Setup variables - runs-on: 'ubuntu-22.04' + runs-on: 'ubuntu-24.04' outputs: min_python: ${{ steps.vars.outputs.min_python }} release_tag: ${{ steps.release.outputs.release_tag }} @@ -18,17 +18,17 @@ jobs: fetch-depth: 0 # history required so we can determine latest release tag - name: Get last release tag from git id: release - run: echo "release_tag=$(git describe --tags --abbrev=0 --match '[0-9]*.[0-9]*.[0-9]*')" >> $GITHUB_OUTPUT + run: echo "release_tag=$(git describe --tags --abbrev=0 --match '[0-9]*.[0-9]*.[0-9]*')" >> "$GITHUB_OUTPUT" - name: Get Python version for other CI jobs id: vars - run: echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT + run: echo "min_python=$(cat .github/workflows/python-version-ci)" >> "$GITHUB_OUTPUT" tests: name: Tests needs: setup strategy: matrix: - os: ['ubuntu-22.04'] + os: ['ubuntu-24.04'] python: - version: '${{needs.setup.outputs.min_python}}' tox-env: 'nightly' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d1317a76..fe8ef23d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ defaults: jobs: build_conda: name: Conda build - runs-on: 'ubuntu-22.04' + runs-on: 'ubuntu-24.04' steps: - uses: actions/checkout@v4 @@ -35,7 +35,7 @@ jobs: build_wheels: name: Wheels - runs-on: 'ubuntu-22.04' + runs-on: 'ubuntu-24.04' steps: - uses: actions/checkout@v4 @@ -61,7 +61,7 @@ jobs: upload_pypi: name: Deploy PyPI needs: [build_wheels, build_conda] - runs-on: 'ubuntu-22.04' + runs-on: 'ubuntu-24.04' environment: release permissions: id-token: write @@ -73,7 +73,7 @@ jobs: upload_conda: name: Deploy Conda needs: [build_wheels, build_conda] - runs-on: 'ubuntu-22.04' + runs-on: 'ubuntu-24.04' if: github.event_name == 'release' && github.event.action == 'published' steps: @@ -97,7 +97,7 @@ jobs: assets: name: Upload docs needs: docs - runs-on: 'ubuntu-22.04' + runs-on: 'ubuntu-24.04' permissions: contents: write # This is needed so that the action can upload the asset steps: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e98ed7cd..ca40b253 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,7 +4,7 @@ on: workflow_dispatch: inputs: os-variant: - default: 'ubuntu-22.04' + default: 'ubuntu-24.04' type: string python-version: type: string @@ -23,7 +23,7 @@ on: workflow_call: inputs: os-variant: - default: 'ubuntu-22.04' + default: 'ubuntu-24.04' type: string python-version: type: string diff --git a/.github/workflows/unpinned.yml b/.github/workflows/unpinned.yml index 3f49f722..ff03faa1 100644 --- a/.github/workflows/unpinned.yml +++ b/.github/workflows/unpinned.yml @@ -8,7 +8,7 @@ on: jobs: setup: name: Setup variables - runs-on: 'ubuntu-22.04' + runs-on: 'ubuntu-24.04' outputs: min_python: ${{ steps.vars.outputs.min_python }} release_tag: ${{ steps.release.outputs.release_tag }} @@ -18,17 +18,17 @@ jobs: fetch-depth: 0 # history required so we can determine latest release tag - name: Get last release tag from git id: release - run: echo "release_tag=$(git describe --tags --abbrev=0 --match '[0-9]*.[0-9]*.[0-9]*')" >> $GITHUB_OUTPUT + run: echo "release_tag=$(git describe --tags --abbrev=0 --match '[0-9]*.[0-9]*.[0-9]*')" >> "$GITHUB_OUTPUT" - name: Get Python version for other CI jobs id: vars - run: echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT + run: echo "min_python=$(cat .github/workflows/python-version-ci)" >> "$GITHUB_OUTPUT" tests: name: Tests needs: setup strategy: matrix: - os: ['ubuntu-22.04'] + os: ['ubuntu-24.04'] python: - version: '${{needs.setup.outputs.min_python}}' tox-env: 'unpinned' diff --git a/.github/workflows/weekly_windows_macos.yml b/.github/workflows/weekly_windows_macos.yml new file mode 100644 index 00000000..1544d7f9 --- /dev/null +++ b/.github/workflows/weekly_windows_macos.yml @@ -0,0 +1,42 @@ +name: Windows and MacOS weekly tests + +on: + workflow_dispatch: + schedule: + - cron: '0 2 * * 1' + +jobs: + pytox: + name: Python and Tox env + runs-on: 'ubuntu-24.04' + outputs: + min_python: ${{ steps.vars.outputs.min_python }} + min_tox_env: ${{ steps.vars.outputs.min_tox_env }} + steps: + - uses: actions/checkout@v4 + - name: Get Python version for other CI jobs + id: vars + run: | + echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT + echo "min_tox_env=py$(cat .github/workflows/python-version-ci | sed 's/\.//g')" >> $GITHUB_OUTPUT + tests: + name: Tests + needs: pytox + strategy: + matrix: + os: ['macos-latest', 'windows-latest'] + python: + - version: '${{needs.pytox.outputs.min_python}}' + tox-env: '${{needs.pytox.outputs.min_tox_env}}' + uses: ./.github/workflows/test.yml + with: + os-variant: ${{ matrix.os }} + python-version: ${{ matrix.python.version }} + tox-env: ${{ matrix.python.tox-env }} + + docs: + needs: tests + uses: ./.github/workflows/docs.yml + with: + publish: false + branch: ${{ github.head_ref == '' && github.ref_name || github.head_ref }} diff --git a/.gitignore b/.gitignore index cc2a0f8d..340e6499 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,8 @@ dist html .tox *.egg-info -uv.lock # we lock dependencies with pip-compile, not uv +# we lock dependencies with pip-compile, not uv +uv.lock *.sw? @@ -42,3 +43,5 @@ docs/generated/ *.rcif *.ort *.zip +*.sqw +*.nxspe diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e0c499ee..0f3f9a95 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,8 +1,10 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v5.0.0 hooks: - id: check-added-large-files + - id: check-case-conflict + - id: check-illegal-windows-names - id: check-json exclude: asv.conf.json - id: check-merge-conflict @@ -21,7 +23,7 @@ repos: args: [ "--drop-empty-cells", "--extra-keys 'metadata.language_info.version cell.metadata.jp-MarkdownHeadingCollapsed cell.metadata.pycharm'" ] - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.6.2 + rev: v0.8.0 hooks: - id: ruff args: [ --fix ] @@ -44,3 +46,9 @@ repos: - id: rst-directive-colons - id: rst-inline-touching-normal - id: text-unicode-replacement-char + - repo: https://github.com/rhysd/actionlint + rev: v1.7.3 + hooks: + - id: actionlint + # Disable because of false-positive SC2046 + args: ["-shellcheck="] diff --git a/LICENSE b/LICENSE index 54b3cf4d..7d62083d 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2024, Scipp contributors (https://github.com/scipp) +Copyright (c) 2025, Scipp contributors (https://github.com/scipp) All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/docs/conf.py b/docs/conf.py index ca1d04f8..f620a43a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: BSD-3-Clause -# Copyright (c) 2024 Scipp contributors (https://github.com/scipp) +# Copyright (c) 2025 Scipp contributors (https://github.com/scipp) import doctest import os @@ -15,7 +15,7 @@ # General information about the project. project = 'ESSsans' -copyright = '2024 Scipp contributors' +copyright = '2025 Scipp contributors' author = 'Scipp contributors' html_show_sourcelink = True diff --git a/pyproject.toml b/pyproject.toml index 37385196..617bcb7e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,6 +21,7 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Topic :: Scientific/Engineering", "Typing :: Typed", ] @@ -94,13 +95,12 @@ ignore = [ # https://docs.astral.sh/ruff/formatter/#conflicting-lint-rules "COM812", "COM819", "D206", "D300", "E111", "E114", "E117", "ISC001", "ISC002", "Q000", "Q001", "Q002", "Q003", "W191", ] -fixable = ["B010", "I001", "PT001"] +fixable = ["B010", "I001", "PT001", "RUF022"] isort.known-first-party = ["ess.sans"] pydocstyle.convention = "numpy" [tool.ruff.lint.per-file-ignores] # those files have an increased risk of relying on import order -"__init__.py" = ["I"] "tests/*" = [ "S101", # asserts are fine in tests "B018", # 'useless expressions' are ok because some tests just check for exceptions diff --git a/requirements/base.txt b/requirements/base.txt index e82b67d1..41f5d065 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -23,15 +23,15 @@ dask==2025.1.0 # via -r base.in decorator==5.1.1 # via ipython -essreduce==24.12.0 +essreduce==25.2.0 # via -r base.in exceptiongroup==1.2.2 # via ipython executing==2.2.0 # via stack-data -fonttools==4.55.5 +fonttools==4.56.0 # via matplotlib -fsspec==2024.12.0 +fsspec==2025.2.0 # via dask graphviz==0.20.3 # via -r base.in @@ -43,7 +43,7 @@ importlib-metadata==8.6.1 # via dask ipydatawidgets==4.3.5 # via pythreejs -ipython==8.31.0 +ipython==8.32.0 # via ipywidgets ipywidgets==8.1.5 # via @@ -115,7 +115,7 @@ python-dateutil==2.9.0.post0 # scippnexus pythreejs==2.4.2 # via -r base.in -pytz==2024.2 +pytz==2025.1 # via pandas pyyaml==6.0.2 # via dask diff --git a/requirements/basetest.txt b/requirements/basetest.txt index 125f2775..bdad58d7 100644 --- a/requirements/basetest.txt +++ b/requirements/basetest.txt @@ -5,7 +5,7 @@ # # pip-compile-multi # -certifi==2024.12.14 +certifi==2025.1.31 # via requests charset-normalizer==3.4.1 # via requests diff --git a/requirements/ci.txt b/requirements/ci.txt index 9ffaa1db..078cca56 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -7,7 +7,7 @@ # cachetools==5.5.1 # via tox -certifi==2024.12.14 +certifi==2025.1.31 # via requests chardet==5.2.0 # via tox @@ -54,5 +54,5 @@ typing-extensions==4.12.2 # via tox urllib3==2.3.0 # via requests -virtualenv==20.29.1 +virtualenv==20.29.2 # via tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 448ba646..814d4763 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -55,7 +55,7 @@ jsonschema[format-nongpl]==4.23.0 # jupyter-events # jupyterlab-server # nbformat -jupyter-events==0.11.0 +jupyter-events==0.12.0 # via jupyter-server jupyter-lsp==2.2.5 # via jupyterlab @@ -67,7 +67,7 @@ jupyter-server==2.15.0 # notebook-shim jupyter-server-terminals==0.5.3 # via jupyter-server -jupyterlab==4.3.4 +jupyterlab==4.3.5 # via -r dev.in jupyterlab-server==2.27.3 # via jupyterlab diff --git a/requirements/docs.txt b/requirements/docs.txt index a0801803..4512446c 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -10,21 +10,23 @@ accessible-pygments==0.0.5 # via pydata-sphinx-theme alabaster==1.0.0 # via sphinx -attrs==24.3.0 +appnope==0.1.4 + # via ipykernel +attrs==25.1.0 # via # jsonschema # referencing -babel==2.16.0 +babel==2.17.0 # via # pydata-sphinx-theme # sphinx -beautifulsoup4==4.12.3 +beautifulsoup4==4.13.3 # via # nbconvert # pydata-sphinx-theme bleach[css]==6.2.0 # via nbconvert -certifi==2024.12.14 +certifi==2025.1.31 # via requests charset-normalizer==3.4.1 # via requests @@ -81,13 +83,13 @@ mdit-py-plugins==0.4.2 # via myst-parser mdurl==0.1.2 # via markdown-it-py -mistune==3.1.0 +mistune==3.1.1 # via nbconvert -myst-parser==4.0.0 +myst-parser==4.0.1 # via -r docs.in nbclient==0.10.2 # via nbconvert -nbconvert==7.16.5 +nbconvert==7.16.6 # via nbsphinx nbformat==5.10.4 # via @@ -110,11 +112,11 @@ psutil==6.1.1 # via ipykernel pydata-sphinx-theme==0.16.1 # via -r docs.in -pyzmq==26.2.0 +pyzmq==26.2.1 # via # ipykernel # jupyter-client -referencing==0.36.1 +referencing==0.36.2 # via # jsonschema # jsonschema-specifications diff --git a/requirements/make_base.py b/requirements/make_base.py index ccbab001..2cda547f 100644 --- a/requirements/make_base.py +++ b/requirements/make_base.py @@ -1,4 +1,3 @@ -import sys from argparse import ArgumentParser from pathlib import Path @@ -58,16 +57,22 @@ def as_nightly(repo: str) -> str: else: org = "scipp" if repo == "scipp": - version = f"cp{sys.version_info.major}{sys.version_info.minor}" - base = "https://github.com/scipp/scipp/releases/download/nightly/scipp-nightly" - suffix = "manylinux_2_17_x86_64.manylinux2014_x86_64.whl" - prefix = "scipp @ " - return prefix + "-".join([base, version, version, suffix]) + # With the standard pip resolver index-url takes precedence over + # extra-index-url but with uv it's reversed, so if we move to tox-uv + # this needs to be reversed. + return ( + "scipp\n" + "--index-url=https://pypi.anaconda.org/scipp-nightly-wheels/simple/\n" + "--extra-index-url=https://pypi.org/simple\n" + "--pre" + ) return f"{repo} @ git+https://github.com/{org}/{repo}@main" nightly = tuple(args.nightly.split(",") if args.nightly else []) -nightly_dependencies = [dep for dep in dependencies if not dep.startswith(nightly)] +nightly_dependencies = [ + dep for dep in dependencies + test_dependencies if not dep.startswith(nightly) +] nightly_dependencies += [as_nightly(arg) for arg in nightly] write_dependencies("nightly", nightly_dependencies) diff --git a/requirements/mypy.txt b/requirements/mypy.txt index d7a49e8a..61d88db1 100644 --- a/requirements/mypy.txt +++ b/requirements/mypy.txt @@ -6,7 +6,7 @@ # pip-compile-multi # -r test.txt -mypy==1.14.1 +mypy==1.15.0 # via -r mypy.in mypy-extensions==1.0.0 # via mypy diff --git a/requirements/nightly.in b/requirements/nightly.in index 1a3b59e6..992cd99d 100644 --- a/requirements/nightly.in +++ b/requirements/nightly.in @@ -1,4 +1,4 @@ --r basetest.in + # --- END OF CUSTOM SECTION --- # The following was generated by 'tox -e deps', DO NOT EDIT MANUALLY! dask @@ -6,9 +6,15 @@ graphviz numpy pandas pythreejs +pytest +pooch +scipy>=1.15.0 plopp @ git+https://github.com/scipp/plopp@main sciline @ git+https://github.com/scipp/sciline@main scippneutron @ git+https://github.com/scipp/scippneutron@main scippnexus @ git+https://github.com/scipp/scippnexus@main -scipp @ https://github.com/scipp/scipp/releases/download/nightly/scipp-nightly-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +scipp +--index-url=https://pypi.anaconda.org/scipp-nightly-wheels/simple/ +--extra-index-url=https://pypi.org/simple +--pre essreduce @ git+https://github.com/scipp/essreduce@main diff --git a/requirements/nightly.txt b/requirements/nightly.txt index 9b960561..14caa371 100644 --- a/requirements/nightly.txt +++ b/requirements/nightly.txt @@ -1,13 +1,21 @@ -# SHA1:ed858c037dfb1a6903581eae7eba3b4ad493971f +# SHA1:20f7b23378e6f778cc7228b0e49b7b1f057469a6 # # This file is autogenerated by pip-compile-multi # To update, run: # # pip-compile-multi # --r basetest.txt +--index-url https://pypi.anaconda.org/scipp-nightly-wheels/simple/ +--extra-index-url https://pypi.org/simple + +annotated-types==0.7.0 + # via pydantic asttokens==3.0.0 # via stack-data +certifi==2025.1.31 + # via requests +charset-normalizer==3.4.1 + # via requests click==8.1.8 # via dask cloudpickle==3.1.1 @@ -24,13 +32,21 @@ dask==2025.1.0 # via -r nightly.in decorator==5.1.1 # via ipython +dnspython==2.7.0 + # via email-validator +email-validator==2.2.0 + # via scippneutron essreduce @ git+https://github.com/scipp/essreduce@main # via -r nightly.in +exceptiongroup==1.2.2 + # via + # ipython + # pytest executing==2.2.0 # via stack-data -fonttools==4.55.5 +fonttools==4.56.0 # via matplotlib -fsspec==2024.12.0 +fsspec==2025.2.0 # via dask graphviz==0.20.3 # via -r nightly.in @@ -38,11 +54,17 @@ h5py==3.12.1 # via # scippneutron # scippnexus +idna==3.10 + # via + # email-validator + # requests importlib-metadata==8.6.1 # via dask +iniconfig==2.0.0 + # via pytest ipydatawidgets==4.3.5 # via pythreejs -ipython==8.31.0 +ipython==8.32.0 # via ipywidgets ipywidgets==8.1.5 # via @@ -54,6 +76,10 @@ jupyterlab-widgets==3.0.13 # via ipywidgets kiwisolver==1.4.8 # via matplotlib +lazy-loader==0.4 + # via + # plopp + # scippneutron locket==1.0.0 # via partd matplotlib==3.10.0 @@ -66,6 +92,26 @@ mpltoolbox==24.5.1 # via scippneutron networkx==3.4.2 # via cyclebane +numpy==2.2.2 + # via + # -r nightly.in + # contourpy + # h5py + # ipydatawidgets + # matplotlib + # mpltoolbox + # pandas + # pythreejs + # scipp + # scippneutron + # scipy +packaging==24.2 + # via + # dask + # lazy-loader + # matplotlib + # pooch + # pytest pandas==2.2.3 # via -r nightly.in parso==0.8.4 @@ -76,36 +122,51 @@ pexpect==4.9.0 # via ipython pillow==11.1.0 # via matplotlib +platformdirs==4.3.6 + # via pooch plopp @ git+https://github.com/scipp/plopp@main # via # -r nightly.in # scippneutron +pluggy==1.5.0 + # via pytest +pooch==1.8.2 + # via -r nightly.in prompt-toolkit==3.0.50 # via ipython ptyprocess==0.7.0 # via pexpect pure-eval==0.2.3 # via stack-data +pydantic==2.11.0a2 + # via scippneutron +pydantic-core==2.29.0 + # via pydantic pygments==2.19.1 # via ipython pyparsing==3.2.1 # via matplotlib +pytest==8.3.4 + # via -r nightly.in python-dateutil==2.9.0.post0 # via # matplotlib # pandas + # scippneutron # scippnexus pythreejs==2.4.2 # via -r nightly.in -pytz==2024.2 +pytz==2025.1 # via pandas pyyaml==6.0.2 # via dask +requests==2.32.3 + # via pooch sciline @ git+https://github.com/scipp/sciline@main # via # -r nightly.in # essreduce -scipp @ https://github.com/scipp/scipp/releases/download/nightly/scipp-nightly-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +scipp==100.0.0.dev0 # via # -r nightly.in # essreduce @@ -120,10 +181,17 @@ scippnexus @ git+https://github.com/scipp/scippnexus@main # -r nightly.in # essreduce # scippneutron +scipy==1.15.1 + # via + # -r nightly.in + # scippneutron + # scippnexus six==1.17.0 # via python-dateutil stack-data==0.6.3 # via ipython +tomli==2.2.1 + # via pytest toolz==1.0.0 # via # dask @@ -139,9 +207,14 @@ traitlets==5.14.3 traittypes==0.2.1 # via ipydatawidgets typing-extensions==4.12.2 - # via ipython + # via + # ipython + # pydantic + # pydantic-core tzdata==2025.1 # via pandas +urllib3==2.3.0 + # via requests wcwidth==0.2.13 # via prompt-toolkit widgetsnbextension==4.0.13 diff --git a/requirements/static.txt b/requirements/static.txt index b7eb0124..a0569bda 100644 --- a/requirements/static.txt +++ b/requirements/static.txt @@ -11,7 +11,7 @@ distlib==0.3.9 # via virtualenv filelock==3.17.0 # via virtualenv -identify==2.6.6 +identify==2.6.7 # via pre-commit nodeenv==1.9.1 # via pre-commit @@ -21,5 +21,5 @@ pre-commit==4.1.0 # via -r static.in pyyaml==6.0.2 # via pre-commit -virtualenv==20.29.1 +virtualenv==20.29.2 # via pre-commit diff --git a/src/ess/isissans/__init__.py b/src/ess/isissans/__init__.py index 440d8732..9f45f337 100644 --- a/src/ess/isissans/__init__.py +++ b/src/ess/isissans/__init__.py @@ -4,7 +4,7 @@ import importlib.metadata from . import general, io, sans2d, zoom -from .general import default_parameters, SampleOffset, MonitorOffset, DetectorBankOffset +from .general import DetectorBankOffset, MonitorOffset, SampleOffset, default_parameters from .io import CalibrationFilename from .visualization import plot_flat_detector_xy @@ -22,10 +22,10 @@ 'DetectorBankOffset', 'MonitorOffset', 'SampleOffset', + 'default_parameters', 'io', - 'providers', 'plot_flat_detector_xy', + 'providers', 'sans2d', - 'default_parameters', 'zoom', ] diff --git a/src/ess/loki/__init__.py b/src/ess/loki/__init__.py index 322c820c..73f18a23 100644 --- a/src/ess/loki/__init__.py +++ b/src/ess/loki/__init__.py @@ -14,7 +14,7 @@ del importlib __all__ = [ - 'workflow', - 'default_parameters', 'LokiAtLarmorWorkflow', + 'default_parameters', + 'workflow', ] diff --git a/src/ess/sans/__init__.py b/src/ess/sans/__init__.py index 2ef52c00..d4e41373 100644 --- a/src/ess/sans/__init__.py +++ b/src/ess/sans/__init__.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: BSD-3-Clause -# Copyright (c) 2024 Scipp contributors (https://github.com/scipp) -# ruff: noqa: E402, F401 +# Copyright (c) 2025 Scipp contributors (https://github.com/scipp) +# ruff: noqa: E402, F401, I import importlib.metadata @@ -17,12 +17,12 @@ from .direct_beam import direct_beam from .types import BackgroundSubtractedIofQ, IofQ, ReturnEvents, SampleRun from .workflow import ( + SansWorkflow, providers, with_background_runs, with_banks, with_pixel_mask_filenames, with_sample_runs, - SansWorkflow, ) try: @@ -35,8 +35,9 @@ __all__ = [ 'BackgroundSubtractedIofQ', 'IofQ', - 'SampleRun', 'ReturnEvents', + 'SampleRun', + 'SansWorkflow', 'beam_center_finder', 'beam_center_from_center_of_mass', 'common', @@ -51,5 +52,4 @@ 'with_banks', 'with_pixel_mask_filenames', 'with_sample_runs', - 'SansWorkflow', ] diff --git a/tests/package_test.py b/tests/package_test.py index b07d5f1b..46906b2c 100644 --- a/tests/package_test.py +++ b/tests/package_test.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: BSD-3-Clause -# Copyright (c) 2024 Scipp contributors (https://github.com/scipp) +# Copyright (c) 2025 Scipp contributors (https://github.com/scipp) from ess import isissans, loki, sans """Tests of package integrity. diff --git a/tox.ini b/tox.ini index cf66aaaa..927019cf 100644 --- a/tox.ini +++ b/tox.ini @@ -10,6 +10,9 @@ commands = pytest {posargs} [testenv:nightly] deps = -r requirements/nightly.txt +setenv = + PIP_INDEX_URL = https://pypi.anaconda.org/scipp-nightly-wheels/simple + PIP_EXTRA_INDEX_URL = https://pypi.org/simple commands = pytest {posargs} [testenv:unpinned] @@ -64,4 +67,4 @@ deps = skip_install = true changedir = requirements commands = python ./make_base.py --nightly plopp,sciline,scippneutron,scippnexus,scipp,essreduce - pip-compile-multi -d . --backtracking + pip-compile-multi -d . --backtracking --annotate-index