brkraw 0.5.2__tar.gz → 0.5.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {brkraw-0.5.2 → brkraw-0.5.5}/.github/workflows/ci.yml +10 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/.github/workflows/publish.yml +10 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/.github/workflows/release.yml +39 -0
- brkraw-0.5.5/.github/workflows/release_on_merge.yml +118 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/.gitignore +0 -1
- brkraw-0.5.5/.vscode/settings.json +4 -0
- brkraw-0.5.5/.vscode/tasks.json +86 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/CITATION.cff +1 -1
- {brkraw-0.5.2 → brkraw-0.5.5}/PKG-INFO +8 -9
- {brkraw-0.5.2 → brkraw-0.5.5}/README.md +6 -8
- brkraw-0.5.5/RELEASE_NOTES.md +17 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/__init__.py +1 -1
- brkraw-0.5.5/brkraw/api/__init__.py +122 -0
- brkraw-0.5.5/brkraw/api/types.py +39 -0
- brkraw-0.5.5/brkraw/apps/loader/__init__.py +7 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/apps/loader/core.py +128 -132
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/apps/loader/formatter.py +0 -2
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/apps/loader/helper.py +334 -114
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/apps/loader/info/scan.py +2 -2
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/apps/loader/info/transform.py +0 -1
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/apps/loader/types.py +56 -59
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/cli/commands/addon.py +1 -1
- brkraw-0.5.5/brkraw/cli/commands/cache.py +82 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/cli/commands/config.py +2 -2
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/cli/commands/convert.py +61 -38
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/cli/commands/hook.py +1 -3
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/cli/commands/info.py +1 -1
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/cli/commands/init.py +1 -1
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/cli/commands/params.py +1 -1
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/cli/commands/prune.py +2 -2
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/cli/commands/session.py +1 -11
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/cli/main.py +51 -1
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/cli/utils.py +1 -1
- brkraw-0.5.5/brkraw/core/cache.py +87 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/core/config.py +18 -2
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/core/fs.py +26 -9
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/core/zip.py +46 -32
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/dataclasses/__init__.py +3 -2
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/dataclasses/study.py +73 -23
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/resolver/datatype.py +10 -2
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/resolver/image.py +140 -21
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/resolver/nifti.py +4 -12
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/schema/niftiheader.yaml +0 -2
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/specs/meta/validator.py +0 -1
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/specs/rules/logic.py +1 -3
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/api/convert.md +1 -5
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/api/data-access.md +2 -2
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/api/overview.md +0 -2
- brkraw-0.5.5/docs/assets/zenodo_badge.svg +35 -0
- brkraw-0.5.5/docs/cli/cache.md +53 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/cli/session.md +2 -2
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/dev/contributors.md +1 -1
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/dev/hook-packages.md +8 -4
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/getting-started/api.md +0 -2
- {brkraw-0.5.2 → brkraw-0.5.5}/mkdocs.yml +1 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/pyproject.toml +2 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/scripts/release_pr.py +146 -82
- brkraw-0.5.2/scripts/cff_to_biblatex.py → brkraw-0.5.5/scripts/update_readme_bibtex.py +33 -43
- brkraw-0.5.5/scripts/update_zenodo_badge.py +122 -0
- brkraw-0.5.2/.github/workflows/release_on_merge.yml +0 -54
- brkraw-0.5.2/RELEASE_NOTES.md +0 -8
- brkraw-0.5.2/brkraw/apps/loader/__init__.py +0 -10
- brkraw-0.5.2/scripts/release_notes.py +0 -99
- brkraw-0.5.2/scripts/update_readme_bibtex.py +0 -61
- brkraw-0.5.2/scripts/verify_release_version.py +0 -48
- {brkraw-0.5.2 → brkraw-0.5.5}/.github/DISCUSSION_TEMPLATE/proposal.yml +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/.github/DISCUSSION_TEMPLATE/question.yml +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/.github/copilot-instructions.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/.github/workflows/docs.yml +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/.markdownlint.yaml +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/AGENTS.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/CODE_OF_CONDUCT.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/CONTRIBUTING.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/LICENSE +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/apps/__init__.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/apps/addon/__init__.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/apps/addon/core.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/apps/addon/dependencies.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/apps/addon/installation.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/apps/addon/io.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/apps/hook/__init__.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/apps/hook/core.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/apps/loader/info/__init__.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/apps/loader/info/scan.yaml +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/apps/loader/info/study.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/apps/loader/info/study.yaml +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/cli/__init__.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/cli/commands/__init__.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/cli/hook_args.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/core/__init__.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/core/entrypoints.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/core/formatter.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/core/jcamp.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/core/layout.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/core/parameters.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/dataclasses/node.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/dataclasses/reco.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/dataclasses/scan.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/default/__init__.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/default/pruner_specs/deid4share.yaml +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/default/rules/00_default.yaml +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/default/specs/metadata_dicom.yaml +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/default/specs/metadata_transforms.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/resolver/__init__.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/resolver/affine.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/resolver/fid.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/resolver/helpers.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/resolver/shape.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/schema/__init__.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/schema/context_map.yaml +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/schema/meta.yaml +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/schema/pruner.yaml +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/schema/remapper.yaml +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/schema/rules.yaml +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/specs/__init__.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/specs/hook/__init__.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/specs/hook/logic.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/specs/hook/validator.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/specs/meta/__init__.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/specs/pruner/__init__.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/specs/pruner/logic.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/specs/pruner/validator.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/specs/remapper/__init__.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/specs/remapper/logic.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/specs/remapper/validator.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/specs/rules/__init__.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/brkraw/specs/rules/validator.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/api/addon.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/api/hook.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/api/info.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/api/layout.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/api/prune.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/assets/brkraw-logo-dark.svg +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/assets/brkraw-logo-light.svg +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/assets/brkraw-logo.svg +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/assets/favicon-16.png +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/assets/favicon-192.png +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/assets/favicon-32.png +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/assets/favicon-512.png +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/assets/favicon-dark.svg +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/assets/favicon-light.svg +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/assets/favicon.ico +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/assets/favicon.svg +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/assets/site.webmanifest +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/cli/addon.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/cli/config.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/cli/convert.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/cli/hook.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/cli/index.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/cli/info.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/cli/prune.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/dev/cli-extensions.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/dev/contributing.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/dev/core-vs-addon.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/dev/documentation.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/dev/roadmap.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/getting-started/backup.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/getting-started/bids.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/getting-started/cli.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/getting-started/configuration.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/getting-started/hooks.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/getting-started/index.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/getting-started/mrs.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/getting-started/viewer.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/index.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/overrides/404.html +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/overrides/partials/extrahead.html +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/reference/addons-and-plugins.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/reference/cli-extensions.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/reference/context-map.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/reference/extensibility.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/reference/hook-packages.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/reference/layout.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/reference/rules.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/reference/specs.md +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/docs/stylesheets/extra.css +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/scripts/release_prep.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/scripts/tag_and_push.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/scripts/update_contributors.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/conftest.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/helpers.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_01_core/__init__.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_01_core/fixtures/acqp_EPI_pv5_1.jdx +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_01_core/fixtures/method_EPI_pv5_1.jdx +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_01_core/fixtures/method_FLASH_pv360_3_1.jdx +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_01_core/test_formatter.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_01_core/test_fs.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_01_core/test_jcamp.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_01_core/test_parameters.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_01_core/test_resources.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_01_core/test_zip.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_02_dataclasses/test_dir-vs-zipped.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_03_resolver/test_affine.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_04_specs/test_context_map_cases.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_04_specs/test_remapper.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_apps/test_affine_post_transform.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_apps/test_loader_info_missing_visu_pars.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_cli/test_hook_args_yaml.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_cli/test_hook_preset.py +0 -0
- {brkraw-0.5.2 → brkraw-0.5.5}/tests/test_scripts/test_update_contributors.py +0 -0
|
@@ -12,6 +12,16 @@ on:
|
|
|
12
12
|
description: "Tag to publish (optional, e.g. v1.2.3)"
|
|
13
13
|
required: false
|
|
14
14
|
type: string
|
|
15
|
+
workflow_call:
|
|
16
|
+
inputs:
|
|
17
|
+
target:
|
|
18
|
+
description: "Publish target"
|
|
19
|
+
type: string
|
|
20
|
+
default: testpypi
|
|
21
|
+
tag:
|
|
22
|
+
description: "Tag to publish (optional, e.g. v1.2.3)"
|
|
23
|
+
required: false
|
|
24
|
+
type: string
|
|
15
25
|
|
|
16
26
|
permissions:
|
|
17
27
|
contents: read
|
|
@@ -19,6 +19,10 @@ jobs:
|
|
|
19
19
|
release:
|
|
20
20
|
if: ${{ github.repository == 'BrkRaw/brkraw' }}
|
|
21
21
|
runs-on: ubuntu-latest
|
|
22
|
+
outputs:
|
|
23
|
+
prerelease: ${{ steps.prerelease.outputs.value }}
|
|
24
|
+
tag: ${{ steps.tag.outputs.value }}
|
|
25
|
+
zenodo_success: ${{ steps.zenodo.outcome == 'success' }}
|
|
22
26
|
steps:
|
|
23
27
|
- name: Resolve tag
|
|
24
28
|
id: tag
|
|
@@ -127,3 +131,38 @@ jobs:
|
|
|
127
131
|
if url:
|
|
128
132
|
print(f"Created discussion: {url}")
|
|
129
133
|
PY
|
|
134
|
+
- name: Checkout main for Zenodo badge update
|
|
135
|
+
uses: actions/checkout@v4
|
|
136
|
+
with:
|
|
137
|
+
ref: main
|
|
138
|
+
- name: Set up git identity
|
|
139
|
+
run: |
|
|
140
|
+
git config user.name "github-actions[bot]"
|
|
141
|
+
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
142
|
+
- name: Update Zenodo badge
|
|
143
|
+
id: zenodo
|
|
144
|
+
if: ${{ steps.prerelease.outputs.value != 'true' }}
|
|
145
|
+
continue-on-error: true
|
|
146
|
+
run: |
|
|
147
|
+
for i in $(seq 1 10); do
|
|
148
|
+
echo "Zenodo badge update attempt $i/10"
|
|
149
|
+
python3 scripts/update_zenodo_badge.py --up-to-date-exit-code 2
|
|
150
|
+
exit_code=$?
|
|
151
|
+
if [ "$exit_code" -eq 0 ]; then
|
|
152
|
+
echo "Zenodo badge updated."
|
|
153
|
+
exit 0
|
|
154
|
+
fi
|
|
155
|
+
if [ "$exit_code" -ne 2 ]; then
|
|
156
|
+
exit "$exit_code"
|
|
157
|
+
fi
|
|
158
|
+
sleep 60
|
|
159
|
+
done
|
|
160
|
+
echo "Zenodo badge still up to date after 10 attempts; giving up."
|
|
161
|
+
|
|
162
|
+
publish:
|
|
163
|
+
if: ${{ github.repository == 'BrkRaw/brkraw' && (needs.release.outputs.prerelease == 'true' || needs.release.outputs.zenodo_success == 'true') }}
|
|
164
|
+
needs: [release]
|
|
165
|
+
uses: ./.github/workflows/publish.yml
|
|
166
|
+
with:
|
|
167
|
+
target: ${{ needs.release.outputs.prerelease == 'true' && 'testpypi' || 'pypi' }}
|
|
168
|
+
tag: ${{ needs.release.outputs.tag }}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
name: Release On Merge
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
contents: write
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
tag_release:
|
|
12
|
+
if: ${{ github.repository == 'BrkRaw/brkraw' }}
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
with:
|
|
17
|
+
fetch-depth: 0
|
|
18
|
+
- name: Detect version change
|
|
19
|
+
id: version
|
|
20
|
+
env:
|
|
21
|
+
GH_TOKEN: ${{ github.token }}
|
|
22
|
+
REPO: ${{ github.repository }}
|
|
23
|
+
SHA: ${{ github.sha }}
|
|
24
|
+
BEFORE: ${{ github.event.before }}
|
|
25
|
+
run: |
|
|
26
|
+
set -euo pipefail
|
|
27
|
+
|
|
28
|
+
# Default outputs
|
|
29
|
+
echo "changed=false" >> "$GITHUB_OUTPUT"
|
|
30
|
+
|
|
31
|
+
# Only proceed for merge commits ("Merge pull request ...")
|
|
32
|
+
if [[ "${{ github.event.head_commit.message }}" != Merge\ pull\ request* ]]; then
|
|
33
|
+
echo "Not a merge commit. Skipping."
|
|
34
|
+
exit 0
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
# Find the PR associated with this merge commit and ensure it has the 'release' label.
|
|
38
|
+
api="https://api.github.com/repos/${REPO}/commits/${SHA}/pulls"
|
|
39
|
+
pr_json=$(curl -fsSL \
|
|
40
|
+
-H "Authorization: Bearer ${GH_TOKEN}" \
|
|
41
|
+
-H "Accept: application/vnd.github+json" \
|
|
42
|
+
-H "Accept: application/vnd.github.groot-preview+json" \
|
|
43
|
+
"$api" || true)
|
|
44
|
+
export PR_JSON="$pr_json"
|
|
45
|
+
|
|
46
|
+
pr_number=$(python3 - <<'PY'
|
|
47
|
+
import json, os
|
|
48
|
+
s = os.environ.get('PR_JSON','')
|
|
49
|
+
if not s.strip():
|
|
50
|
+
print('')
|
|
51
|
+
raise SystemExit(0)
|
|
52
|
+
data = json.loads(s)
|
|
53
|
+
if isinstance(data, list) and data:
|
|
54
|
+
print(data[0].get('number',''))
|
|
55
|
+
else:
|
|
56
|
+
print('')
|
|
57
|
+
PY
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
if [[ -z "${pr_number}" ]]; then
|
|
61
|
+
echo "No PR associated with ${SHA}. Skipping."
|
|
62
|
+
exit 0
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
labels_api="https://api.github.com/repos/${REPO}/issues/${pr_number}/labels"
|
|
66
|
+
labels_json=$(curl -fsSL \
|
|
67
|
+
-H "Authorization: Bearer ${GH_TOKEN}" \
|
|
68
|
+
-H "Accept: application/vnd.github+json" \
|
|
69
|
+
"$labels_api")
|
|
70
|
+
export LABELS_JSON="$labels_json"
|
|
71
|
+
|
|
72
|
+
has_release=$(python3 - <<'PY'
|
|
73
|
+
import json, os
|
|
74
|
+
labels = json.loads(os.environ['LABELS_JSON'])
|
|
75
|
+
names = {l.get('name','') for l in labels if isinstance(l, dict)}
|
|
76
|
+
print('true' if 'release' in names else 'false')
|
|
77
|
+
PY
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
if [[ "${has_release}" != "true" ]]; then
|
|
81
|
+
echo "PR #${pr_number} does not have 'release' label. Skipping."
|
|
82
|
+
exit 0
|
|
83
|
+
fi
|
|
84
|
+
|
|
85
|
+
# Check whether version file changed in this push
|
|
86
|
+
if ! git diff --name-only "${BEFORE}" "${SHA}" | grep -q '^src/brkraw/__init__.py$'; then
|
|
87
|
+
echo "src/brkraw/__init__.py not changed. Skipping."
|
|
88
|
+
exit 0
|
|
89
|
+
fi
|
|
90
|
+
|
|
91
|
+
version=$(python3 - <<'PY'
|
|
92
|
+
import re
|
|
93
|
+
from pathlib import Path
|
|
94
|
+
|
|
95
|
+
text = Path("src/brkraw/__init__.py").read_text(encoding="utf-8").lstrip("\ufeff")
|
|
96
|
+
match = re.search(
|
|
97
|
+
r"__version__(?:\s*:\s*[^=]+)?\s*=\s*[\"']([^\"']+)[\"']",
|
|
98
|
+
text,
|
|
99
|
+
)
|
|
100
|
+
if not match:
|
|
101
|
+
raise SystemExit("No __version__ found in src/brkraw/__init__.py")
|
|
102
|
+
print(match.group(1))
|
|
103
|
+
PY
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
echo "changed=true" >> "$GITHUB_OUTPUT"
|
|
107
|
+
echo "value=$version" >> "$GITHUB_OUTPUT"
|
|
108
|
+
shell: bash
|
|
109
|
+
- name: Create and push tag
|
|
110
|
+
if: ${{ steps.version.outputs.changed == 'true' }}
|
|
111
|
+
run: |
|
|
112
|
+
tag="${{ steps.version.outputs.value }}"
|
|
113
|
+
if git rev-parse "$tag" >/dev/null 2>&1; then
|
|
114
|
+
echo "Tag $tag already exists. Skipping."
|
|
115
|
+
exit 0
|
|
116
|
+
fi
|
|
117
|
+
git tag "$tag" "${{ github.sha }}"
|
|
118
|
+
git push origin "$tag"
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "2.0.0",
|
|
3
|
+
"inputs": [
|
|
4
|
+
{
|
|
5
|
+
"id": "releaseVersion",
|
|
6
|
+
"type": "promptString",
|
|
7
|
+
"description": "Release version (e.g., 1.0.0)"
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
"tasks": [
|
|
11
|
+
{
|
|
12
|
+
"label": "Standard: Setup venv + deps",
|
|
13
|
+
"type": "shell",
|
|
14
|
+
"command": "\"${command:python.interpreterPath}\" -m venv .venv && .venv/bin/python -m pip install -U pip && .venv/bin/python -m pip install -e \".[dev]\"",
|
|
15
|
+
"windows": {
|
|
16
|
+
"command": "\"${command:python.interpreterPath}\" -m venv .venv; .venv\\Scripts\\python -m pip install -U pip; .venv\\Scripts\\python -m pip install -e \".[dev]\"",
|
|
17
|
+
"options": {
|
|
18
|
+
"shell": {
|
|
19
|
+
"executable": "pwsh"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"group": "build",
|
|
24
|
+
"problemMatcher": []
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"label": "Standard: Release Prep PR (2-step)",
|
|
28
|
+
"type": "shell",
|
|
29
|
+
"command": "\"${command:python.interpreterPath}\" scripts/release_pr.py --version ${input:releaseVersion} --base upstream/main --remote-upstream upstream --remote-origin origin",
|
|
30
|
+
"group": "build",
|
|
31
|
+
"problemMatcher": []
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"label": "DryRun: Release Prep PR (2-step)",
|
|
35
|
+
"type": "shell",
|
|
36
|
+
"command": "\"${command:python.interpreterPath}\" scripts/release_pr.py --dry-run --version ${input:releaseVersion} --base upstream/main --remote-upstream upstream --remote-origin origin",
|
|
37
|
+
"group": "build",
|
|
38
|
+
"problemMatcher": []
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"label": "Standard: MkDocs Serve",
|
|
42
|
+
"type": "shell",
|
|
43
|
+
"command": "\"${command:python.interpreterPath}\" -m mkdocs serve",
|
|
44
|
+
"group": "build",
|
|
45
|
+
"problemMatcher": []
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"label": "Optional: Release Prep (bump + notes)",
|
|
49
|
+
"type": "shell",
|
|
50
|
+
"command": "\"${command:python.interpreterPath}\" scripts/update_contributors.py --source github --repo brkraw/brkraw --output docs/dev/contributors.md && \"${command:python.interpreterPath}\" scripts/release_prep.py --version ${input:releaseVersion} --fetch-tags --remote upstream",
|
|
51
|
+
"windows": {
|
|
52
|
+
"command": "pwsh -NoProfile -Command \"& \\\"${command:python.interpreterPath}\\\" scripts/update_contributors.py --source github --repo brkraw/brkraw --output docs/dev/contributors.md; if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }; & \\\"${command:python.interpreterPath}\\\" scripts/release_prep.py --version ${input:releaseVersion} --fetch-tags --remote upstream\""
|
|
53
|
+
},
|
|
54
|
+
"group": "build",
|
|
55
|
+
"problemMatcher": []
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"label": "Optional: Release Notes Only",
|
|
59
|
+
"type": "shell",
|
|
60
|
+
"command": "\"${command:python.interpreterPath}\" scripts/release_notes.py --fetch-tags --remote upstream",
|
|
61
|
+
"group": "build",
|
|
62
|
+
"problemMatcher": []
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"label": "Optional: Release Tag + Push (upstream)",
|
|
66
|
+
"type": "shell",
|
|
67
|
+
"command": "\"${command:python.interpreterPath}\" scripts/tag_and_push.py",
|
|
68
|
+
"group": "build",
|
|
69
|
+
"problemMatcher": []
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"label": "Optional: Docs Update Contributors (git)",
|
|
73
|
+
"type": "shell",
|
|
74
|
+
"command": "\"${command:python.interpreterPath}\" scripts/update_contributors.py --source git --output docs/dev/contributors.md",
|
|
75
|
+
"group": "build",
|
|
76
|
+
"problemMatcher": []
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"label": "Optional: Docs Update Contributors (GitHub API)",
|
|
80
|
+
"type": "shell",
|
|
81
|
+
"command": "\"${command:python.interpreterPath}\" scripts/update_contributors.py --source github --repo brkraw/brkraw --output docs/dev/contributors.md",
|
|
82
|
+
"group": "build",
|
|
83
|
+
"problemMatcher": []
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: brkraw
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.5
|
|
4
4
|
Summary: Toolkit for loading Bruker Paravision datasets, mapping metadata, and exporting NIfTI
|
|
5
5
|
Project-URL: Homepage, https://brkraw.github.io
|
|
6
6
|
Maintainer-email: SungHo Lee <shlee@unc.edu>
|
|
@@ -31,6 +31,7 @@ Requires-Dist: mkdocs; extra == 'dev'
|
|
|
31
31
|
Requires-Dist: mkdocs-material; extra == 'dev'
|
|
32
32
|
Requires-Dist: pymdown-extensions; extra == 'dev'
|
|
33
33
|
Requires-Dist: pytest; extra == 'dev'
|
|
34
|
+
Requires-Dist: tomli; extra == 'dev'
|
|
34
35
|
Provides-Extra: docs
|
|
35
36
|
Requires-Dist: rich; extra == 'docs'
|
|
36
37
|
Provides-Extra: minimal
|
|
@@ -44,11 +45,11 @@ Description-Content-Type: text/markdown
|
|
|
44
45
|
</picture>
|
|
45
46
|
<!-- markdownlint-enable MD041 MD033 MD013 -->
|
|
46
47
|
|
|
47
|
-
[](https://doi.org/10.5281/zenodo.3818614)
|
|
48
49
|
|
|
49
50
|
A modular toolkit for Bruker MRI raw-data handling.
|
|
50
51
|
|
|
51
|
-
BrkRaw (v0.5.
|
|
52
|
+
BrkRaw (v0.5.5) converts raw data into standardized, neuroimaging-ready
|
|
52
53
|
datasets, with extensible rules/specs and plugin hooks.
|
|
53
54
|
|
|
54
55
|
- Documentation: [brkraw.github.io](https://brkraw.github.io/)
|
|
@@ -66,16 +67,14 @@ If you use BrkRaw in your research, please cite it.
|
|
|
66
67
|
|
|
67
68
|
<!-- BEGIN: brkraw-bibtex -->
|
|
68
69
|
```biblatex
|
|
69
|
-
@software{
|
|
70
|
-
author = {Lee, Sung-Ho and Devenyi, Gabriel A and Ban, Woomi and Shih, Yen-Yu Ian},
|
|
70
|
+
@software{brkraw,
|
|
71
|
+
author = {Lee, Sung-Ho and Devenyi, Gabriel A. and Ban, Woomi and Shih, Yen-Yu Ian},
|
|
71
72
|
title = {BrkRaw: A modular toolkit for Bruker MRI raw-data handling},
|
|
72
|
-
|
|
73
|
-
version = {0.5.0},
|
|
73
|
+
version = {0.5.5},
|
|
74
74
|
doi = {10.5281/zenodo.3818614},
|
|
75
75
|
url = {https://github.com/BrkRaw/brkraw},
|
|
76
76
|
note = {Documentation: https://brkraw.github.io},
|
|
77
|
-
license = {GPL-3.0-only}
|
|
78
|
-
date = {2026-01-13}
|
|
77
|
+
license = {GPL-3.0-only}
|
|
79
78
|
}
|
|
80
79
|
```
|
|
81
80
|
<!-- END: brkraw-bibtex -->
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
</picture>
|
|
7
7
|
<!-- markdownlint-enable MD041 MD033 MD013 -->
|
|
8
8
|
|
|
9
|
-
[](https://doi.org/10.5281/zenodo.3818614)
|
|
10
10
|
|
|
11
11
|
A modular toolkit for Bruker MRI raw-data handling.
|
|
12
12
|
|
|
13
|
-
BrkRaw (v0.5.
|
|
13
|
+
BrkRaw (v0.5.5) converts raw data into standardized, neuroimaging-ready
|
|
14
14
|
datasets, with extensible rules/specs and plugin hooks.
|
|
15
15
|
|
|
16
16
|
- Documentation: [brkraw.github.io](https://brkraw.github.io/)
|
|
@@ -28,16 +28,14 @@ If you use BrkRaw in your research, please cite it.
|
|
|
28
28
|
|
|
29
29
|
<!-- BEGIN: brkraw-bibtex -->
|
|
30
30
|
```biblatex
|
|
31
|
-
@software{
|
|
32
|
-
author = {Lee, Sung-Ho and Devenyi, Gabriel A and Ban, Woomi and Shih, Yen-Yu Ian},
|
|
31
|
+
@software{brkraw,
|
|
32
|
+
author = {Lee, Sung-Ho and Devenyi, Gabriel A. and Ban, Woomi and Shih, Yen-Yu Ian},
|
|
33
33
|
title = {BrkRaw: A modular toolkit for Bruker MRI raw-data handling},
|
|
34
|
-
|
|
35
|
-
version = {0.5.0},
|
|
34
|
+
version = {0.5.5},
|
|
36
35
|
doi = {10.5281/zenodo.3818614},
|
|
37
36
|
url = {https://github.com/BrkRaw/brkraw},
|
|
38
37
|
note = {Documentation: https://brkraw.github.io},
|
|
39
|
-
license = {GPL-3.0-only}
|
|
40
|
-
date = {2026-01-13}
|
|
38
|
+
license = {GPL-3.0-only}
|
|
41
39
|
}
|
|
42
40
|
```
|
|
43
41
|
<!-- END: brkraw-bibtex -->
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Release v0.5.5
|
|
2
|
+
|
|
3
|
+
Date: 2026-01-27
|
|
4
|
+
Changes since 0.5.4
|
|
5
|
+
|
|
6
|
+
- chore: prepare release v0.5.5 (c3260df)
|
|
7
|
+
- docs: update contributors (a7bf3ef)
|
|
8
|
+
- update: vscode, auto activate environment setting. (95e6868)
|
|
9
|
+
- Chore: wire release → publish workflow (3419d97)
|
|
10
|
+
- Use VS Code interpreter for venv setup task (5aed156)
|
|
11
|
+
- Update release workflow and scripts for Zenodo badge + bibtex generation (e63e007)
|
|
12
|
+
- Patch for brkraw-viewer lazy loading (avoid eager data resolution) (c916625)
|
|
13
|
+
- chore(api): config module (2fa90fc)
|
|
14
|
+
- chore(api): hook resolver (9c36e95)
|
|
15
|
+
- chore(api): minor remapping (f2ef87e)
|
|
16
|
+
- chore(api): ensure naming consistency (9010542)
|
|
17
|
+
- refactor(loader): improve hook handling logic (5c5a0e7)
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"""Public API surface for BrkRaw.
|
|
2
|
+
|
|
3
|
+
This module intentionally re-exports a curated set of symbols for external use.
|
|
4
|
+
To keep import-time fast and reduce side effects, most symbols are lazily
|
|
5
|
+
imported on first access (PEP 562: module `__getattr__`).
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
from importlib import import_module
|
|
11
|
+
from typing import TYPE_CHECKING, Any, Dict, Tuple
|
|
12
|
+
|
|
13
|
+
# Public API -----------------------------------------------------------------
|
|
14
|
+
|
|
15
|
+
__all__ = [
|
|
16
|
+
"formatter",
|
|
17
|
+
"BrukerLoader",
|
|
18
|
+
"loader",
|
|
19
|
+
"hook",
|
|
20
|
+
"hook_manager",
|
|
21
|
+
"hook_resolver",
|
|
22
|
+
"pruner",
|
|
23
|
+
"rules",
|
|
24
|
+
"addon",
|
|
25
|
+
"addon_manager",
|
|
26
|
+
"validate_meta",
|
|
27
|
+
"transform",
|
|
28
|
+
"info_resolver",
|
|
29
|
+
"affine_resolver",
|
|
30
|
+
"shape_resolver",
|
|
31
|
+
"image_resolver",
|
|
32
|
+
"fid_resolver",
|
|
33
|
+
"nifti_resolver",
|
|
34
|
+
"types",
|
|
35
|
+
"config",
|
|
36
|
+
]
|
|
37
|
+
|
|
38
|
+
# Lazy import map: name -> (module_path, attribute_name or None)
|
|
39
|
+
# If attribute_name is None, the module itself is returned.
|
|
40
|
+
_LAZY: Dict[str, Tuple[str, str | None]] = {
|
|
41
|
+
# core
|
|
42
|
+
"formatter": ("brkraw.core", "formatter"),
|
|
43
|
+
|
|
44
|
+
# apps
|
|
45
|
+
"BrukerLoader": ("brkraw.apps.loader", "BrukerLoader"),
|
|
46
|
+
"loader": ("brkraw.apps", "loader"),
|
|
47
|
+
"hook_manager": ("brkraw.apps", "hook"),
|
|
48
|
+
"addon_manager": ("brkraw.apps", "addon"),
|
|
49
|
+
"hook_resolver": ("brkraw.apps.loader.helper", "resolve_converter_hook"),
|
|
50
|
+
"config": ("brkraw.core", "config"),
|
|
51
|
+
|
|
52
|
+
# apps.loader.info resolvers
|
|
53
|
+
"info_resolver": ("brkraw.apps.loader", "info"),
|
|
54
|
+
"transform": ("brkraw.apps.loader.info", "transform"),
|
|
55
|
+
|
|
56
|
+
# resolvers
|
|
57
|
+
"affine_resolver": ("brkraw.resolver", "affine"),
|
|
58
|
+
"shape_resolver": ("brkraw.resolver", "shape"),
|
|
59
|
+
"image_resolver": ("brkraw.resolver", "image"),
|
|
60
|
+
"fid_resolver": ("brkraw.resolver", "fid"),
|
|
61
|
+
"nifti_resolver": ("brkraw.resolver", "nifti"),
|
|
62
|
+
|
|
63
|
+
# specs
|
|
64
|
+
"hook": ("brkraw.specs", "hook"),
|
|
65
|
+
"pruner": ("brkraw.specs", "pruner"),
|
|
66
|
+
"rules": ("brkraw.specs", "rules"),
|
|
67
|
+
"addon": ("brkraw.specs", "remapper"),
|
|
68
|
+
|
|
69
|
+
# meta
|
|
70
|
+
"validate_meta": ("brkraw.specs.meta", "validate_meta"),
|
|
71
|
+
|
|
72
|
+
# local
|
|
73
|
+
"types": ("brkraw.api", "types"),
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def __getattr__(name: str) -> Any:
|
|
78
|
+
"""Lazily import and return public symbols.
|
|
79
|
+
|
|
80
|
+
This keeps import-time minimal while preserving the convenient
|
|
81
|
+
`brkraw.api.<symbol>` access pattern.
|
|
82
|
+
"""
|
|
83
|
+
|
|
84
|
+
try:
|
|
85
|
+
mod_path, attr = _LAZY[name]
|
|
86
|
+
except KeyError as e:
|
|
87
|
+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}") from e
|
|
88
|
+
|
|
89
|
+
mod = import_module(mod_path)
|
|
90
|
+
obj = mod if attr is None else getattr(mod, attr)
|
|
91
|
+
|
|
92
|
+
# Cache the resolved object on the module for fast subsequent access.
|
|
93
|
+
globals()[name] = obj
|
|
94
|
+
return obj
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
def __dir__() -> list[str]:
|
|
98
|
+
# Expose the curated public surface in interactive environments.
|
|
99
|
+
return sorted(set(__all__))
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
# Type-checking / IDE support -------------------------------------------------
|
|
103
|
+
# Importing these only for type-checking keeps runtime imports lazy.
|
|
104
|
+
if TYPE_CHECKING:
|
|
105
|
+
from brkraw.core import formatter as formatter
|
|
106
|
+
from brkraw.core import config as config
|
|
107
|
+
from brkraw.apps.loader import BrukerLoader as BrukerLoader
|
|
108
|
+
from brkraw.apps.loader import info as info_resolver
|
|
109
|
+
from brkraw.apps.loader.info import transform as transform
|
|
110
|
+
from brkraw.apps.loader.helper import resolve_converter_hook as hook_resolver
|
|
111
|
+
from brkraw.apps import addon as addon_manager, hook as hook_manager, loader as loader
|
|
112
|
+
from brkraw.resolver import (
|
|
113
|
+
affine as affine_resolver,
|
|
114
|
+
fid as fid_resolver,
|
|
115
|
+
image as image_resolver,
|
|
116
|
+
nifti as nifti_resolver,
|
|
117
|
+
shape as shape_resolver,
|
|
118
|
+
)
|
|
119
|
+
from brkraw.specs import hook as hook, pruner as pruner, rules as rules
|
|
120
|
+
from brkraw.specs import remapper as addon
|
|
121
|
+
from brkraw.specs.meta import validate_meta as validate_meta
|
|
122
|
+
from brkraw.api import types as types
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
from ..apps.loader.types import (
|
|
2
|
+
StudyLoader,
|
|
3
|
+
ScanLoader,
|
|
4
|
+
RecoLoader
|
|
5
|
+
)
|
|
6
|
+
from ..apps.loader.types import (
|
|
7
|
+
GetAffineType,
|
|
8
|
+
GetDataobjType,
|
|
9
|
+
ConvertType,
|
|
10
|
+
ConverterHook,
|
|
11
|
+
SubjectType,
|
|
12
|
+
SubjectPose,
|
|
13
|
+
AffineSpace,
|
|
14
|
+
Affines,
|
|
15
|
+
Dataobjs,
|
|
16
|
+
Metadata,
|
|
17
|
+
ConvertedObj,
|
|
18
|
+
HookArgs
|
|
19
|
+
)
|
|
20
|
+
from ..core.parameters import Parameters
|
|
21
|
+
|
|
22
|
+
__all__ = [
|
|
23
|
+
"GetAffineType",
|
|
24
|
+
"GetDataobjType",
|
|
25
|
+
"ConvertType",
|
|
26
|
+
"ConverterHook",
|
|
27
|
+
"StudyLoader",
|
|
28
|
+
"ScanLoader",
|
|
29
|
+
"RecoLoader",
|
|
30
|
+
"SubjectType",
|
|
31
|
+
"SubjectPose",
|
|
32
|
+
"AffineSpace",
|
|
33
|
+
"Affines",
|
|
34
|
+
"Dataobjs",
|
|
35
|
+
"Metadata",
|
|
36
|
+
"ConvertedObj",
|
|
37
|
+
"HookArgs",
|
|
38
|
+
"Parameters"
|
|
39
|
+
]
|