From 731593100d0f8bd9e92d931a8d36c844fee25d7e Mon Sep 17 00:00:00 2001 From: "Christopher P. Cheng" Date: Wed, 10 Oct 2018 13:05:00 -0400 Subject: [PATCH 1/3] storing changes for main testing --- nibabel/cmdline/diff.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nibabel/cmdline/diff.py b/nibabel/cmdline/diff.py index 5e63d8594b..e398eef818 100755 --- a/nibabel/cmdline/diff.py +++ b/nibabel/cmdline/diff.py @@ -304,12 +304,13 @@ def diff(files, header_fields='all', data_max_abs_diff=None, data_max_rel_diff=N return diff -def main(args=None, out=None): +def main(args=None, out=None, dtype=None): """Getting the show on the road""" out = out or sys.stdout parser = get_opt_parser() (opts, files) = parser.parse_args(args) + dtype = dtype or opts.dtype nibabel.cmdline.utils.verbose_level = opts.verbose @@ -322,7 +323,7 @@ def main(args=None, out=None): header_fields=opts.header_fields, data_max_abs_diff=opts.data_max_abs_diff, data_max_rel_diff=opts.data_max_rel_diff, - dtype=opts.dtype + dtype=dtype ) if files_diff: From 974a3a954b9d4916f2f2f5e2de5c89b1fba024be Mon Sep 17 00:00:00 2001 From: "Christopher P. Cheng" Date: Thu, 11 Oct 2018 11:14:21 -0400 Subject: [PATCH 2/3] cmdline test added for dtype access --- nibabel/cmdline/diff.py | 5 ++--- nibabel/tests/test_scripts.py | 4 ++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nibabel/cmdline/diff.py b/nibabel/cmdline/diff.py index e398eef818..5e63d8594b 100755 --- a/nibabel/cmdline/diff.py +++ b/nibabel/cmdline/diff.py @@ -304,13 +304,12 @@ def diff(files, header_fields='all', data_max_abs_diff=None, data_max_rel_diff=N return diff -def main(args=None, out=None, dtype=None): +def main(args=None, out=None): """Getting the show on the road""" out = out or sys.stdout parser = get_opt_parser() (opts, files) = parser.parse_args(args) - dtype = dtype or opts.dtype nibabel.cmdline.utils.verbose_level = opts.verbose @@ -323,7 +322,7 @@ def main(args=None, out=None, dtype=None): header_fields=opts.header_fields, data_max_abs_diff=opts.data_max_abs_diff, data_max_rel_diff=opts.data_max_rel_diff, - dtype=dtype + dtype=opts.dtype ) if files_diff: diff --git a/nibabel/tests/test_scripts.py b/nibabel/tests/test_scripts.py index a734fbeeda..2c17c33fd1 100644 --- a/nibabel/tests/test_scripts.py +++ b/nibabel/tests/test_scripts.py @@ -95,6 +95,10 @@ def check_nib_diff_examples(): code, stdout, stderr = run_command(['nib-diff'] + fnames4, check_code=False) assert_equal(stdout, "These files are identical.") + code, stdout, stderr = run_command(['nib-diff', '--dt', 'float64'] + fnames, check_code=False) + for item in checked_fields: + assert_true(item in stdout) + @script_test From 5361c7f40d086d6ec696a70b187b34fbfdb94fd3 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Thu, 11 Oct 2018 12:23:09 -0400 Subject: [PATCH 3/3] ENH: adjusted some strings etc to fit the width and avoid duplicate spaces --- nibabel/cmdline/diff.py | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/nibabel/cmdline/diff.py b/nibabel/cmdline/diff.py index 5e63d8594b..984202d2ec 100755 --- a/nibabel/cmdline/diff.py +++ b/nibabel/cmdline/diff.py @@ -38,22 +38,25 @@ def get_opt_parser(): Option("-H", "--header-fields", dest="header_fields", default='all', - help="Header fields (comma separated) to be printed as well (if present)"), + help="Header fields (comma separated) to be printed as well" + " (if present)"), Option("--ma", "--data-max-abs-diff", dest="data_max_abs_diff", type=float, default=0.0, - help="Maximal absolute difference in data between files to tolerate."), + help="Maximal absolute difference in data between files" + " to tolerate."), Option("--mr", "--data-max-rel-diff", dest="data_max_rel_diff", type=float, default=0.0, - help="Maximal relative difference in data between files to tolerate." - " If --data-max-abs-diff is also specified, only the data points " - " with absolute difference greater than that value would be " - " considered for relative difference check."), + help="Maximal relative difference in data between files to" + " tolerate. If --data-max-abs-diff is also specified," + " only the data points with absolute difference greater" + " than that value would be considered for relative" + " difference check."), Option("--dt", "--datatype", dest="dtype", default=np.float64, @@ -66,7 +69,8 @@ def get_opt_parser(): def are_values_different(*values): """Generically compares values, returns true if different""" value0 = values[0] - values = values[1:] # to ensure that the first value isn't compared with itself + # to ensure that the first value isn't compared with itself + values = values[1:] for value in values: try: # we sometimes don't want NaN values @@ -274,15 +278,16 @@ def display_diff(files, diff): return output -def diff(files, header_fields='all', data_max_abs_diff=None, data_max_rel_diff=None, - dtype=np.float64): +def diff(files, header_fields='all', data_max_abs_diff=None, + data_max_rel_diff=None, dtype=np.float64): assert len(files) >= 2, "Please enter at least two files" file_headers = [nib.load(f).header for f in files] # signals "all fields" if header_fields == 'all': - # TODO: header fields might vary across file types, thus prior sensing would be needed + # TODO: header fields might vary across file types, + # thus prior sensing would be needed header_fields = file_headers[0].keys() else: header_fields = header_fields.split(',')