Skip to content

Archive readers accept either ymf domain shape - #109

Merged
cekees merged 1 commit into
mainfrom
nesting-readers
Oct 26, 2026
Merged

cekees merged 1 commit into
mainfrom
nesting-readers

Conversation

@cekees

@cekees cekees commented Oct 25, 2026

Copy link
Copy Markdown
Owner

Step 1 of 3 for the time-outside-space archive format (design: docs/design-time-outside-space.md in cekees/ymf#22).

ymf#23 changes read_ymf to return {"times": [{time, spaces: {...}}]} instead of {"time_collections": [...]}. Proteus reads the old key in several places, and scripts/clearh5.py would silently loop over nothing. This PR adds Archiver.archive_collections(domain), the per-space view of either shape, and uses it in findArchiveGrid, readMeshFromArchive, archived_times, clearh5 (which also learns to truncate format 2 instants) and the tests that read a domain back.

No behavior change with today's ymf. Order: this, then ymf#23, then the Archiver.py writer PR.

Checked locally (extensions borrowed from another worktree's build; not a CI run): the archive tests (test_archive_dtypes, _parallel_metadata, _v1_compat, _read_paths, _no_xml, test_hdf5_api_migration, test_archiver_write_field, test_gatherTimes) pass, 181 + 28, against both the current ymf main and the ymf#23 branch. That also means today's writer works with ymf#23 as is.

🤖 Generated with Claude Code

ymf is moving its archive domain from time_collections (one per space) to
times (one list of instants, spaces inside each; cekees/ymf#23). Add
Archiver.archive_collections, which gives the per-space view of either, and
use it in findArchiveGrid, readMeshFromArchive, archived_times, clearh5 and
the tests that read a domain back. No dependence on the new ymf: the same
tests pass with the current ymf main and with ymf#23.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@cekees
cekees merged commit e85234e into main Oct 26, 2026
19 of 20 checks passed
@cekees
cekees deleted the nesting-readers branch October 26, 2026 08:37
cekees added a commit to proteustoolkit/proteus that referenced this pull request Oct 27, 2026
test_the_timeout_is_scaled_for_a_slow_runner started a python that slept
1.2 s under a 0.5 s timeout scaled to 1.5 s, so it passed only if the
interpreter started in under 0.3 s; on a loaded CI runner it did not
(linux-64 py3.12 on cekees#109). Hand the wrapper a stand-in for
subprocess.run instead and look at the timeout it passes on. The wrapper is
now retrying_run(run), exposed through the launch_policy fixture.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
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