Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions .cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,7 @@
"CITATION.cff",
"codecov.yml",
"docs/conf.py",
"pyproject.toml",
"typings"
"pyproject.toml"
],
"ignoreWords": [
"FURB",
Expand Down Expand Up @@ -145,7 +144,6 @@
"pypi",
"pyplot",
"pyproject",
"pyright",
"pytestconfig",
"qrules",
"rightarrow",
Expand Down Expand Up @@ -219,7 +217,6 @@
"mathbb",
"matplotlib",
"mkdir",
"mypy",
"nishijima",
"numpy",
"optimizable",
Expand Down
25 changes: 1 addition & 24 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,6 @@ on:
- main
- epic/*
workflow_dispatch:
inputs:
specific-pip-packages:
description: Run benchmarks with specific pip packages
required: false
type: string

jobs:
benchmark:
Expand All @@ -30,26 +25,8 @@ jobs:
with:
python-version: "3.13"
- uses: astral-sh/setup-uv@v6
- id: with
if: inputs.specific-pip-packages
name: Determine additional packages to install
run: |
additional_packages=''
for package in ${{ inputs.specific-pip-packages }}; do
additional_packages="$additional_packages --with $package"
done
echo "packages=$additional_packages" | tee -a $GITHUB_OUTPUT
- name: Run pytest-benchmark
run: |
uv run \
--group test \
--no-dev \
${{ steps.with.outputs.packages }} \
pytest \
-k benchmark \
--benchmark-json output.json \
--durations=0
working-directory: benchmarks
run: uvx --from poethepoet poe benchmark
- name: Warn on performance decrease
if: github.event_name == 'pull_request'
uses: benchmark-action/github-action-benchmark@v1
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ on:
jobs:
milestone:
if: startsWith(github.ref, 'refs/tags')
uses: ComPWA/actions/.github/workflows/close-milestone.yml@v3
uses: ComPWA/actions/.github/workflows/close-milestone.yml@v4
package-name:
uses: ComPWA/actions/.github/workflows/get-pypi-name.yml@v3
uses: ComPWA/actions/.github/workflows/get-pypi-name.yml@v4
pypi:
environment:
name: PyPI
Expand All @@ -24,9 +24,9 @@ jobs:
id-token: write
runs-on: ubuntu-24.04
steps:
- uses: ComPWA/actions/build-pypi-distribution@v3
- uses: ComPWA/actions/build-pypi-distribution@v4
- uses: pypa/gh-action-pypi-publish@release/v1
push:
if: startsWith(github.ref, 'refs/tags') && !github.event.release.prerelease
secrets: inherit
uses: ComPWA/actions/.github/workflows/push-to-version-branches.yml@v3
uses: ComPWA/actions/.github/workflows/push-to-version-branches.yml@v4
28 changes: 10 additions & 18 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,33 +17,25 @@ on:
- epic/*
- "[0-9]+.[0-9]+.x"
workflow_dispatch:
inputs:
specific-pip-packages:
description: Run CI with specific pip packages
required: false
type: string

jobs:
doc:
uses: ComPWA/actions/.github/workflows/ci-docs.yml@v3.0
uses: ComPWA/actions/.github/workflows/ci-docs.yml@v4.0
permissions:
pages: write
id-token: write
with:
apt-packages: graphviz
specific-pip-packages: ${{ inputs.specific-pip-packages }}
pytest:
uses: ComPWA/actions/.github/workflows/pytest.yml@v3.0
style:
secrets:
token: ${{ secrets.PAT }}
uses: ComPWA/actions/.github/workflows/pre-commit.yml@v4.0
test:
uses: ComPWA/actions/.github/workflows/test.yml@v4.0
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
coverage-target: tensorwaves
coverage-python-version: "3.13"
macos-python-version: "3.10"
multithreaded: false
specific-pip-packages: ${{ inputs.specific-pip-packages }}
test-output-path: tests/output/
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
style:
if: inputs.specific-pip-packages == ''
secrets:
token: ${{ secrets.PAT }}
uses: ComPWA/actions/.github/workflows/pre-commit.yml@v3.0
2 changes: 1 addition & 1 deletion .github/workflows/clean-caches.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
name: Remove caches
runs-on: ubuntu-24.04
steps:
- uses: ComPWA/actions/clean-caches@v3
- uses: ComPWA/actions/clean-caches@v4
with:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ref: ${{ inputs.ref }}
2 changes: 1 addition & 1 deletion .github/workflows/lock.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@ on:

jobs:
lock:
uses: ComPWA/actions/.github/workflows/lock.yml@v3
uses: ComPWA/actions/.github/workflows/lock.yml@v4
secrets:
token: ${{ secrets.PAT }}
2 changes: 1 addition & 1 deletion .github/workflows/pr-linting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ on:

jobs:
lint-pr:
uses: ComPWA/actions/.github/workflows/pr-linting.yml@v3
uses: ComPWA/actions/.github/workflows/pr-linting.yml@v4
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ version.py
.coverage.*
.ipynb_checkpoints/
.jupyter_ystore.db
.mypy*/
.pytest_cache/
.virtual_documents/
__pycache__/
Expand All @@ -50,4 +49,3 @@ pyvenv*/
!.vscode/*.json
!.zenodo.json
!codecov.yml
!pyrightconfig.json
40 changes: 16 additions & 24 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ ci:
autoupdate_schedule: quarterly
skip:
- check-jsonschema
- mypy
- pyright
- ty
- uv-lock

repos:
Expand All @@ -15,7 +14,7 @@ repos:
- id: check-useless-excludes

- repo: https://github.com/ComPWA/policy
rev: 0.7.3
rev: 0.8.2rc5
hooks:
- id: check-dev-files
args:
Expand All @@ -24,19 +23,17 @@ repos:
- --pytest-single-threaded
- --repo-name=tensorwaves
- --repo-title=TensorWaves
- --type-checker=ty
- --update-lock-files=outsource
- id: colab-toc-visible
- id: fix-nbformat-version
- id: remove-empty-tags
- id: set-nb-cells
args:
- --add-install-cell
- --additional-packages=IPython
- --extras-require=doc,jax,pwa,viz
args: [autolink-concat]
- id: set-nb-display-name

- repo: https://github.com/kynan/nbstripout
rev: 0.8.1
rev: 0.8.2
hooks:
- id: nbstripout
args:
Expand Down Expand Up @@ -64,7 +61,7 @@ repos:
metadata.vscode

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.14.0
rev: v0.14.11
hooks:
- id: ruff-check
args: [--fix]
Expand Down Expand Up @@ -117,7 +114,7 @@ repos:
- --in-place

- repo: https://github.com/python-jsonschema/check-jsonschema
rev: 0.34.1
rev: 0.36.0
hooks:
- id: check-jsonschema
name: Check CITATION.cff
Expand All @@ -130,12 +127,12 @@ repos:
pass_filenames: false

- repo: https://github.com/streetsidesoftware/cspell-cli
rev: v9.2.0
rev: v9.4.0
hooks:
- id: cspell

- repo: https://github.com/editorconfig-checker/editorconfig-checker.python
rev: 3.4.0
rev: 3.6.0
hooks:
- id: editorconfig-checker
name: editorconfig
Expand All @@ -147,20 +144,15 @@ repos:

- repo: local
hooks:
- id: mypy
name: mypy
entry: mypy
language: system
- id: ty
name: ty
entry: ty check
args: [--no-progress, --output-format=concise]
require_serial: true
types:
- python

- repo: https://github.com/ComPWA/pyright-pre-commit
rev: v1.1.406
hooks:
- id: pyright
language: system
types_or: [python, pyi, jupyter]

- repo: https://github.com/astral-sh/uv-pre-commit
rev: 0.9.3
rev: 0.9.24
hooks:
- id: uv-lock
6 changes: 1 addition & 5 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,7 @@ build:
pixi global install graphviz uv
- |-
export UV_LINK_MODE=copy
uv run \
--group doc \
--no-dev \
--with poethepoet \
poe doc
uvx --from poethepoet poe doc
mkdir -p $READTHEDOCS_OUTPUT
mv docs/_build/html $READTHEDOCS_OUTPUT

Expand Down
5 changes: 3 additions & 2 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"recommendations": [
"astral-sh.ty",
"charliermarsh.ruff",
"christian-kohler.path-intellisense",
"eamodio.gitlens",
Expand All @@ -9,9 +10,7 @@
"github.vscode-github-actions",
"github.vscode-pull-request-github",
"mhutchie.git-graph",
"ms-python.mypy-type-checker",
"ms-python.python",
"ms-python.vscode-pylance",
"ms-toolsai.jupyter",
"ms-toolsai.vscode-jupyter-cell-tags",
"ms-vscode.live-server",
Expand All @@ -30,7 +29,9 @@
"ms-python.black-formatter",
"ms-python.flake8",
"ms-python.isort",
"ms-python.mypy-type-checker",
"ms-python.pylint",
"ms-python.vscode-pylance",
"ms-toolsai.vscode-jupyter-slideshow",
"ryanluker.vscode-coverage-gutters",
"travisillig.vscode-json-stable-stringify",
Expand Down
7 changes: 4 additions & 3 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,13 @@
],
"livePreview.defaultPreviewPath": "docs/_build/html",
"multiDiffEditor.experimental.enabled": true,
"mypy-type-checker.args": ["--config-file=${workspaceFolder}/pyproject.toml"],
"notebook.codeActionsOnSave": {
"notebook.source.organizeImports": "explicit"
},
"notebook.formatOnSave.enabled": true,
"notebook.gotoSymbols.showAllSymbols": true,
"python.analysis.autoImportCompletions": false,
"python.analysis.inlayHints.pytestParameters": true,
"python.defaultInterpreterPath": ".venv/bin/python",
"python.languageServer": "None",
"python.terminal.activateEnvironment": false,
"python.testing.pytestEnabled": true,
"python.testing.unittestEnabled": false,
Expand All @@ -70,6 +68,9 @@
"telemetry.telemetryLevel": "off",
"testing.coverageToolbarEnabled": true,
"testing.showCoverageInExplorer": true,
"ty.completions.autoImport": false,
"ty.diagnosticMode": "workspace",
"ty.importStrategy": "fromEnvironment",
"yaml.schemas": {
"https://citation-file-format.github.io/1.2.0/schema.json": "CITATION.cff",
"https://json.schemastore.org/github-workflow.json": "./.github/workflows/requirements.yml"
Expand Down
10 changes: 8 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ source .venv/bin/activate
Formatting and linting checks are automatically performed when committing changes. This is done with [pre-commit](https://pre-commit.com). To install the hooks in your local repository, run install `pre-commit` with `uv`:

```shell
uv tool install pre-commit --with pre-commit-uv --force-reinstall
uv tool install pre-commit --with pre-commit-uv --force-reinstall --python=3.13
```

and [`pre-commit install`](https://pre-commit.com/#3-install-the-git-hook-scripts) **once**:
Expand All @@ -31,7 +31,13 @@ and [`pre-commit install`](https://pre-commit.com/#3-install-the-git-hook-script
pre-commit install --install-hooks
```

[Poe the Poet](https://poethepoet.natn.io) is used as a task runner. You can see which local CI checks it defines by running
[Poe the Poet](https://poethepoet.natn.io) is used as a task runner. Install it globally (within your home folder) with `uv`:

```shell
uv tool install poethepoet --force-reinstall --python=3.13
```

You can see which local CI checks it defines by running

```shell
poe
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@
[![Documentation build status](https://readthedocs.org/projects/tensorwaves/badge/?version=latest)](https://tensorwaves.readthedocs.io)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/ComPWA/tensorwaves/main.svg)](https://results.pre-commit.ci/latest/github/ComPWA/tensorwaves/main)
[![CI](https://github.com/ComPWA/tensorwaves/actions/workflows/ci.yml/badge.svg)](https://github.com/ComPWA/tensorwaves/actions/workflows/ci.yml)
[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](https://mypy.readthedocs.io)
[![Test coverage](https://codecov.io/gh/ComPWA/tensorwaves/branch/main/graph/badge.svg)](https://codecov.io/gh/ComPWA/tensorwaves)
[![Spelling checked](https://img.shields.io/badge/cspell-checked-brightgreen.svg)](https://github.com/streetsidesoftware/cspell/tree/master/packages/cspell)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
[![ty](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ty/main/assets/badge/v0.json)](https://github.com/astral-sh/ty)

TensorWaves is a fitter package that optimizes mathematical models to data samples. The
models can be any _symbolic_ mathematical expression that is then converted to any
Expand Down
Loading