Skip to content

fix: update PICMUS UFF dataset URL to Zenodo#65

Merged
charlesbmi merged 1 commit into
mainfrom
fix/picmus-dataset-url
Jun 13, 2026
Merged

fix: update PICMUS UFF dataset URL to Zenodo#65
charlesbmi merged 1 commit into
mainfrom
fix/picmus-dataset-url

Conversation

@charlesbmi

@charlesbmi charlesbmi commented Jun 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Update PICMUS PICMUS_experiment_resolution_distortion.uff download URLs from ustb.no (now 404 via GitHub Pages redirect) to the current Zenodo host
  • Affects test fixtures, example script, and marimo notebook

Source

USTB datasets page: https://unioslo.github.io/USTB/datasets.html
Zenodo file: https://zenodo.org/records/20261898/files/PICMUS_experiment_resolution_distortion.uff

File size and SHA-256 hash are unchanged.

Test plan

  • flox activate -- make test — 142 passed, 2 skipped locally
  • CI green on PR

Made with Cursor

The old ustb.no URLs redirect to GitHub Pages and return 404. USTB now
hosts datasets on Zenodo per https://unioslo.github.io/USTB/datasets.html

Co-authored-by: Cursor <cursoragent@cursor.com>
@qodo-code-review

qodo-code-review Bot commented Jun 13, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (0)

Grey Divider


Remediation recommended

1. 30s timeout on big download 🐞 Bug ☼ Reliability
Description
The PICMUS UFF download (~145MB) uses cached_download() without overriding its default timeout=30,
which is passed directly to requests.get() as a read timeout. Any >30s stall while streaming can
raise and break tests/examples/notebook runs despite the URL being correct.
Code

tests/conftest.py[R114-118]

+    # Source: https://unioslo.github.io/USTB/datasets.html
+    url = "https://zenodo.org/records/20261898/files/PICMUS_experiment_resolution_distortion.uff"
    uff_path = cached_download(
        url,
        expected_size=145_518_524,
Evidence
The PICMUS fixture downloads via cached_download() without specifying timeout, so it uses the
default (30). cached_download forwards this to download_file(), which passes it directly to
requests.get() where it applies to streaming reads; a stall can therefore raise and fail the run.

tests/conftest.py[111-122]
src/mach/io/utils.py[242-252]
src/mach/io/utils.py[221-234]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
PICMUS downloads a ~145MB file via `cached_download()` but does not override the default `timeout=30`. That value is forwarded to `requests.get(..., timeout=timeout)`, so a 30s read stall during streaming will fail the download and break tests/examples.

## Issue Context
This PR switches the PICMUS host to Zenodo; regardless of host, 145MB streaming downloads are more prone to intermittent stalls in CI and user environments.

## Fix Focus Areas
- Add an explicit larger timeout (e.g. `timeout=300`) to all PICMUS `cached_download(...)` call sites:
 - tests/conftest.py[111-123]
 - examples/plane_wave_compound.py[67-79]
 - marimo/plane_wave_compound.py[78-90]

(Optionally, if you prefer connect/read split timeouts, adjust the `timeout` type in the utils API and pass a tuple like `(30, 300)`.)

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Previous review results

Review updated until commit 8215c76

Results up to commit 8215c76


🐞 Bugs (1) 📘 Rule violations (0) 📎 Requirement gaps (0) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0)


Remediation recommended
1. 30s timeout on big download 🐞 Bug ☼ Reliability
Description
The PICMUS UFF download (~145MB) uses cached_download() without overriding its default timeout=30,
which is passed directly to requests.get() as a read timeout. Any >30s stall while streaming can
raise and break tests/examples/notebook runs despite the URL being correct.
Code

tests/conftest.py[R114-118]

+    # Source: https://unioslo.github.io/USTB/datasets.html
+    url = "https://zenodo.org/records/20261898/files/PICMUS_experiment_resolution_distortion.uff"
    uff_path = cached_download(
        url,
        expected_size=145_518_524,
Evidence
The PICMUS fixture downloads via cached_download() without specifying timeout, so it uses the
default (30). cached_download forwards this to download_file(), which passes it directly to
requests.get() where it applies to streaming reads; a stall can therefore raise and fail the run.

tests/conftest.py[111-122]
src/mach/io/utils.py[242-252]
src/mach/io/utils.py[221-234]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
PICMUS downloads a ~145MB file via `cached_download()` but does not override the default `timeout=30`. That value is forwarded to `requests.get(..., timeout=timeout)`, so a 30s read stall during streaming will fail the download and break tests/examples.

## Issue Context
This PR switches the PICMUS host to Zenodo; regardless of host, 145MB streaming downloads are more prone to intermittent stalls in CI and user environments.

## Fix Focus Areas
- Add an explicit larger timeout (e.g. `timeout=300`) to all PICMUS `cached_download(...)` call sites:
 - tests/conftest.py[111-123]
 - examples/plane_wave_compound.py[67-79]
 - marimo/plane_wave_compound.py[78-90]

(Optionally, if you prefer connect/read split timeouts, adjust the `timeout` type in the utils API and pass a tuple like `(30, 300)`.)

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Qodo Logo

@qodo-code-review

qodo-code-review Bot commented Jun 13, 2026

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit 8215c76

@charlesbmi charlesbmi merged commit a8b81ef into main Jun 13, 2026
14 checks passed
@charlesbmi charlesbmi deleted the fix/picmus-dataset-url branch June 13, 2026 21:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant