Skip to content
Merged
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
43 changes: 34 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ jobs:
check-manifest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- run: pipx run check-manifest

pyright:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: astral-sh/setup-uv@v7
with:
enable-cache: true
Expand All @@ -46,8 +46,33 @@ jobs:
- os: macos-latest
gui: wxpython
python-version: "3.10"
# FIXME: Prone to segfaults
- os: macos-latest
gui: pyside
canvas: vispy
# FIXME: Prone to segfaults
- os: macos-latest
gui: pyqt
canvas: vispy

include:
# Check macos+vispy
- os: macos-15
python-version: "3.13"
gui: pyside
canvas: vispy
- os: macos-15
python-version: "3.13"
gui: pyqt
canvas: vispy
- os: macos-15
python-version: "3.10"
gui: pyside
canvas: vispy
- os: macos-15
python-version: "3.10"
gui: pyqt
canvas: vispy
# spot-check a few more python versions
- os: ubuntu-latest
python-version: "3.12"
Expand All @@ -71,7 +96,7 @@ jobs:
canvas: pygfx

steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: astral-sh/setup-uv@v7
with:
enable-cache: true
Expand Down Expand Up @@ -105,7 +130,7 @@ jobs:
gui: [pyqt, jupyter]
canvas: [vispy, pygfx]
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: astral-sh/setup-uv@v7
with:
enable-cache: true
Expand All @@ -130,7 +155,7 @@ jobs:
python-version: ["3.10", "3.13"]

steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: astral-sh/setup-uv@v7
with:
enable-cache: true
Expand All @@ -157,11 +182,11 @@ jobs:

# make sure we can build docs without error
test-docs:
runs-on: macos-latest # nicer screenshots
runs-on: macos-15 # nicer screenshots
env:
UV_PYTHON: "3.13"
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: astral-sh/setup-uv@v7
- name: 📚 Build docs
run: uv run --group docs mkdocs build --strict
Expand All @@ -181,7 +206,7 @@ jobs:
contents: write

steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
with:
fetch-depth: 0

Expand All @@ -198,7 +223,7 @@ jobs:
- name: 🚢 Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1

- uses: softprops/action-gh-release@v2
- uses: softprops/action-gh-release@v3
with:
generate_release_notes: true
files: "./dist/*"
4 changes: 2 additions & 2 deletions .github/workflows/deploy_docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ permissions:

jobs:
deploy:
runs-on: macos-latest # nicer screenshots
runs-on: macos-15 # nicer screenshots
if: github.repository == 'pyapp-kit/ndv'
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: astral-sh/setup-uv@v7
Expand Down
4 changes: 4 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,8 @@ array-libs = [
"aiohttp>=3.11.11",
"dask[array]>=2024.8.0",
"jax[cpu]>=0.4.30",
# TODO: numba<=0.65 capped numpy<2.5 for some reason. When numba>0.65 ships, remove this pin
"numpy<2.5",
"pooch>=1.8.2",
"pyopencl>=2025.1",
"pyopencl[pocl]>=2025.1 ; sys_platform == 'linux'",
Expand Down Expand Up @@ -219,6 +221,8 @@ filterwarnings = [
# unsolved python 3.10 warning on shutdown, either xarray or dask
"ignore:unclosed transport:ResourceWarning",
"ignore:Jupyter is migrating its paths",
# See https://github.com/pygfx/pygfx/pull/1306 and https://github.com/vispy/vispy/pull/2757
"ignore:Setting the shape on a NumPy array has been deprecated in NumPy 2.5:DeprecationWarning:pygfx.*|vispy.*",
]
markers = ["allow_leaks: mark test to allow widget leaks"]

Expand Down
4 changes: 2 additions & 2 deletions src/ndv/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ def nd_sine_wave(
half_per = base_frequency * np.pi
x = np.linspace(-half_per, half_per, nx)
y = np.linspace(-half_per, half_per, ny)
y, x = np.meshgrid(y, x)
yy, xx = np.meshgrid(y, x)

# Iterate through each parameter in the higher dimensions
for phase_idx in range(phase_dim):
Expand All @@ -41,7 +41,7 @@ def nd_sine_wave(
# Calculate angle
angle = np.pi / angle_dim * angle_idx
# Rotate x and y coordinates
xr = np.cos(angle) * x - np.sin(angle) * y
xr = np.cos(angle) * xx - np.sin(angle) * yy

# Compute the sine wave
sine_wave = (amplitude * 0.5) * np.sin(frequency * xr + phase)
Expand Down
Loading