From 36135d5decd1334e369d08fc94e5981970662f46 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 22 Oct 2026 07:22:22 +0000 Subject: [PATCH] Fixture README and DocC build script and Pages workflow Tests/Fixtures/README.md lists every committed fixture with size and the tools/ script that names it; rows found only by name prefix are marked. tools/build-docs.sh and .github/workflows/docs.yml are CuboKit's pattern with this kit's name (module list read from the .docc catalogs). Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_017hJFgt7ZpMGSUej75yY3u7 --- .github/workflows/docs.yml | 52 ++++ .gitignore | 1 + Tests/Fixtures/README.md | 614 +++++++++++++++++++++++++++++++++++++ tools/build-docs.sh | 26 ++ 4 files changed, 693 insertions(+) create mode 100644 .github/workflows/docs.yml create mode 100644 Tests/Fixtures/README.md create mode 100755 tools/build-docs.sh diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..de7c3b0 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,52 @@ +# API reference: one DocC archive per module (the .docc catalogs under Sources/), merged into one static site and +# published to GitHub Pages at https://mac4dstem.github.io/FormatoKit/documentation/ on every tag. +# On a pull request the site is built and uploaded as an artifact only, so a broken catalog fails before the tag. +# +# No swift-docc-plugin: the kit takes no package dependencies (CLAUDE.md). `xcodebuild docbuild` builds the archives +# from the package's own schemes; `docc merge` (Xcode 16+) joins them. Needs Pages enabled with source "GitHub Actions" +# (repository Settings > Pages). Copied from CuboKit's pattern; the module list is read from the .docc catalogs. +name: Docs + +on: + push: + tags: ['*'] + pull_request: + paths: ['Sources/**/*.docc/**', '.github/workflows/docs.yml', 'tools/build-docs.sh'] + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: docs-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + runs-on: macos-latest + timeout-minutes: 60 + steps: + - uses: actions/checkout@v4 + - name: Select the newest Xcode + run: | + xcode=$(ls -d /Applications/Xcode*.app | sort -V | tail -1) + sudo xcode-select -s "$xcode" + xcodebuild -version + - name: Build the site + run: tools/build-docs.sh .docs-site /FormatoKit + - uses: actions/upload-pages-artifact@v3 + with: + path: .docs-site + + deploy: + needs: build + if: startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index ad12267..bd3f8f0 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ __pycache__/ *.pyc dist/ +.docs-site/ diff --git a/Tests/Fixtures/README.md b/Tests/Fixtures/README.md new file mode 100644 index 0000000..67c0420 --- /dev/null +++ b/Tests/Fixtures/README.md @@ -0,0 +1,614 @@ +# Test fixtures + +One row per committed fixture file under `Tests/*/Fixtures/`: size, the script under `tools/` that names it (the generator or its +pin script; a few scripts write a whole directory; a script found only by file-name prefix, tool-folder name or test module is marked so), and a note where the origin is not the kit's own pinned reference. 593 files. + +Licence: every fixture is generated from this kit's own code and the pinned Python reference (see `CLAUDE.md`, Reference) and ships under the kit's GPL-3.0-or-later licence, except the rows marked *third party*. Nothing here is the owner's data: the committed text fixtures carry no owner path or name (checked by search), and real datasets are read from `$MACEM_DATA` and never copied into the repo. + +## Third party + +13 files, listed in the table below with the note *third party*. Keep their licence line when the files move. + +## Needs an origin line + +1 fixtures that no script under `tools/` names. They may be written by a directory-level script, by hand, or copied from an earlier kit; a Mac session with the pin scripts fills in the origin and removes the file from this list. + +- `FormatoEMDTests/Fixtures/policy/si-units-px.emd` + +## All fixtures + +| File | Size | Generated by | Note | +|---|---|---|---| +| `FormatoCoreTests/Fixtures/png/check-result.json` | 2.0 KB | `tools/bragg-writer/check.py`, `tools/emd-bundle/check.py`, `tools/hdf5-append/generate.py` +1 | | +| `FormatoCoreTests/Fixtures/png/input.png` | 82 B | `tools/png/generate.py`, `tools/png/oracle.sh` | | +| `FormatoCoreTests/Fixtures/png/mactem-inserted.png` | 263 B | `tools/png/check.py`, `tools/png/oracle.sh` | | +| `FormatoCoreTests/Fixtures/png/swift-gray16.png` | 104 B | `tools/png/check.py` | | +| `FormatoCoreTests/Fixtures/png/swift-gray8.png` | 164 B | `tools/png/check.py` | | +| `FormatoCoreTests/Fixtures/png/swift-rgb8-hashed.png` | 2.2 KB | `tools/png/check.py` | | +| `FormatoCoreTests/Fixtures/png/swift-rgb8-large.png` | 5.5 KB | `tools/png/check.py` | | +| `FormatoCoreTests/Fixtures/png/swift-rgb8-stored.png` | 9.1 KB | `tools/png/check.py` | | +| `FormatoCoreTests/Fixtures/png/swift-rgb8.png` | 215 B | `tools/png/check.py` | | +| `FormatoCoreTests/Fixtures/png/swift-rgba8.png` | 128 B | `tools/png/check.py` | | +| `FormatoCoreTests/Fixtures/refuter-pins.json` | 8.4 KB | `tools/step-3/refuter_pins.py`, `tools/step-4/refuter_pins.py` | | +| `FormatoCoreTests/Fixtures/refuter/p_stack_offset_no_x.emd` | 192.3 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoCoreTests/Fixtures/refuter/p_stack_offset_nonnum_x.emd` | 192.3 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoCoreTests/Fixtures/refuter/p_stack_pixelsize_no_width.emd` | 192.3 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoCoreTests/Fixtures/refuter/s_frametime_str.emd` | 192.3 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoCoreTests/Fixtures/refuter/s_scan_missing.emd` | 192.3 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoCoreTests/Fixtures/refuter/t_trap_overflow.emd` | 192.3 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoCoreTests/Fixtures/refuter/t_trap_subnormal.emd` | 192.3 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoCoreTests/Fixtures/refuter/u_stack_pixelsize_missing.emd` | 192.3 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoCoreTests/Fixtures/refuter/u_stack_pixelsize_nonnum.emd` | 192.3 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoCoreTests/Fixtures/refuter/u_stack_unit_nm.emd` | 192.3 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoCoreTests/Fixtures/refuter/u_stack_unit_px.emd` | 192.3 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoCoreTests/Fixtures/step-1-pins.json` | 225.5 KB | `tools/step-1/pins.py` | | +| `FormatoCoreTests/Fixtures/step-3-pins.json` | 30.7 KB | `tools/step-3/pins.py` | | +| `FormatoCoreTests/Fixtures/step-3-refuter-pins.json` | 6.9 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoCoreTests/Fixtures/step-4-pins.json` | 450.2 KB | `tools/step-4/pins.py` | | +| `FormatoCoreTests/Fixtures/step-4-refuter-pins.json` | 28.0 KB | `tools/step-4/refuter_pins.py` | | +| `FormatoCoreTests/Fixtures/units-pins.json` | 685.4 KB | `tools/step-1/pins.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/ambiguous-date.dm4` | 1.3 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/angles-without-eels-signal.dm4` | 1.2 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/cl-databar-wins.dm4` | 1.4 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/cl-dwell.dm4` | 1.2 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/cl-other-mode.dm4` | 1.1 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/cl-parallel.dm4` | 2.6 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/cl-serial.dm4` | 1.7 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/eds-full.dm4` | 1.6 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/eds-text-values.dm4` | 1.2 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/eels-angles.dm4` | 1.5 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/eels-aperture-unparseable.dm4` | 1.3 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/eels-exposure-frames.dm4` | 1.3 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/eels-full.dm4` | 1.8 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/eels-integration.dm4` | 1.4 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/eels-orsay.dm4` | 1.3 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/eels-scanning.dm4` | 1.3 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/negative-voltage.dm4` | 1.2 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/no-microscope-group.dm4` | 1.3 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/pins.json` | 29.7 KB | `tools/acq-metadata/generate.py`, `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` +16 | | +| `FormatoDMTests/Fixtures/acq-metadata/sem-stage.dm4` | 1.3 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/sem.dm4` | 1.3 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/si-group.dm4` | 1.5 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/stack-builder.dm4` | 1.7 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/stack-fallback.dm4` | 1.2 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/stack-stage.dm4` | 1.6 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/stage-beam-operator.dm4` | 1.7 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/stem.dm4` | 2.0 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/tem-diffraction.dm4` | 1.3 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/tem-image.dm4` | 1.7 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/unparseable-date.dm4` | 1.2 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/whitespace-names.dm4` | 1.4 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/xray-no-dwell.dm4` | 1.2 KB | `tools/acq-metadata/generate.py` | | +| `FormatoDMTests/Fixtures/acq-metadata/zeros.dm4` | 1.3 KB | `tools/acq-metadata/generate.py`, `tools/bragg-writer/generate.py`, `tools/empad/generate.py` +5 | | +| `FormatoDMTests/Fixtures/demo-edx-tiny.dm4` | 119.9 KB | `tools/emd-bundle/oracle/main.swift` (name prefix) | | +| `FormatoDMTests/Fixtures/demo-edx-tiny.truth.json` | 362.3 KB | `tools/emd-bundle/oracle/main.swift` (name prefix) | | +| `FormatoDMTests/Fixtures/dm-tag65027-saved-with-DM.dm4` | 10.3 KB | `tools/dm4-gather/generate.py` (module only) | | +| `FormatoDMTests/Fixtures/dm-tag65027-saved-with-DM.truth.json` | 8.1 KB | `tools/dm4-gather/generate.py` (module only) | | +| `FormatoDMTests/Fixtures/eels-planted.dm4` | 38.6 KB | `tools/dm4-gather/generate.py` (module only) | | +| `FormatoDMTests/Fixtures/eels-planted.truth.json` | 38.5 KB | `tools/dm4-gather/generate.py` (module only) | | +| `FormatoDMTests/Fixtures/eels-refused-long.dm4` | 2.0 KB | `tools/dm4-gather/generate.py` (module only) | | +| `FormatoDMTests/Fixtures/eels-refused-long.truth.json` | 487 B | `tools/dm4-gather/generate.py` (module only) | | +| `FormatoDMTests/Fixtures/eels-refused-short.dm4` | 2.0 KB | `tools/dm4-gather/generate.py` (module only) | | +| `FormatoDMTests/Fixtures/eels-refused-short.truth.json` | 488 B | `tools/dm4-gather/generate.py` (module only) | | +| `FormatoDMTests/Fixtures/eels-refused-zero.dm4` | 1.9 KB | `tools/dm4-gather/generate.py` (module only) | | +| `FormatoDMTests/Fixtures/eels-refused-zero.truth.json` | 486 B | `tools/dm4-gather/generate.py` (module only) | | +| `FormatoDMTests/Fixtures/eels-refused-zerodim.dm4` | 1.8 KB | `tools/dm4-gather/generate.py` (module only) | | +| `FormatoDMTests/Fixtures/eels-refused-zerodim.truth.json` | 445 B | `tools/dm4-gather/generate.py` (module only) | | +| `FormatoDMTests/Fixtures/gather/detector-1.app.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-1.bin` | 240 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-1.dm3` | 1.1 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-1.dm4` | 1.6 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-10.app.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-10.bin` | 240 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-10.dm4` | 1.6 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-11.app.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-11.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-11.dm4` | 1.9 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-12.app.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-12.bin` | 960 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-12.dm4` | 2.3 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-2.app.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-2.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-2.dm4` | 1.9 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-6.app.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-6.bin` | 120 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-6.dm4` | 1.5 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-7.app.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-7.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-7.dm4` | 1.9 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-9.app.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-9.bin` | 120 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/detector-9.dm4` | 1.5 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/pins.json` | 19.1 KB | `tools/acq-metadata/generate.py`, `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` +16 | | +| `FormatoDMTests/Fixtures/gather/scan-1.app.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-1.bin` | 240 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-1.dm4` | 1.6 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-10.app.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-10.bin` | 240 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-10.dm4` | 1.6 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-11.app.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-11.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-11.dm4` | 1.8 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-12.app.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-12.bin` | 960 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-12.dm4` | 2.3 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-2.app.bin` | 2.3 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-2.bin` | 2.3 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-2.dm3` | 3.2 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-2.dm4` | 3.7 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-6.app.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-6.bin` | 120 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-6.dm4` | 1.5 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-7.app.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-7.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-7.dm3` | 1.3 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-7.dm4` | 1.8 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-9.app.bin` | 480 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-9.bin` | 120 B | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/gather/scan-9.dm4` | 1.5 KB | `tools/dm4-gather/generate.py` | | +| `FormatoDMTests/Fixtures/rsciio-EELS_SI.dm4` | 332.1 KB | `tools/dm4-gather/generate.py` (module only) | third party: RosettaSciIO public test data (GPL-3.0-or-later), copied unchanged | +| `FormatoDMTests/Fixtures/rsciio-EELS_SI.truth.json` | 2.5 KB | `tools/dm4-gather/generate.py` (module only) | third party: RosettaSciIO public test data (GPL-3.0-or-later), copied unchanged | +| `FormatoEMDTests/Fixtures/acq-metadata/acq-pins.json` | 6.5 KB | `tools/acq-metadata/generate.py` | | +| `FormatoEMDTests/Fixtures/acq-metadata/velox-acquisition.emd` | 48.7 KB | `tools/acq-metadata/generate.py` | | +| `FormatoEMDTests/Fixtures/image-readers/pins.json` | 9.8 KB | `tools/acq-metadata/generate.py`, `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` +16 | | +| `FormatoEMDTests/Fixtures/image-readers/velox-objects.emd` | 76.7 KB | `tools/acq-metadata/generate.py` | | +| `FormatoEMDTests/Fixtures/policy/si-units-px.emd` | 26.8 KB | none found | | +| `FormatoEMDTests/Fixtures/refuter-step3/A1_ops_named_no_Detectors_key.emd` | 21.3 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/refuter-step3/A2_ops_named_detector_without_name.emd` | 21.3 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/refuter-step3/A3_ops_unrecognized_detector_without_name.emd` | 21.3 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/refuter-step3/A4_ops_named_Detectors_is_list.emd` | 21.3 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/refuter-step3/C10_md_acq_no_start_custom_str.emd` | 20.7 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/refuter-step3/C10_md_acq_no_start_no_custom.emd` | 20.7 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/refuter-step3/C10_md_no_acq.emd` | 20.7 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/refuter-step3/C7_displays_dataset_root_img.emd` | 20.7 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/refuter-step3/C7_features_dataset_root_img.emd` | 20.7 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/refuter-step3/C7_ops_dataset_root.emd` | 20.7 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/refuter-step3/G_ver_missing_key_image.emd` | 20.7 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/refuter-step3/G_ver_nbsp.emd` | 29.2 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/refuter-step3/G_ver_zerowidth.emd` | 29.2 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/spectra-pins.json` | 138.9 KB | `tools/velox-spectrum/pins.py` | | +| `FormatoEMDTests/Fixtures/spectra/sp-bad-dispersion.emd` | 19.4 KB | `tools/velox-spectrum/pins.py` | | +| `FormatoEMDTests/Fixtures/spectra/sp-bad-voltage.emd` | 19.4 KB | `tools/velox-spectrum/pins.py` | | +| `FormatoEMDTests/Fixtures/spectra/sp-ceta-stamp.emd` | 19.4 KB | `tools/velox-spectrum/pins.py` | | +| `FormatoEMDTests/Fixtures/spectra/sp-devkit.emd` | 19.4 KB | `tools/velox-spectrum/pins.py` | | +| `FormatoEMDTests/Fixtures/spectra/sp-images-only.emd` | 25.4 KB | `tools/velox-spectrum/pins.py` | | +| `FormatoEMDTests/Fixtures/spectra/sp-no-acquisition.emd` | 19.4 KB | `tools/velox-spectrum/pins.py` | | +| `FormatoEMDTests/Fixtures/spectra/sp-no-detector0.emd` | 19.4 KB | `tools/velox-spectrum/pins.py` | | +| `FormatoEMDTests/Fixtures/spectra/sp-nodetector.emd` | 19.4 KB | `tools/velox-spectrum/pins.py` | | +| `FormatoEMDTests/Fixtures/spectra/sp-none.emd` | 9.8 KB | `tools/velox-spectrum/pins.py` | | +| `FormatoEMDTests/Fixtures/spectra/sp-notvelox.emd` | 19.4 KB | `tools/velox-spectrum/pins.py` | | +| `FormatoEMDTests/Fixtures/spectra/sp-rank1.emd` | 19.4 KB | `tools/velox-spectrum/pins.py` | | +| `FormatoEMDTests/Fixtures/spectra/sp-single.emd` | 19.4 KB | `tools/velox-spectrum/pins.py` | | +| `FormatoEMDTests/Fixtures/spectra/sp-stack.emd` | 19.4 KB | `tools/velox-spectrum/pins.py` | | +| `FormatoEMDTests/Fixtures/spectra/sp-stream.emd` | 32.3 KB | `tools/velox-spectrum/pins.py` | | +| `FormatoEMDTests/Fixtures/spectra/sp-two.emd` | 23.4 KB | `tools/velox-spectrum/pins.py` | | +| `FormatoEMDTests/Fixtures/step4/refuter/detectorname-list.emd` | 25.8 KB | `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/refuter/dispersion-arabic-digits.emd` | 25.8 KB | `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/refuter/endframe-1e30.emd` | 25.8 KB | `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/refuter/endframe-arabic-digit.emd` | 25.8 KB | `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/refuter/image-pixelunitx-null.emd` | 25.8 KB | `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/refuter/image-zero-frames.emd` | 25.8 KB | `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/refuter/overflow-grid-no-endframe.emd` | 25.8 KB | `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/refuter/stream-bigendian-u2.emd` | 25.8 KB | `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/refuter/stream-lzf.emd` | 28.3 KB | `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/refuter/unit-am-ulp.emd` | 34.2 KB | `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/refuter/unit-fm-fermi.emd` | 25.8 KB | `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/refuter/unit-m-ulp-width2.7e-4-nx5.emd` | 25.8 KB | `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/refuter/unit-m-ulp-width3.85e-4-nx5.emd` | 25.8 KB | `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/refuter/unit-ym-ulp.emd` | 25.8 KB | `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/refuter/version-underscore.emd` | 25.8 KB | `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/si-planted-bins.emd` | 31.8 KB | `tools/step-4/make_velox_si.py` | | +| `FormatoEMDTests/Fixtures/step4/si-planted-eels.emd` | 50.9 KB | `tools/step-4/make_velox_si.py` | | +| `FormatoEMDTests/Fixtures/step4/si-planted-endframe.emd` | 25.8 KB | `tools/step-4/make_velox_si.py` | | +| `FormatoEMDTests/Fixtures/step4/si-planted-grid.emd` | 25.8 KB | `tools/step-4/make_velox_si.py` | | +| `FormatoEMDTests/Fixtures/step4/si-planted-v11.emd` | 37.8 KB | `tools/step-4/make_velox_si.py` | | +| `FormatoEMDTests/Fixtures/step4/si-planted-v9.emd` | 26.8 KB | `tools/step-4/make_velox_si.py` | | +| `FormatoEMDTests/Fixtures/step4/sk-1stream-1frame.emd` | 42.2 KB | `tools/step-4/make_velox_si.py`, `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/sk-1stream-3frames.emd` | 188.3 KB | `tools/step-4/make_velox_si.py`, `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/sk-4streams-2frames.emd` | 96.8 KB | `tools/step-4/make_velox_si.py`, `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/sk-axis-decoy.emd` | 42.2 KB | `tools/step-4/make_velox_si.py`, `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/sk-axis-order.emd` | 42.2 KB | `tools/step-4/make_velox_si.py`, `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/sk-unterminated.emd` | 42.2 KB | `tools/step-4/make_velox_si.py`, `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/spectrokit/PROVENANCE.md` | 1.5 KB | `tools/step-4/make_velox_si.py` | | +| `FormatoEMDTests/Fixtures/step4/spectrokit/velox-stream-1stream-1frame.emd` | 48.4 KB | `tools/step-4/make_velox_si.py`, `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/spectrokit/velox-stream-1stream-3frames.emd` | 201.8 KB | `tools/step-4/make_velox_si.py`, `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/spectrokit/velox-stream-4streams-2frames.emd` | 103.1 KB | `tools/step-4/make_velox_si.py`, `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/spectrokit/velox-stream-axis-decoy.emd` | 48.4 KB | `tools/step-4/make_velox_si.py`, `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/spectrokit/velox-stream-axis-order.emd` | 48.4 KB | `tools/step-4/make_velox_si.py`, `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/spectrokit/velox-stream-unterminated.emd` | 48.4 KB | `tools/step-4/make_velox_si.py`, `tools/step-4/refuter_pins.py` | | +| `FormatoEMDTests/Fixtures/step4/spectrokit/velox-streams-truth.json` | 78.7 KB | `tools/step-4/make_velox_si.py` | | +| `FormatoEMDTests/Fixtures/velox-flags-planted.emd` | 66.6 KB | `tools/velox-spectrum/pins.py` (tool folder name) | | +| `FormatoEMDTests/Fixtures/velox-metadata-planted.emd` | 52.7 KB | `tools/velox-spectrum/pins.py` (tool folder name) | | +| `FormatoEMDTests/Fixtures/velox-metadata-planted.truth.json` | 3.6 KB | `tools/velox-spectrum/pins.py` (tool folder name) | | +| `FormatoEMDTests/Fixtures/velox-stream-axis-order.emd` | 48.4 KB | `tools/velox-spectrum/pins.py` (tool folder name) | | +| `FormatoEMDTests/Fixtures/velox-stream-axis-order.pin.json` | 381 B | `tools/velox-spectrum/pins.py` (tool folder name) | | +| `FormatoEMDTests/Fixtures/velox-tiny.emd` | 42.6 KB | `tools/velox-spectrum/pins.py` (tool folder name) | | +| `FormatoEMDTests/Fixtures/velox-titles-v11-labels.emd` | 39.0 KB | `tools/step-3/make_velox_titles.py` | | +| `FormatoEMDTests/Fixtures/velox-titles-v11-noops.emd` | 48.7 KB | `tools/step-3/make_velox_titles.py` | | +| `FormatoEMDTests/Fixtures/velox-titles-v6-image.emd` | 159.2 KB | `tools/step-3/make_velox_titles.py` | | +| `FormatoEMDTests/Fixtures/velox-titles-v9-labels.emd` | 36.6 KB | `tools/step-3/make_velox_titles.py` | | +| `FormatoEMPADTests/Fixtures/legacy.data.gz` | 3.0 KB | `tools/empad/generate.py` | | +| `FormatoEMPADTests/Fixtures/legacy.xml` | 327 B | `tools/empad/generate.py` | | +| `FormatoEMPADTests/Fixtures/modern.data.gz` | 3.0 KB | `tools/empad/generate.py` | | +| `FormatoEMPADTests/Fixtures/modern.xml` | 553 B | `tools/empad/generate.py` | | +| `FormatoEMPADTests/Fixtures/override.data.gz` | 3.0 KB | `tools/empad/generate.py` | | +| `FormatoEMPADTests/Fixtures/override.xml` | 234 B | `tools/empad/generate.py` | | +| `FormatoEMPADTests/Fixtures/pins.json` | 5.9 KB | `tools/acq-metadata/generate.py`, `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` +16 | | +| `FormatoEMPADTests/Fixtures/scan_x3_y2.raw.gz` | 3.1 KB | `tools/empad/generate.py` | | +| `FormatoEMPADTests/Fixtures/series.data.gz` | 3.0 KB | `tools/empad/generate.py`, `tools/step-2/make_planted.py`, `tools/step-2/pins.py` | | +| `FormatoEMPADTests/Fixtures/series.xml` | 217 B | `tools/empad/generate.py`, `tools/step-2/make_planted.py`, `tools/step-2/pins.py` | | +| `FormatoEMPADTests/Fixtures/singleton.data.gz` | 3.0 KB | `tools/acq-metadata/generate.py`, `tools/empad/generate.py`, `tools/hdf5-4d/generate.py` +1 | | +| `FormatoEMPADTests/Fixtures/singleton.xml` | 184 B | `tools/acq-metadata/generate.py`, `tools/empad/generate.py`, `tools/hdf5-4d/generate.py` +1 | | +| `FormatoGoldenTests/Fixtures/velox-tiny-reader.txt` | 11.6 KB | `tools/velox-spectrum/pins.py` (tool folder name) | | +| `FormatoHDF5Tests/Fixtures/4d/attributes.bin` | 192 B | `tools/hdf5-4d/generate.py` | | +| `FormatoHDF5Tests/Fixtures/4d/attributes.h5` | 14.9 KB | `tools/hdf5-4d/generate.py` | | +| `FormatoHDF5Tests/Fixtures/4d/fallback.bin` | 384 B | `tools/hdf5-4d/generate.py` | | +| `FormatoHDF5Tests/Fixtures/4d/float32.bin` | 16.0 KB | `tools/acq-metadata/generate.py`, `tools/acq-metadata/harness.swift`, `tools/hdf5-4d/generate.py` +9 | | +| `FormatoHDF5Tests/Fixtures/4d/float32.h5` | 41.2 KB | `tools/acq-metadata/generate.py`, `tools/acq-metadata/harness.swift`, `tools/hdf5-4d/generate.py` +9 | | +| `FormatoHDF5Tests/Fixtures/4d/float32.qx0.bin` | 128 B | `tools/hdf5-4d/generate.py` | | +| `FormatoHDF5Tests/Fixtures/4d/float32.qx0_meas.bin` | 128 B | `tools/hdf5-4d/generate.py` | | +| `FormatoHDF5Tests/Fixtures/4d/float32.qy0.bin` | 128 B | `tools/hdf5-4d/generate.py` | | +| `FormatoHDF5Tests/Fixtures/4d/float32.qy0_meas.bin` | 128 B | `tools/hdf5-4d/generate.py` | | +| `FormatoHDF5Tests/Fixtures/4d/malformed.h5` | 16.3 KB | `tools/bragg-writer/generate.py`, `tools/hdf5-4d/generate.py` | | +| `FormatoHDF5Tests/Fixtures/4d/pins.json` | 2.1 KB | `tools/acq-metadata/generate.py`, `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` +16 | | +| `FormatoHDF5Tests/Fixtures/4d/singleton.bin` | 4.0 KB | `tools/acq-metadata/generate.py`, `tools/empad/generate.py`, `tools/hdf5-4d/generate.py` +1 | | +| `FormatoHDF5Tests/Fixtures/4d/singleton.h5` | 25.6 KB | `tools/acq-metadata/generate.py`, `tools/empad/generate.py`, `tools/hdf5-4d/generate.py` +1 | | +| `FormatoHDF5Tests/Fixtures/4d/singleton.qx0.bin` | 32 B | `tools/hdf5-4d/generate.py` | | +| `FormatoHDF5Tests/Fixtures/4d/singleton.qx0_meas.bin` | 32 B | `tools/hdf5-4d/generate.py` | | +| `FormatoHDF5Tests/Fixtures/4d/singleton.qy0.bin` | 32 B | `tools/hdf5-4d/generate.py` | | +| `FormatoHDF5Tests/Fixtures/4d/singleton.qy0_meas.bin` | 32 B | `tools/hdf5-4d/generate.py` | | +| `FormatoHDF5Tests/Fixtures/4d/uint16.bin` | 8.0 KB | `tools/acq-metadata/generate.py`, `tools/acq-metadata/harness.swift`, `tools/hdf5-4d/generate.py` +7 | | +| `FormatoHDF5Tests/Fixtures/4d/uint16.h5` | 29.6 KB | `tools/acq-metadata/generate.py`, `tools/acq-metadata/harness.swift`, `tools/hdf5-4d/generate.py` +7 | | +| `FormatoHDF5Tests/Fixtures/4d/uint16.qx0.bin` | 128 B | `tools/hdf5-4d/generate.py` | | +| `FormatoHDF5Tests/Fixtures/4d/uint16.qx0_meas.bin` | 128 B | `tools/hdf5-4d/generate.py` | | +| `FormatoHDF5Tests/Fixtures/4d/uint16.qy0.bin` | 128 B | `tools/hdf5-4d/generate.py` | | +| `FormatoHDF5Tests/Fixtures/4d/uint16.qy0_meas.bin` | 128 B | `tools/hdf5-4d/generate.py` | | +| `FormatoHDF5Tests/Fixtures/append/base.h5` | 14.1 KB | `tools/hdf5-append/generate.py` | | +| `FormatoHDF5Tests/Fixtures/append/check-result.json` | 611 B | `tools/bragg-writer/check.py`, `tools/emd-bundle/check.py`, `tools/hdf5-append/generate.py` +1 | | +| `FormatoHDF5Tests/Fixtures/append/inputs.json` | 6.2 KB | `tools/hdf5-append/generate.py` | | +| `FormatoHDF5Tests/Fixtures/append/swift-appended.h5` | 23.5 KB | `tools/hdf5-append/generate.py` | | +| `FormatoHDF5Tests/Fixtures/append/swift-new.h5` | 2.0 KB | `tools/hdf5-append/generate.py` | | +| `FormatoHDF5Tests/Fixtures/append/swift-replaced.h5` | 14.1 KB | `tools/hdf5-append/generate.py` | | +| `FormatoHDF5Tests/Fixtures/bragg/basic.h5` | 22.7 KB | `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` | | +| `FormatoHDF5Tests/Fixtures/bragg/basic.peaks.bin` | 168 B | `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` | | +| `FormatoHDF5Tests/Fixtures/bragg/check-result.json` | 1.2 KB | `tools/bragg-writer/check.py`, `tools/emd-bundle/check.py`, `tools/hdf5-append/generate.py` +1 | | +| `FormatoHDF5Tests/Fixtures/bragg/empty.h5` | 19.7 KB | `tools/bragg-writer/check.py` | | +| `FormatoHDF5Tests/Fixtures/bragg/empty.peaks.bin` | 0 B | `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` | | +| `FormatoHDF5Tests/Fixtures/bragg/malformed.h5` | 124.5 KB | `tools/bragg-writer/generate.py`, `tools/hdf5-4d/generate.py` | | +| `FormatoHDF5Tests/Fixtures/bragg/pins.json` | 11.0 KB | `tools/acq-metadata/generate.py`, `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` +16 | | +| `FormatoHDF5Tests/Fixtures/bragg/plain.h5` | 4.6 KB | `tools/bragg-writer/generate.py` | | +| `FormatoHDF5Tests/Fixtures/bragg/swift-basic.h5` | 15.0 KB | `tools/bragg-writer/check.py` | | +| `FormatoHDF5Tests/Fixtures/bragg/swift-empty.h5` | 11.9 KB | `tools/bragg-writer/check.py` | | +| `FormatoHDF5Tests/Fixtures/bragg/swift-extras.h5` | 15.4 KB | `tools/bragg-writer/check.py` | | +| `FormatoHDF5Tests/Fixtures/bragg/two.h5` | 34.0 KB | `tools/bragg-writer/generate.py` | | +| `FormatoHDF5Tests/Fixtures/emd-bundle/app-bundle.h5` | 22.3 KB | `tools/emd-bundle/check.py`, `tools/emd-bundle/oracle/main.swift` | | +| `FormatoHDF5Tests/Fixtures/emd-bundle/app-datacube.h5` | 23.1 KB | `tools/emd-bundle/check.py`, `tools/emd-bundle/oracle/main.swift` | | +| `FormatoHDF5Tests/Fixtures/emd-bundle/app-sidecar.h5` | 24.4 KB | `tools/emd-bundle/check.py`, `tools/emd-bundle/oracle/main.swift` | | +| `FormatoHDF5Tests/Fixtures/emd-bundle/check-result.json` | 1.5 KB | `tools/bragg-writer/check.py`, `tools/emd-bundle/check.py`, `tools/hdf5-append/generate.py` +1 | | +| `FormatoHDF5Tests/Fixtures/emd-bundle/swift-bundle.h5` | 22.4 KB | `tools/emd-bundle/check.py` | | +| `FormatoHDF5Tests/Fixtures/emd-bundle/swift-datacube-default.h5` | 24.8 KB | `tools/emd-bundle/check.py` | | +| `FormatoHDF5Tests/Fixtures/emd-bundle/swift-datacube.h5` | 24.8 KB | `tools/emd-bundle/check.py` | | +| `FormatoHDF5Tests/Fixtures/emd-bundle/swift-sidecar.h5` | 32.3 KB | `tools/emd-bundle/check.py` | | +| `FormatoHDF5Tests/Fixtures/low-level/assorted.h5` | 32.2 KB | `tools/hdf5-append/generate.py` | | +| `FormatoHDF5Tests/Fixtures/low-level/latest.h5` | 11.6 KB | `tools/hdf5-append/generate.py` | | +| `FormatoHDF5Tests/Fixtures/low-level/pins.json` | 22.7 KB | `tools/acq-metadata/generate.py`, `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` +16 | | +| `FormatoHDF5Tests/Fixtures/root-attributes/array-attribute.h5` | 888 B | `tools/hdf5-write/generate.py` | | +| `FormatoHDF5Tests/Fixtures/root-attributes/dense.h5` | 4.2 KB | `tools/hdf5-write/generate.py` | | +| `FormatoHDF5Tests/Fixtures/root-attributes/embedded-nul.h5` | 872 B | `tools/hdf5-write/generate.py` | | +| `FormatoHDF5Tests/Fixtures/root-attributes/h5py-written.h5` | 29.6 KB | `tools/hdf5-write/generate.py` | | +| `FormatoHDF5Tests/Fixtures/root-attributes/invalid-utf8.h5` | 872 B | `tools/hdf5-write/generate.py` | | +| `FormatoHDF5Tests/Fixtures/root-attributes/kit-written.h5` | 29.6 KB | `tools/hdf5-write/generate.py` | | +| `FormatoHDF5Tests/Fixtures/root-attributes/kit-written.h5py.json` | 905 B | `tools/hdf5-write/generate.py` | | +| `FormatoHDF5Tests/Fixtures/root-attributes/not-a-string.h5` | 880 B | `tools/hdf5-write/generate.py` | | +| `FormatoHDF5Tests/Fixtures/root-attributes/not-hdf5.h5` | 100 B | `tools/hdf5-write/generate.py` | | +| `FormatoHDF5Tests/Fixtures/root-attributes/variable-length.h5` | 6.0 KB | `tools/hdf5-write/generate.py` | | +| `FormatoMIBTests/Fixtures/app-U08-2x2.data.gz` | 10.4 KB | `tools/hdf5-append/generate.py` (tool folder name) | | +| `FormatoMIBTests/Fixtures/app-U08-2x2.hdr` | 18 B | `tools/hdf5-append/generate.py` (tool folder name) | | +| `FormatoMIBTests/Fixtures/app-U08-2x2.mib.gz` | 2.5 KB | `tools/hdf5-append/generate.py` (tool folder name) | | +| `FormatoMIBTests/Fixtures/app-U08-2x2G.data.gz` | 10.5 KB | `tools/hdf5-append/generate.py` (tool folder name) | | +| `FormatoMIBTests/Fixtures/app-U08-2x2G.hdr` | 18 B | `tools/hdf5-append/generate.py` (tool folder name) | | +| `FormatoMIBTests/Fixtures/app-U08-2x2G.mib.gz` | 2.5 KB | `tools/hdf5-append/generate.py` (tool folder name) | | +| `FormatoMIBTests/Fixtures/app-U08.data.gz` | 3.0 KB | `tools/hdf5-append/generate.py` (tool folder name) | | +| `FormatoMIBTests/Fixtures/app-U08.hdr` | 18 B | `tools/hdf5-append/generate.py` (tool folder name) | | +| `FormatoMIBTests/Fixtures/app-U08.mib.gz` | 1020 B | `tools/hdf5-append/generate.py` (tool folder name) | | +| `FormatoMIBTests/Fixtures/app-U16.data.gz` | 3.0 KB | `tools/hdf5-append/generate.py` (tool folder name) | | +| `FormatoMIBTests/Fixtures/app-U16.hdr` | 18 B | `tools/hdf5-append/generate.py` (tool folder name) | | +| `FormatoMIBTests/Fixtures/app-U16.mib.gz` | 1.7 KB | `tools/hdf5-append/generate.py` (tool folder name) | | +| `FormatoMIBTests/Fixtures/app-U32.data.gz` | 3.0 KB | `tools/hdf5-append/generate.py` (tool folder name) | | +| `FormatoMIBTests/Fixtures/app-U32.hdr` | 18 B | `tools/hdf5-append/generate.py` (tool folder name) | | +| `FormatoMIBTests/Fixtures/app-U32.mib.gz` | 3.2 KB | `tools/hdf5-append/generate.py` (tool folder name) | | +| `FormatoMIBTests/Fixtures/pins.json` | 18.0 KB | `tools/acq-metadata/generate.py`, `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` +16 | | +| `FormatoMIBTests/Fixtures/processed1-trigger.data.gz` | 25 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed1-trigger.hdr` | 74 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed1-trigger.mib.gz` | 141 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed12-continuous.data.gz` | 167 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed12-continuous.hdr` | 74 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed12-continuous.mib.gz` | 297 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed12-explicit.data.gz` | 167 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed12-explicit.mib.gz` | 297 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed12-interrupted.data.gz` | 119 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed12-interrupted.mib.gz` | 297 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed12-quad.data.gz` | 167 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed12-quad.mib.gz` | 311 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed12-slice.data.gz` | 95 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed12-slice.mib.gz` | 297 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed12-timestamps.data.gz` | 167 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed12-timestamps.mib.gz` | 297 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed12-trigger.data.gz` | 167 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed12-trigger.hdr` | 74 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed12-trigger.mib.gz` | 297 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed24-trigger.data.gz` | 217 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed24-trigger.hdr` | 74 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed24-trigger.mib.gz` | 350 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed6-trigger.data.gz` | 86 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed6-trigger.hdr` | 74 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/processed6-trigger.mib.gz` | 210 B | `tools/mib/generate.py` (name prefix) | | +| `FormatoMIBTests/Fixtures/raw1.mib.gz` | 88 B | `tools/mib/generate.py` (module only) | | +| `FormatoMIBTests/Fixtures/raw12.mib.gz` | 90 B | `tools/mib/generate.py` (module only) | | +| `FormatoMIBTests/Fixtures/raw24.mib.gz` | 90 B | `tools/mib/generate.py` (module only) | | +| `FormatoMIBTests/Fixtures/raw6.mib.gz` | 89 B | `tools/mib/generate.py` (module only) | | +| `FormatoMIBTests/Fixtures/singleton-1-3-4.data.gz` | 41 B | `tools/acq-metadata/generate.py`, `tools/empad/generate.py`, `tools/hdf5-4d/generate.py` +1 (name prefix) | | +| `FormatoMIBTests/Fixtures/singleton-1-3-4.mib.gz` | 111 B | `tools/acq-metadata/generate.py`, `tools/empad/generate.py`, `tools/hdf5-4d/generate.py` +1 (name prefix) | | +| `FormatoMIBTests/Fixtures/singleton-2-1-4.data.gz` | 36 B | `tools/acq-metadata/generate.py`, `tools/empad/generate.py`, `tools/hdf5-4d/generate.py` +1 (name prefix) | | +| `FormatoMIBTests/Fixtures/singleton-2-1-4.mib.gz` | 113 B | `tools/acq-metadata/generate.py`, `tools/empad/generate.py`, `tools/hdf5-4d/generate.py` +1 (name prefix) | | +| `FormatoMIBTests/Fixtures/singleton-2-3-1.data.gz` | 32 B | `tools/acq-metadata/generate.py`, `tools/empad/generate.py`, `tools/hdf5-4d/generate.py` +1 (name prefix) | | +| `FormatoMIBTests/Fixtures/singleton-2-3-1.mib.gz` | 109 B | `tools/acq-metadata/generate.py`, `tools/empad/generate.py`, `tools/hdf5-4d/generate.py` +1 (name prefix) | | +| `FormatoMRCTests/Fixtures/acq-metadata/fei-128-big-endian-stamp.mrc` | 129.1 KB | `tools/acq-metadata/generate.py` | | +| `FormatoMRCTests/Fixtures/acq-metadata/fei-128-sections.mrc` | 129.1 KB | `tools/acq-metadata/generate.py` | | +| `FormatoMRCTests/Fixtures/acq-metadata/fei2-all-set.mrc` | 2.8 KB | `tools/acq-metadata/generate.py` | | +| `FormatoMRCTests/Fixtures/acq-metadata/fei2-zero-and-clear-bits.mrc` | 1.9 KB | `tools/acq-metadata/generate.py` | | +| `FormatoMRCTests/Fixtures/acq-metadata/no-extended-header.mrc` | 1.1 KB | `tools/acq-metadata/generate.py` | | +| `FormatoMRCTests/Fixtures/acq-metadata/pins.json` | 3.2 KB | `tools/acq-metadata/generate.py`, `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` +16 | | +| `FormatoMRCTests/Fixtures/image-readers/axis-order.mrc` | 1.0 KB | `tools/acq-metadata/generate.py`, `tools/step-4/make_velox_si.py` | | +| `FormatoMRCTests/Fixtures/image-readers/big-endian.mrc` | 1.0 KB | `tools/acq-metadata/generate.py`, `tools/hdf5-4d/generate.py`, `tools/png/check.py` +2 | | +| `FormatoMRCTests/Fixtures/image-readers/complex64.mrc` | 1.0 KB | `tools/acq-metadata/generate.py` | | +| `FormatoMRCTests/Fixtures/image-readers/extended-64.mrc` | 1.1 KB | `tools/acq-metadata/generate.py` | | +| `FormatoMRCTests/Fixtures/image-readers/f32-3x2.mrc` | 1.0 KB | `tools/acq-metadata/generate.py` | | +| `FormatoMRCTests/Fixtures/image-readers/fei-128.mrc` | 129.0 KB | `tools/acq-metadata/generate.py` | | +| `FormatoMRCTests/Fixtures/image-readers/float16.mrc` | 1.0 KB | `tools/acq-metadata/generate.py`, `tools/hdf5-append/generate.py` | | +| `FormatoMRCTests/Fixtures/image-readers/int16.mrc` | 1.0 KB | `tools/acq-metadata/generate.py`, `tools/acq-metadata/harness.swift`, `tools/hdf5-4d/generate.py` +8 | | +| `FormatoMRCTests/Fixtures/image-readers/int8-signed.mrc` | 1.0 KB | `tools/acq-metadata/generate.py` | | +| `FormatoMRCTests/Fixtures/image-readers/mode-3.mrc` | 1.0 KB | `tools/acq-metadata/generate.py` | | +| `FormatoMRCTests/Fixtures/image-readers/origin.mrc` | 1.0 KB | `tools/acq-metadata/generate.py`, `tools/acq-metadata/harness.swift`, `tools/acq-metadata/rsciio_oracle.py` +9 | | +| `FormatoMRCTests/Fixtures/image-readers/pins.json` | 10.8 KB | `tools/acq-metadata/generate.py`, `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` +16 | | +| `FormatoMRCTests/Fixtures/image-readers/singleton-y.mrc` | 1.0 KB | `tools/acq-metadata/generate.py` | | +| `FormatoMRCTests/Fixtures/image-readers/stack-3.mrc` | 1.0 KB | `tools/acq-metadata/generate.py` | | +| `FormatoMRCTests/Fixtures/image-readers/truncated.mrc` | 1.0 KB | `tools/acq-metadata/generate.py`, `tools/acq-metadata/harness.swift`, `tools/dm4-gather/generate.py` +1 | | +| `FormatoMRCTests/Fixtures/image-readers/uint16.mrc` | 1.0 KB | `tools/acq-metadata/generate.py`, `tools/acq-metadata/harness.swift`, `tools/hdf5-4d/generate.py` +7 | | +| `FormatoMRCTests/Fixtures/image-readers/zero-cell.mrc` | 1.0 KB | `tools/acq-metadata/generate.py` | | +| `FormatoMRCTests/Fixtures/image-readers/zero-sampling.mrc` | 1.0 KB | `tools/acq-metadata/generate.py` | | +| `FormatoMSATests/Fixtures/msa-pins.json` | 302.6 KB | `tools/msa/pins.py` | | +| `FormatoMSATests/Fixtures/public/ISO_22029_2022_compliance.msa` | 920 B | `tools/msa/pins.py` | third party: RosettaSciIO public test data (GPL-3.0-or-later), copied unchanged | +| `FormatoMSATests/Fixtures/public/ISO_22029_2022_compliance_XY_NCOLUMNS2.msa` | 929 B | `tools/msa/pins.py` | third party: RosettaSciIO public test data (GPL-3.0-or-later), copied unchanged | +| `FormatoMSATests/Fixtures/public/ISO_22029_2022_compliance_scientific_notation.msa` | 1.1 KB | `tools/msa/pins.py` | third party: RosettaSciIO public test data (GPL-3.0-or-later), copied unchanged | +| `FormatoMSATests/Fixtures/public/ISO_22029_2022_compliance_title_multiple_line.msa` | 1.0 KB | `tools/msa/pins.py` | third party: RosettaSciIO public test data (GPL-3.0-or-later), copied unchanged | +| `FormatoMSATests/Fixtures/public/example1.msa` | 1.0 KB | `tools/msa/pins.py` | third party: RosettaSciIO public test data (GPL-3.0-or-later), copied unchanged | +| `FormatoMSATests/Fixtures/public/example1_with_seconds.msa` | 1.0 KB | `tools/msa/pins.py` | third party: RosettaSciIO public test data (GPL-3.0-or-later), copied unchanged | +| `FormatoMSATests/Fixtures/public/example1_wrong_date.msa` | 1.0 KB | `tools/msa/pins.py` | third party: RosettaSciIO public test data (GPL-3.0-or-later), copied unchanged | +| `FormatoMSATests/Fixtures/public/example1_wrong_date_empty_field.msa` | 1.0 KB | `tools/msa/pins.py` | third party: RosettaSciIO public test data (GPL-3.0-or-later), copied unchanged | +| `FormatoMSATests/Fixtures/public/example2.msa` | 1.6 KB | `tools/msa/pins.py` | third party: RosettaSciIO public test data (GPL-3.0-or-later), copied unchanged | +| `FormatoMSATests/Fixtures/public/example2_NCOLUMNS5.msa` | 2.0 KB | `tools/msa/pins.py` | third party: RosettaSciIO public test data (GPL-3.0-or-later), copied unchanged | +| `FormatoMSATests/Fixtures/public/minimum_metadata.msa` | 412 B | `tools/msa/pins.py` | third party: RosettaSciIO public test data (GPL-3.0-or-later), copied unchanged | +| `FormatoTIFFTests/Fixtures/acq-metadata/dm-tag-65027.tif` | 987 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/acq-metadata/fei-first-field-day.tif` | 337 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/acq-metadata/fei-helios.tif` | 340 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/acq-metadata/fei-sfeg-zero.tif` | 333 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/acq-metadata/fei-stage-beam.tif` | 473 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/acq-metadata/pins.json` | 9.9 KB | `tools/acq-metadata/generate.py`, `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` +16 | | +| `FormatoTIFFTests/Fixtures/acq-metadata/plain.tif` | 126 B | `tools/acq-metadata/generate.py`, `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` +4 | | +| `FormatoTIFFTests/Fixtures/acq-metadata/velox-ceta-imaging.tif` | 972 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/acq-metadata/velox-diffraction-zero-voltage.tif` | 966 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/acq-metadata/velox-stage-class.tif` | 1.1 KB | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/acq-metadata/velox-stem.tif` | 971 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/acq-metadata/velox-zone-designator.tif` | 969 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/bigtiff-II.tif` | 32 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/bigtiff-MM.tif` | 32 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/bits-1.tif` | 134 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/bits-64-unsigned.tif` | 218 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/compressed-and-tiled.tif` | 146 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/compressed-lzw.tif` | 134 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/compressed-packbits.tif` | 134 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-empty-units.tif` | 198 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-latin1-micro.tif` | 198 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-mixed-units.tif` | 204 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-no-units.tif` | 174 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-offset-only-tag.tif` | 166 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-other-private-tag-only.tif` | 154 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-scale-float32.tif` | 206 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-scale-infinite.tif` | 198 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-scale-integer.tif` | 206 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-scale-negative.tif` | 198 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-scale-offset-units-MM.tif` | 238 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-scale-offset-units.tif` | 238 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-scale-rational.tif` | 238 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-scale-zero-offset.tif` | 238 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-scale-zero.tif` | 198 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-tag-65027-only.tif` | 154 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-units-no-scale.tif` | 158 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-units-only-x.tif` | 186 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/dm-units-undefined-type.tif` | 198 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/duplicate-tag-last-wins.tif` | 218 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-34680-then-34682-replaces.tif` | 386 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-beats-dm-and-imagej.tif` | 386 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-beats-velox.tif` | 484 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-irbeam-fallback-square.tif` | 296 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-irbeam-fallback.tif` | 292 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-irbeam-nonnumeric.tif` | 288 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-irbeam-resolution-missing.tif` | 242 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-irbeam-zero-resolution.tif` | 288 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-lf-only.tif` | 240 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-negative-pixelheight.tif` | 250 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-no-pixel-keys.tif` | 212 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-non-square-MM-34680.tif` | 250 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-non-square.tif` | 250 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-scan-nonnumeric-beats-irbeam.tif` | 316 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-scan-nonnumeric.tif` | 246 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-scan-partial-falls-to-irbeam.tif` | 298 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-square-34680.tif` | 248 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-square.tif` | 248 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/fei-zero-pixelwidth.tif` | 244 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/float16.tif` | 158 B | `tools/acq-metadata/generate.py`, `tools/hdf5-append/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/grey-no-photometric.tif` | 122 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/grey-planar2-single-sample.tif` | 146 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/huge-float64-claim.tif` | 146 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/huge-rgb-claim.tif` | 158 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/huge-width-one-row.tif` | 134 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/huge-width-overflow.tif` | 134 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/ifd-cut-in-table.tif` | 104 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/ifd-offset-outside.tif` | 134 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-micron-MM.tif` | 212 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-micron-fractional.tif` | 212 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-micron-non-square.tif` | 212 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-micron-over-dm.tif` | 316 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-micron.tif` | 212 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-nm-keeps-dm-units.tif` | 312 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-nm.tif` | 208 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-no-unit-keeps-dm.tif` | 264 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-no-unit.tif` | 210 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-one-image.tif` | 178 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-pixel.tif` | 212 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-stack-channels.tif` | 172 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-stack-images.tif` | 190 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-stack-slices-frames.tif` | 178 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-unit-no-resolution-drops-dm.tif` | 236 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-unit-no-resolution.tif` | 172 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-unit-only-x-resolution.tif` | 192 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-unit-spaced.tif` | 216 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-zero-denominator.tif` | 212 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-zero-numerator.tif` | 212 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/imagej-zero-planes.tif` | 180 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/mixed-sample-format.tif` | 146 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/multistrip-last-strip-cut.tif` | 156 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/multistrip-reversed-in-file-II.tif` | 186 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/multistrip-reversed-in-file-MM.tif` | 186 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/multistrip-u16-II.tif` | 186 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/multistrip-u16-MM.tif` | 186 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/no-strips.tif` | 134 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/no-width.tif` | 122 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/not-tiff-letters.tif` | 16 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/palette.tif` | 1.6 KB | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/pins.json` | 54.2 KB | `tools/acq-metadata/generate.py`, `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` +16 | | +| `FormatoTIFFTests/Fixtures/app-image/plain.tif` | 126 B | `tools/acq-metadata/generate.py`, `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` +4 | | +| `FormatoTIFFTests/Fixtures/app-image/rgb-16bit.tif` | 158 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/rgb-4-samples.tif` | 160 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/rgb-grey-II.tif` | 158 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/rgb-grey-MM.tif` | 158 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/rgb-mixed-bits.tif` | 158 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/rgb-photometric-ycbcr.tif` | 158 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/rgb-planar2.tif` | 158 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/rgb-signed.tif` | 176 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/rgb-unequal-blue-row1-col2.tif` | 158 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/rgb-unequal-red-first-pixel.tif` | 158 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/sample-f32-II.tif` | 182 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/sample-f32-MM.tif` | 182 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/sample-f64-II.tif` | 230 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/sample-f64-MM.tif` | 230 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/sample-i16-II.tif` | 158 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/sample-i16-MM.tif` | 158 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/sample-i32-II.tif` | 182 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/sample-i32-MM.tif` | 182 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/sample-i8-II.tif` | 146 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/sample-i8-MM.tif` | 146 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/sample-u16-II.tif` | 146 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/sample-u16-MM.tif` | 146 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/sample-u32-II.tif` | 170 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/sample-u32-MM.tif` | 170 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/sample-u8-II.tif` | 134 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/sample-u8-MM.tif` | 134 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/scifio-description-not-imagej.tif` | 208 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/second-page-MM.tif` | 362 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/second-page-pointer-outside.tif` | 134 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/second-page.tif` | 248 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/strip-count-mismatch.tif` | 142 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/strip-count-too-short.tif` | 134 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/strip-offset-negative-signed.tif` | 134 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/strip-offset-outside.tif` | 134 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/strip-one-row-each.tif` | 158 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/strip-padding-longer-than-needed.tif` | 140 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/strips-at-end.tif` | 134 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/strips-cut-by-one.tif` | 133 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/strips-cut-short.tif` | 128 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/tag-value-outside-file.tif` | 154 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/tiled.tif` | 182 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/app-image/too-short.tif` | 7 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/velox-MM-disagree.tif` | 370 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/velox-MM-u16.tif` | 382 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/velox-agree.tif` | 362 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/velox-and-fei.tif` | 523 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/velox-disagree.tif` | 362 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/velox-float32-rounded.tif` | 370 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/velox-mixed-units.tif` | 338 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/velox-nm.tif` | 304 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/velox-no-pixel-size.tif` | 175 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/velox-refused-xml.tif` | 339 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/velox-resolution-unit-not-cm.tif` | 342 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/velox-srational-resolution-tag.tif` | 342 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/velox-undefined-resolution-tag.tif` | 333 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/velox-undefined-resolution-unit.tif` | 342 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/velox-xml-only.tif` | 309 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/velox-xml-then-dm-fallthrough.tif` | 248 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/velox-zero-x.tif` | 303 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/white-is-zero.tif` | 134 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/wrong-magic.tif` | 134 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/app-image/zero-height.tif` | 134 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/image-readers/pins.json` | 8.3 KB | `tools/acq-metadata/generate.py`, `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` +16 | | +| `FormatoTIFFTests/Fixtures/image-readers/plain.tif` | 126 B | `tools/acq-metadata/generate.py`, `tools/bragg-writer/check.py`, `tools/bragg-writer/generate.py` +4 | | +| `FormatoTIFFTests/Fixtures/image-readers/velox-agree.tif` | 362 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/image-readers/velox-and-fei.tif` | 523 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/image-readers/velox-disagree.tif` | 362 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/image-readers/velox-float32-rounded.tif` | 370 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/image-readers/velox-mixed-units.tif` | 338 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/image-readers/velox-nm.tif` | 304 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/image-readers/velox-no-pixel-size.tif` | 175 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/image-readers/velox-refused-xml.tif` | 339 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/image-readers/velox-xml-only.tif` | 309 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/image-readers/velox-zero-x.tif` | 303 B | `tools/acq-metadata/generate.py` | | +| `FormatoTIFFTests/Fixtures/planted/be-u16-3strips.tif` | 298 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/bigtiff-f32.tif` | 352 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/datetime-slash-description.tif` | 198 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/dm-tags-stack.tif` | 548 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/dm-tags.tif` | 266 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/fei-helios-asym.tif` | 450 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/fei-helios.tif` | 310 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/fei-irbeam.tif` | 230 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/imagej-micron-asym.tif` | 242 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/imagej-micron.tif` | 412 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/imagej-virtual.tif` | 274 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/le-u16-3strips.tif` | 282 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/lzw.tif` | 150 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/planted-truth.json` | 207.5 KB | `tools/step-2/make_planted.py`, `tools/step-2/pins.py` | | +| `FormatoTIFFTests/Fixtures/planted/rgb8.tif` | 186 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/rgba16.tif` | 222 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/stack-i16.tif` | 308 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/strip-past-end.tif` | 150 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/tag-zoo.tif` | 366 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/tiled.tif` | 414 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/planted/unknown-tag-type.tif` | 162 B | `tools/step-2/make_planted.py` | | +| `FormatoTIFFTests/Fixtures/refuter-pins.json` | 129.3 KB | `tools/step-3/refuter_pins.py`, `tools/step-4/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/dm_stack_mix_series.tif` | 652 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/dt_09.tif` | 190 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/dt_13.tif` | 192 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/dt_15.tif` | 194 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/dt_16.tif` | 190 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/f_257_val_1.tif` | 512 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/fd_015.tif` | 210 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/fei_bom.tif` | 226 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/fei_ir_resx_zero.tif` | 256 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/fei_x1c.tif` | 236 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/h_nophoto.tif` | 198 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/h_off0.tif` | 210 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/h_photo6.tif` | 210 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/ij_desc_07.tif` | 442 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/ij_ovf_fs_1p.tif` | 238 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/ij_pages2_images4.tif` | 440 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/ij_res_1.tif` | 276 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/ij_spacing_3280_true.tif` | 634 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/m_photo_diff.tif` | 356 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/m_rps_diff.tif` | 396 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/mut_00015_ff.tif` | 360 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/o_fill2_u8.tif` | 222 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/o_pred2_u8.tif` | 222 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/pyr_half.tif` | 5.3 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/tf_stack2.tif` | 482 B | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/refuter/w_ome_tzcyx.ome.tif` | 4.4 KB | `tools/step-3/refuter_pins.py` | | +| `FormatoTIFFTests/Fixtures/step-2-pins.json` | 860.1 KB | `tools/step-2/pins.py` | | diff --git a/tools/build-docs.sh b/tools/build-docs.sh new file mode 100755 index 0000000..581d631 --- /dev/null +++ b/tools/build-docs.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# Builds the DocC site for every module with a .docc catalog and merges it into one static site. +# tools/build-docs.sh [] e.g. tools/build-docs.sh .docs-site /FormatoKit +# macOS with Xcode 16 or later. Output is gitignored (.docs-site). +set -euo pipefail +cd "$(dirname "$0")/.." +out="${1:?output dir}" +base="${2:-}" +derived="$(mktemp -d)" +trap 'rm -rf "$derived"' EXIT + +modules=$(find Sources -maxdepth 2 -name '*.docc' -exec basename {} .docc \; | sort) +archives=() +for m in $modules; do + xcodebuild docbuild -scheme "$m" -destination 'generic/platform=macOS' -derivedDataPath "$derived" >"$derived/$m.log" 2>&1 \ + || { tail -30 "$derived/$m.log"; echo "docbuild failed for $m"; exit 1; } + archives+=("$(find "$derived/Build/Products" -name "$m.doccarchive" -maxdepth 3 | head -1)") +done + +merged="$derived/FormatoKit.doccarchive" +xcrun docc merge "${archives[@]}" --output-path "$merged" +rm -rf "$out" +xcrun docc process-archive transform-for-static-hosting "$merged" --output-path "$out" ${base:+--hosting-base-path "$base"} +# the site root has no page of its own: send it to the merged documentation landing page +printf '' "${base}" > "$out/index.html" +echo "built $out ($(echo "$modules" | wc -l | tr -d ' ') modules)"