Skip to content

Commit d18022d

Browse files
authored
Merge pull request #1323 from effigies/cli/nifti-dx-2
ENH: Add Nifti2 capabilities to nib-nifti-dx
2 parents e6ccec4 + d571b92 commit d18022d

File tree

3 files changed

+21
-10
lines changed

3 files changed

+21
-10
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ repos:
1616
rev: v0.3.4
1717
hooks:
1818
- id: ruff
19-
args: [--fix, --show-fix, --exit-non-zero-on-fix]
19+
args: [--fix, --show-fixes, --exit-non-zero-on-fix]
2020
exclude: = ["doc", "tools"]
2121
- id: ruff-format
2222
exclude: = ["doc", "tools"]

nibabel/cmdline/nifti_dx.py

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@
99
### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ##
1010
"""Print nifti diagnostics for header files"""
1111

12-
import sys
13-
from optparse import OptionParser
12+
from argparse import ArgumentParser
1413

1514
import nibabel as nib
1615

@@ -21,15 +20,27 @@
2120

2221
def main(args=None):
2322
"""Go go team"""
24-
parser = OptionParser(
25-
usage=f'{sys.argv[0]} [FILE ...]\n\n' + __doc__, version='%prog ' + nib.__version__
23+
parser = ArgumentParser(description=__doc__)
24+
parser.add_argument('--version', action='version', version=f'%(prog)s {nib.__version__}')
25+
parser.add_argument(
26+
'-1',
27+
'--nifti1',
28+
dest='header_class',
29+
action='store_const',
30+
const=nib.Nifti1Header,
31+
default=nib.Nifti1Header,
2632
)
27-
(opts, files) = parser.parse_args(args=args)
33+
parser.add_argument(
34+
'-2', '--nifti2', dest='header_class', action='store_const', const=nib.Nifti2Header
35+
)
36+
parser.add_argument('files', nargs='*', metavar='FILE', help='Nifti file names')
37+
38+
args = parser.parse_args(args=args)
2839

29-
for fname in files:
40+
for fname in args.files:
3041
with nib.openers.ImageOpener(fname) as fobj:
31-
hdr = fobj.read(nib.nifti1.header_dtype.itemsize)
32-
result = nib.Nifti1Header.diagnose_binaryblock(hdr)
42+
hdr = fobj.read(args.header_class.template_dtype.itemsize)
43+
result = args.header_class.diagnose_binaryblock(hdr)
3344
if len(result):
3445
print(f'Picky header check output for "{fname}"\n')
3546
print(result + '\n')

nibabel/tests/test_scripts.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ def test_help():
202202
code, stdout, stderr = run_command([cmd, '--help'])
203203
assert code == 0
204204
assert_re_in(f'.*{cmd}', stdout)
205-
assert_re_in('.*Usage', stdout)
205+
assert_re_in('.*[uU]sage', stdout)
206206
# Some third party modules might like to announce some Deprecation
207207
# etc warnings, see e.g. https://travis-ci.org/nipy/nibabel/jobs/370353602
208208
if 'warning' not in stderr.lower():

0 commit comments

Comments
 (0)