dcccpy 0.1.8__tar.gz → 0.2.0__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.
- {dcccpy-0.1.8/src/dcccpy.egg-info → dcccpy-0.2.0}/PKG-INFO +22 -12
- {dcccpy-0.1.8 → dcccpy-0.2.0}/README.md +13 -3
- {dcccpy-0.1.8 → dcccpy-0.2.0}/pyproject.toml +9 -9
- {dcccpy-0.1.8 → dcccpy-0.2.0}/src/dcccpy/core.py +7 -1
- {dcccpy-0.1.8 → dcccpy-0.2.0}/src/dcccpy/runtime.py +1 -1
- {dcccpy-0.1.8 → dcccpy-0.2.0/src/dcccpy.egg-info}/PKG-INFO +22 -12
- {dcccpy-0.1.8 → dcccpy-0.2.0}/src/dcccpy.egg-info/requires.txt +8 -8
- {dcccpy-0.1.8 → dcccpy-0.2.0}/tests/test_core.py +36 -5
- {dcccpy-0.1.8 → dcccpy-0.2.0}/MANIFEST.in +0 -0
- {dcccpy-0.1.8 → dcccpy-0.2.0}/setup.cfg +0 -0
- {dcccpy-0.1.8 → dcccpy-0.2.0}/setup.py +0 -0
- {dcccpy-0.1.8 → dcccpy-0.2.0}/src/dcccpy/__init__.py +0 -0
- {dcccpy-0.1.8 → dcccpy-0.2.0}/src/dcccpy/cli.py +0 -0
- {dcccpy-0.1.8 → dcccpy-0.2.0}/src/dcccpy/py.typed +0 -0
- {dcccpy-0.1.8 → dcccpy-0.2.0}/src/dcccpy.egg-info/SOURCES.txt +0 -0
- {dcccpy-0.1.8 → dcccpy-0.2.0}/src/dcccpy.egg-info/dependency_links.txt +0 -0
- {dcccpy-0.1.8 → dcccpy-0.2.0}/src/dcccpy.egg-info/entry_points.txt +0 -0
- {dcccpy-0.1.8 → dcccpy-0.2.0}/src/dcccpy.egg-info/top_level.txt +0 -0
- {dcccpy-0.1.8 → dcccpy-0.2.0}/tests/test_testpypi_centiloid.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dcccpy
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: Python wrapper for the DCCCcore PET biomarker command-line tool
|
|
5
5
|
Author: DCCCSlicer contributors
|
|
6
6
|
License-Expression: CC-BY-NC-ND-4.0
|
|
@@ -17,17 +17,17 @@ Requires-Python: >=3.9
|
|
|
17
17
|
Description-Content-Type: text/markdown
|
|
18
18
|
Requires-Dist: nibabel>=5
|
|
19
19
|
Provides-Extra: linux-runtime
|
|
20
|
-
Requires-Dist: dcccpy-linux-runtime==0.1.
|
|
21
|
-
Requires-Dist: dcccpy-linux-arm64-runtime==0.1.
|
|
20
|
+
Requires-Dist: dcccpy-linux-runtime==0.1.2; (sys_platform == "linux" and platform_machine == "x86_64") and extra == "linux-runtime"
|
|
21
|
+
Requires-Dist: dcccpy-linux-arm64-runtime==0.1.2; (sys_platform == "linux" and platform_machine == "aarch64") and extra == "linux-runtime"
|
|
22
22
|
Provides-Extra: windows-runtime
|
|
23
|
-
Requires-Dist: dcccpy-windows-runtime==0.1.
|
|
23
|
+
Requires-Dist: dcccpy-windows-runtime==0.1.2; (sys_platform == "win32" and platform_machine == "AMD64") and extra == "windows-runtime"
|
|
24
24
|
Provides-Extra: macos-runtime
|
|
25
|
-
Requires-Dist: dcccpy-macos-runtime==0.1.
|
|
25
|
+
Requires-Dist: dcccpy-macos-runtime==0.1.2; (sys_platform == "darwin" and platform_machine == "arm64") and extra == "macos-runtime"
|
|
26
26
|
Provides-Extra: runtime
|
|
27
|
-
Requires-Dist: dcccpy-linux-runtime==0.1.
|
|
28
|
-
Requires-Dist: dcccpy-linux-arm64-runtime==0.1.
|
|
29
|
-
Requires-Dist: dcccpy-windows-runtime==0.1.
|
|
30
|
-
Requires-Dist: dcccpy-macos-runtime==0.1.
|
|
27
|
+
Requires-Dist: dcccpy-linux-runtime==0.1.2; (sys_platform == "linux" and platform_machine == "x86_64") and extra == "runtime"
|
|
28
|
+
Requires-Dist: dcccpy-linux-arm64-runtime==0.1.2; (sys_platform == "linux" and platform_machine == "aarch64") and extra == "runtime"
|
|
29
|
+
Requires-Dist: dcccpy-windows-runtime==0.1.2; (sys_platform == "win32" and platform_machine == "AMD64") and extra == "runtime"
|
|
30
|
+
Requires-Dist: dcccpy-macos-runtime==0.1.2; (sys_platform == "darwin" and platform_machine == "arm64") and extra == "runtime"
|
|
31
31
|
|
|
32
32
|
# dcccpy
|
|
33
33
|
|
|
@@ -109,6 +109,7 @@ Common helpers mirror `DCCCcore` subcommands:
|
|
|
109
109
|
dcccpy.centiloid("amyloid.nii", suvr=True)
|
|
110
110
|
dcccpy.centaurz("tau.nii", report_detailed_regions=True)
|
|
111
111
|
dcccpy.fillstates("fdg.nii", tracer="fdg")
|
|
112
|
+
dcccpy.adni_pet_core("fdg.nii", tracer="fdg")
|
|
112
113
|
dcccpy.normalize("pet.nii", iterative=True)
|
|
113
114
|
dcccpy.pet_motion_correct(
|
|
114
115
|
"dynamic_pet.nii.gz",
|
|
@@ -134,8 +135,17 @@ Each helper returns `DCCCResult` with:
|
|
|
134
135
|
```bash
|
|
135
136
|
dcccpy --help
|
|
136
137
|
dcccpy centiloid --input amyloid_pet.nii --output result.nii
|
|
138
|
+
dcccpy adni-pet-core --input fdg.nii --output fdg_adni.nii --tracer fdg
|
|
137
139
|
```
|
|
138
140
|
|
|
141
|
+
`adni_pet_core` deliberately has no default tracer. Use `abeta`, `tau`, or
|
|
142
|
+
`fdg`; FDG selects ADNI's iterative masked global-mean normalization, while
|
|
143
|
+
Aβ and tau retain cerebellar gray normalization.
|
|
144
|
+
|
|
145
|
+
Downloaded ADNI preprocessed FDG DICOMs can differ slightly from the exact
|
|
146
|
+
published iteration. See the repository's
|
|
147
|
+
[ADNI FDG compatibility note](../../docs/adni-fdg-preprocessing-validation.md).
|
|
148
|
+
|
|
139
149
|
## Runtime lookup
|
|
140
150
|
|
|
141
151
|
At runtime, `dcccpy` looks for `DCCCcore` in this order:
|
|
@@ -179,7 +189,7 @@ the calculation again.
|
|
|
179
189
|
Release wheels should vendor the matching `DCCCcore` runtime tree before build:
|
|
180
190
|
|
|
181
191
|
```bash
|
|
182
|
-
python scripts/vendor_dccccore.py --version 4.
|
|
192
|
+
python scripts/vendor_dccccore.py --version 4.4.0 --release-platform ubuntu-latest-x64
|
|
183
193
|
python -m build --wheel
|
|
184
194
|
```
|
|
185
195
|
|
|
@@ -187,7 +197,7 @@ The Linux ARM64 runtime package uses the corresponding release asset:
|
|
|
187
197
|
|
|
188
198
|
```bash
|
|
189
199
|
cd python/dcccpy-linux-arm64-runtime
|
|
190
|
-
python scripts/vendor_dccccore.py --version 4.
|
|
200
|
+
python scripts/vendor_dccccore.py --version 4.4.0 --release-platform ubuntu-latest-arm64
|
|
191
201
|
python -m build --wheel
|
|
192
202
|
```
|
|
193
203
|
|
|
@@ -205,7 +215,7 @@ The preferred distribution layout is:
|
|
|
205
215
|
|
|
206
216
|
## Packaging note
|
|
207
217
|
|
|
208
|
-
The runtime wheels use a PyPI-size profile for DCCCcore version 4.
|
|
218
|
+
The runtime wheels use a PyPI-size profile for DCCCcore version 4.4.0. They omit the
|
|
209
219
|
`fast_and_acc` registration model/config and the ADAD decoupler ONNX ensemble,
|
|
210
220
|
while keeping the default spatial normalization model and assets needed by
|
|
211
221
|
common Centiloid/CenTauR/CenTauRz workflows.
|
|
@@ -78,6 +78,7 @@ Common helpers mirror `DCCCcore` subcommands:
|
|
|
78
78
|
dcccpy.centiloid("amyloid.nii", suvr=True)
|
|
79
79
|
dcccpy.centaurz("tau.nii", report_detailed_regions=True)
|
|
80
80
|
dcccpy.fillstates("fdg.nii", tracer="fdg")
|
|
81
|
+
dcccpy.adni_pet_core("fdg.nii", tracer="fdg")
|
|
81
82
|
dcccpy.normalize("pet.nii", iterative=True)
|
|
82
83
|
dcccpy.pet_motion_correct(
|
|
83
84
|
"dynamic_pet.nii.gz",
|
|
@@ -103,8 +104,17 @@ Each helper returns `DCCCResult` with:
|
|
|
103
104
|
```bash
|
|
104
105
|
dcccpy --help
|
|
105
106
|
dcccpy centiloid --input amyloid_pet.nii --output result.nii
|
|
107
|
+
dcccpy adni-pet-core --input fdg.nii --output fdg_adni.nii --tracer fdg
|
|
106
108
|
```
|
|
107
109
|
|
|
110
|
+
`adni_pet_core` deliberately has no default tracer. Use `abeta`, `tau`, or
|
|
111
|
+
`fdg`; FDG selects ADNI's iterative masked global-mean normalization, while
|
|
112
|
+
Aβ and tau retain cerebellar gray normalization.
|
|
113
|
+
|
|
114
|
+
Downloaded ADNI preprocessed FDG DICOMs can differ slightly from the exact
|
|
115
|
+
published iteration. See the repository's
|
|
116
|
+
[ADNI FDG compatibility note](../../docs/adni-fdg-preprocessing-validation.md).
|
|
117
|
+
|
|
108
118
|
## Runtime lookup
|
|
109
119
|
|
|
110
120
|
At runtime, `dcccpy` looks for `DCCCcore` in this order:
|
|
@@ -148,7 +158,7 @@ the calculation again.
|
|
|
148
158
|
Release wheels should vendor the matching `DCCCcore` runtime tree before build:
|
|
149
159
|
|
|
150
160
|
```bash
|
|
151
|
-
python scripts/vendor_dccccore.py --version 4.
|
|
161
|
+
python scripts/vendor_dccccore.py --version 4.4.0 --release-platform ubuntu-latest-x64
|
|
152
162
|
python -m build --wheel
|
|
153
163
|
```
|
|
154
164
|
|
|
@@ -156,7 +166,7 @@ The Linux ARM64 runtime package uses the corresponding release asset:
|
|
|
156
166
|
|
|
157
167
|
```bash
|
|
158
168
|
cd python/dcccpy-linux-arm64-runtime
|
|
159
|
-
python scripts/vendor_dccccore.py --version 4.
|
|
169
|
+
python scripts/vendor_dccccore.py --version 4.4.0 --release-platform ubuntu-latest-arm64
|
|
160
170
|
python -m build --wheel
|
|
161
171
|
```
|
|
162
172
|
|
|
@@ -174,7 +184,7 @@ The preferred distribution layout is:
|
|
|
174
184
|
|
|
175
185
|
## Packaging note
|
|
176
186
|
|
|
177
|
-
The runtime wheels use a PyPI-size profile for DCCCcore version 4.
|
|
187
|
+
The runtime wheels use a PyPI-size profile for DCCCcore version 4.4.0. They omit the
|
|
178
188
|
`fast_and_acc` registration model/config and the ADAD decoupler ONNX ensemble,
|
|
179
189
|
while keeping the default spatial normalization model and assets needed by
|
|
180
190
|
common Centiloid/CenTauR/CenTauRz workflows.
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "dcccpy"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.2.0"
|
|
8
8
|
description = "Python wrapper for the DCCCcore PET biomarker command-line tool"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
@@ -31,16 +31,16 @@ Issues = "https://github.com/tctco/DCCCSlicer/issues"
|
|
|
31
31
|
|
|
32
32
|
[project.optional-dependencies]
|
|
33
33
|
linux-runtime = [
|
|
34
|
-
"dcccpy-linux-runtime==0.1.
|
|
35
|
-
"dcccpy-linux-arm64-runtime==0.1.
|
|
34
|
+
"dcccpy-linux-runtime==0.1.2; sys_platform == 'linux' and platform_machine == 'x86_64'",
|
|
35
|
+
"dcccpy-linux-arm64-runtime==0.1.2; sys_platform == 'linux' and platform_machine == 'aarch64'",
|
|
36
36
|
]
|
|
37
|
-
windows-runtime = ["dcccpy-windows-runtime==0.1.
|
|
38
|
-
macos-runtime = ["dcccpy-macos-runtime==0.1.
|
|
37
|
+
windows-runtime = ["dcccpy-windows-runtime==0.1.2; sys_platform == 'win32' and platform_machine == 'AMD64'"]
|
|
38
|
+
macos-runtime = ["dcccpy-macos-runtime==0.1.2; sys_platform == 'darwin' and platform_machine == 'arm64'"]
|
|
39
39
|
runtime = [
|
|
40
|
-
"dcccpy-linux-runtime==0.1.
|
|
41
|
-
"dcccpy-linux-arm64-runtime==0.1.
|
|
42
|
-
"dcccpy-windows-runtime==0.1.
|
|
43
|
-
"dcccpy-macos-runtime==0.1.
|
|
40
|
+
"dcccpy-linux-runtime==0.1.2; sys_platform == 'linux' and platform_machine == 'x86_64'",
|
|
41
|
+
"dcccpy-linux-arm64-runtime==0.1.2; sys_platform == 'linux' and platform_machine == 'aarch64'",
|
|
42
|
+
"dcccpy-windows-runtime==0.1.2; sys_platform == 'win32' and platform_machine == 'AMD64'",
|
|
43
|
+
"dcccpy-macos-runtime==0.1.2; sys_platform == 'darwin' and platform_machine == 'arm64'",
|
|
44
44
|
]
|
|
45
45
|
|
|
46
46
|
[project.scripts]
|
|
@@ -409,9 +409,15 @@ def normalize(
|
|
|
409
409
|
def adni_pet_core(
|
|
410
410
|
input: object,
|
|
411
411
|
output: str | os.PathLike[str] | None = None,
|
|
412
|
+
*,
|
|
413
|
+
tracer: str,
|
|
412
414
|
**kwargs: object,
|
|
413
415
|
) -> DCCCResult:
|
|
414
|
-
|
|
416
|
+
"""Run tracer-specific ADNI PET Core preprocessing."""
|
|
417
|
+
|
|
418
|
+
extra_args = list(kwargs.pop("extra_args", ()))
|
|
419
|
+
extra_args.extend(["--tracer", tracer])
|
|
420
|
+
return _spatial_command("adni-pet-core", input, output, extra_args=extra_args, **kwargs)
|
|
415
421
|
|
|
416
422
|
|
|
417
423
|
def rigid(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dcccpy
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: Python wrapper for the DCCCcore PET biomarker command-line tool
|
|
5
5
|
Author: DCCCSlicer contributors
|
|
6
6
|
License-Expression: CC-BY-NC-ND-4.0
|
|
@@ -17,17 +17,17 @@ Requires-Python: >=3.9
|
|
|
17
17
|
Description-Content-Type: text/markdown
|
|
18
18
|
Requires-Dist: nibabel>=5
|
|
19
19
|
Provides-Extra: linux-runtime
|
|
20
|
-
Requires-Dist: dcccpy-linux-runtime==0.1.
|
|
21
|
-
Requires-Dist: dcccpy-linux-arm64-runtime==0.1.
|
|
20
|
+
Requires-Dist: dcccpy-linux-runtime==0.1.2; (sys_platform == "linux" and platform_machine == "x86_64") and extra == "linux-runtime"
|
|
21
|
+
Requires-Dist: dcccpy-linux-arm64-runtime==0.1.2; (sys_platform == "linux" and platform_machine == "aarch64") and extra == "linux-runtime"
|
|
22
22
|
Provides-Extra: windows-runtime
|
|
23
|
-
Requires-Dist: dcccpy-windows-runtime==0.1.
|
|
23
|
+
Requires-Dist: dcccpy-windows-runtime==0.1.2; (sys_platform == "win32" and platform_machine == "AMD64") and extra == "windows-runtime"
|
|
24
24
|
Provides-Extra: macos-runtime
|
|
25
|
-
Requires-Dist: dcccpy-macos-runtime==0.1.
|
|
25
|
+
Requires-Dist: dcccpy-macos-runtime==0.1.2; (sys_platform == "darwin" and platform_machine == "arm64") and extra == "macos-runtime"
|
|
26
26
|
Provides-Extra: runtime
|
|
27
|
-
Requires-Dist: dcccpy-linux-runtime==0.1.
|
|
28
|
-
Requires-Dist: dcccpy-linux-arm64-runtime==0.1.
|
|
29
|
-
Requires-Dist: dcccpy-windows-runtime==0.1.
|
|
30
|
-
Requires-Dist: dcccpy-macos-runtime==0.1.
|
|
27
|
+
Requires-Dist: dcccpy-linux-runtime==0.1.2; (sys_platform == "linux" and platform_machine == "x86_64") and extra == "runtime"
|
|
28
|
+
Requires-Dist: dcccpy-linux-arm64-runtime==0.1.2; (sys_platform == "linux" and platform_machine == "aarch64") and extra == "runtime"
|
|
29
|
+
Requires-Dist: dcccpy-windows-runtime==0.1.2; (sys_platform == "win32" and platform_machine == "AMD64") and extra == "runtime"
|
|
30
|
+
Requires-Dist: dcccpy-macos-runtime==0.1.2; (sys_platform == "darwin" and platform_machine == "arm64") and extra == "runtime"
|
|
31
31
|
|
|
32
32
|
# dcccpy
|
|
33
33
|
|
|
@@ -109,6 +109,7 @@ Common helpers mirror `DCCCcore` subcommands:
|
|
|
109
109
|
dcccpy.centiloid("amyloid.nii", suvr=True)
|
|
110
110
|
dcccpy.centaurz("tau.nii", report_detailed_regions=True)
|
|
111
111
|
dcccpy.fillstates("fdg.nii", tracer="fdg")
|
|
112
|
+
dcccpy.adni_pet_core("fdg.nii", tracer="fdg")
|
|
112
113
|
dcccpy.normalize("pet.nii", iterative=True)
|
|
113
114
|
dcccpy.pet_motion_correct(
|
|
114
115
|
"dynamic_pet.nii.gz",
|
|
@@ -134,8 +135,17 @@ Each helper returns `DCCCResult` with:
|
|
|
134
135
|
```bash
|
|
135
136
|
dcccpy --help
|
|
136
137
|
dcccpy centiloid --input amyloid_pet.nii --output result.nii
|
|
138
|
+
dcccpy adni-pet-core --input fdg.nii --output fdg_adni.nii --tracer fdg
|
|
137
139
|
```
|
|
138
140
|
|
|
141
|
+
`adni_pet_core` deliberately has no default tracer. Use `abeta`, `tau`, or
|
|
142
|
+
`fdg`; FDG selects ADNI's iterative masked global-mean normalization, while
|
|
143
|
+
Aβ and tau retain cerebellar gray normalization.
|
|
144
|
+
|
|
145
|
+
Downloaded ADNI preprocessed FDG DICOMs can differ slightly from the exact
|
|
146
|
+
published iteration. See the repository's
|
|
147
|
+
[ADNI FDG compatibility note](../../docs/adni-fdg-preprocessing-validation.md).
|
|
148
|
+
|
|
139
149
|
## Runtime lookup
|
|
140
150
|
|
|
141
151
|
At runtime, `dcccpy` looks for `DCCCcore` in this order:
|
|
@@ -179,7 +189,7 @@ the calculation again.
|
|
|
179
189
|
Release wheels should vendor the matching `DCCCcore` runtime tree before build:
|
|
180
190
|
|
|
181
191
|
```bash
|
|
182
|
-
python scripts/vendor_dccccore.py --version 4.
|
|
192
|
+
python scripts/vendor_dccccore.py --version 4.4.0 --release-platform ubuntu-latest-x64
|
|
183
193
|
python -m build --wheel
|
|
184
194
|
```
|
|
185
195
|
|
|
@@ -187,7 +197,7 @@ The Linux ARM64 runtime package uses the corresponding release asset:
|
|
|
187
197
|
|
|
188
198
|
```bash
|
|
189
199
|
cd python/dcccpy-linux-arm64-runtime
|
|
190
|
-
python scripts/vendor_dccccore.py --version 4.
|
|
200
|
+
python scripts/vendor_dccccore.py --version 4.4.0 --release-platform ubuntu-latest-arm64
|
|
191
201
|
python -m build --wheel
|
|
192
202
|
```
|
|
193
203
|
|
|
@@ -205,7 +215,7 @@ The preferred distribution layout is:
|
|
|
205
215
|
|
|
206
216
|
## Packaging note
|
|
207
217
|
|
|
208
|
-
The runtime wheels use a PyPI-size profile for DCCCcore version 4.
|
|
218
|
+
The runtime wheels use a PyPI-size profile for DCCCcore version 4.4.0. They omit the
|
|
209
219
|
`fast_and_acc` registration model/config and the ADAD decoupler ONNX ensemble,
|
|
210
220
|
while keeping the default spatial normalization model and assets needed by
|
|
211
221
|
common Centiloid/CenTauR/CenTauRz workflows.
|
|
@@ -3,31 +3,31 @@ nibabel>=5
|
|
|
3
3
|
[linux-runtime]
|
|
4
4
|
|
|
5
5
|
[linux-runtime:sys_platform == "linux" and platform_machine == "aarch64"]
|
|
6
|
-
dcccpy-linux-arm64-runtime==0.1.
|
|
6
|
+
dcccpy-linux-arm64-runtime==0.1.2
|
|
7
7
|
|
|
8
8
|
[linux-runtime:sys_platform == "linux" and platform_machine == "x86_64"]
|
|
9
|
-
dcccpy-linux-runtime==0.1.
|
|
9
|
+
dcccpy-linux-runtime==0.1.2
|
|
10
10
|
|
|
11
11
|
[macos-runtime]
|
|
12
12
|
|
|
13
13
|
[macos-runtime:sys_platform == "darwin" and platform_machine == "arm64"]
|
|
14
|
-
dcccpy-macos-runtime==0.1.
|
|
14
|
+
dcccpy-macos-runtime==0.1.2
|
|
15
15
|
|
|
16
16
|
[runtime]
|
|
17
17
|
|
|
18
18
|
[runtime:sys_platform == "darwin" and platform_machine == "arm64"]
|
|
19
|
-
dcccpy-macos-runtime==0.1.
|
|
19
|
+
dcccpy-macos-runtime==0.1.2
|
|
20
20
|
|
|
21
21
|
[runtime:sys_platform == "linux" and platform_machine == "aarch64"]
|
|
22
|
-
dcccpy-linux-arm64-runtime==0.1.
|
|
22
|
+
dcccpy-linux-arm64-runtime==0.1.2
|
|
23
23
|
|
|
24
24
|
[runtime:sys_platform == "linux" and platform_machine == "x86_64"]
|
|
25
|
-
dcccpy-linux-runtime==0.1.
|
|
25
|
+
dcccpy-linux-runtime==0.1.2
|
|
26
26
|
|
|
27
27
|
[runtime:sys_platform == "win32" and platform_machine == "AMD64"]
|
|
28
|
-
dcccpy-windows-runtime==0.1.
|
|
28
|
+
dcccpy-windows-runtime==0.1.2
|
|
29
29
|
|
|
30
30
|
[windows-runtime]
|
|
31
31
|
|
|
32
32
|
[windows-runtime:sys_platform == "win32" and platform_machine == "AMD64"]
|
|
33
|
-
dcccpy-windows-runtime==0.1.
|
|
33
|
+
dcccpy-windows-runtime==0.1.2
|
|
@@ -142,7 +142,7 @@ def test_dccccore_path_can_disable_auto_download(tmp_path: Path, monkeypatch: py
|
|
|
142
142
|
|
|
143
143
|
|
|
144
144
|
def test_dccccore_path_auto_downloads_to_cache(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
|
|
145
|
-
asset_root = tmp_path / "asset" / "DCCCcore-4.
|
|
145
|
+
asset_root = tmp_path / "asset" / "DCCCcore-4.4.0-ubuntu-latest-x64"
|
|
146
146
|
asset_root.mkdir(parents=True)
|
|
147
147
|
exe = asset_root / "DCCCcore"
|
|
148
148
|
exe.write_text("#!/usr/bin/env sh\nprintf 'fake dccccore\\n'\n")
|
|
@@ -150,7 +150,7 @@ def test_dccccore_path_auto_downloads_to_cache(tmp_path: Path, monkeypatch: pyte
|
|
|
150
150
|
|
|
151
151
|
archive = tmp_path / "DCCCcore.zip"
|
|
152
152
|
with zipfile.ZipFile(archive, "w") as zf:
|
|
153
|
-
zf.write(exe, "DCCCcore-4.
|
|
153
|
+
zf.write(exe, "DCCCcore-4.4.0-ubuntu-latest-x64/DCCCcore")
|
|
154
154
|
|
|
155
155
|
monkeypatch.delenv("DCCCPY_DCCCCORE", raising=False)
|
|
156
156
|
monkeypatch.setenv("DCCCPY_AUTO_DOWNLOAD", "1")
|
|
@@ -186,10 +186,10 @@ def test_linux_arm64_release_platform() -> None:
|
|
|
186
186
|
assert release_platform("linux-arm64") == "ubuntu-latest-arm64"
|
|
187
187
|
|
|
188
188
|
|
|
189
|
-
def
|
|
190
|
-
assert DCCCCORE_VERSION == "4.
|
|
189
|
+
def test_default_release_targets_dccccore_440() -> None:
|
|
190
|
+
assert DCCCCORE_VERSION == "4.4.0"
|
|
191
191
|
assert release_url(platform_name="ubuntu-latest-x64").endswith(
|
|
192
|
-
"/releases/download/v4.
|
|
192
|
+
"/releases/download/v4.4.0/DCCCcore-4.4.0-ubuntu-latest-x64.zip"
|
|
193
193
|
)
|
|
194
194
|
|
|
195
195
|
|
|
@@ -262,6 +262,37 @@ def test_pet_motion_correct_forwards_optional_outputs(
|
|
|
262
262
|
]
|
|
263
263
|
|
|
264
264
|
|
|
265
|
+
def test_adni_pet_core_requires_and_forwards_tracer(
|
|
266
|
+
tmp_path: Path,
|
|
267
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
268
|
+
) -> None:
|
|
269
|
+
fake_args = tmp_path / "args.txt"
|
|
270
|
+
fake_exe = make_fake_dccccore(tmp_path)
|
|
271
|
+
input_path = tmp_path / "pet.nii"
|
|
272
|
+
output_path = tmp_path / "adni.nii"
|
|
273
|
+
input_path.write_text("fake PET")
|
|
274
|
+
monkeypatch.setenv("DCCCPY_DCCCCORE", str(fake_exe))
|
|
275
|
+
monkeypatch.setenv("DCCCPY_FAKE_ARGS", str(fake_args))
|
|
276
|
+
|
|
277
|
+
result = dcccpy.adni_pet_core(input_path, output_path, tracer="fdg")
|
|
278
|
+
|
|
279
|
+
assert result.returncode == 0
|
|
280
|
+
assert fake_args.read_text().splitlines() == [
|
|
281
|
+
"adni-pet-core",
|
|
282
|
+
"--input",
|
|
283
|
+
str(input_path),
|
|
284
|
+
"--output",
|
|
285
|
+
str(output_path),
|
|
286
|
+
"--tracer",
|
|
287
|
+
"fdg",
|
|
288
|
+
]
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
def test_adni_pet_core_python_api_has_no_default_tracer() -> None:
|
|
292
|
+
with pytest.raises(TypeError, match="tracer"):
|
|
293
|
+
dcccpy.adni_pet_core("pet.nii")
|
|
294
|
+
|
|
295
|
+
|
|
265
296
|
def test_run_adds_macos_security_hint_for_blocked_runtime(
|
|
266
297
|
tmp_path: Path,
|
|
267
298
|
monkeypatch: pytest.MonkeyPatch,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|