From 70d6081bd762e2885aa7e5d57fdd28a44f4b7eb4 Mon Sep 17 00:00:00 2001 From: vinferrer Date: Thu, 26 Nov 2020 12:21:43 +0100 Subject: [PATCH 01/10] do not use copy --- phys2bids/tests/test_physio_obj.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/phys2bids/tests/test_physio_obj.py b/phys2bids/tests/test_physio_obj.py index 4fc1ae6d9..3abfa6dda 100644 --- a/phys2bids/tests/test_physio_obj.py +++ b/phys2bids/tests/test_physio_obj.py @@ -89,7 +89,7 @@ def test_BlueprintInput(): test_time = np.array([0, 1, 1, 2, 3, 5, 8, 13]) test_trigger = np.array([0, 1, 0, 0, 0, 0, 0, 0]) test_chocolate = np.array([1, 0, 0, 1, 0, 0, 1, 0]) - test_timeseries = [test_time.copy(), test_trigger, test_chocolate] + test_timeseries = [test_time, test_trigger, test_chocolate] test_freq = [42.0, 3.14, 20.0] test_chn_name = ['time', 'trigger', 'chocolate'] test_units = ['s', 's', 'sweetness'] @@ -101,7 +101,7 @@ def test_BlueprintInput(): # Tests rename_channels new_names = ['trigger', 'time', 'lindt'] - blueprint_in.rename_channels(new_names.copy()) + blueprint_in.rename_channels(new_names) assert blueprint_in.ch_name == ['time', 'trigger', 'lindt'] # Tests return_index @@ -140,7 +140,7 @@ def test_cta_time_interp(): """Test BlueprintInput.check_trigger_amount with time resampling.""" test_time = np.array([0, 7]) test_trigger = np.array([0, 1, 0, 0, 0, 0, 0, 0]) - test_timeseries = [test_time.copy(), test_trigger] + test_timeseries = [test_time, test_trigger] test_freq = [42.0, 3.14] test_chn_name = ['time', 'trigger'] test_units = ['s', 's'] From 59bd18f3f78492887e3cfac766270f3c7325bf9f Mon Sep 17 00:00:00 2001 From: Vicente Ferrer Date: Thu, 26 Nov 2020 12:51:59 +0100 Subject: [PATCH 02/10] deleting copy for line 459 --- phys2bids/physio_obj.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phys2bids/physio_obj.py b/phys2bids/physio_obj.py index 61bdd88eb..1d613654c 100644 --- a/phys2bids/physio_obj.py +++ b/phys2bids/physio_obj.py @@ -456,7 +456,7 @@ def check_trigger_amount(self, thr=None, num_timepoints_expected=0, tr=0): # Use the trigger channel to find the TRs, # comparing it to a given threshold. trigger = self.timeseries[self.trigger_idx] - time = self.timeseries[0].copy() + time = self.timeseries[0] LGR.info(f'The trigger is in channel {self.trigger_idx}') # Check that trigger and time channels have the same length. # If not, resample time to the length of the trigger From 1c607f1606aa61df6919291fa972378a329f08f1 Mon Sep 17 00:00:00 2001 From: Vicente Ferrer Date: Thu, 26 Nov 2020 12:53:16 +0100 Subject: [PATCH 03/10] merge with remote --- phys2bids/tests/test_physio_obj.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/phys2bids/tests/test_physio_obj.py b/phys2bids/tests/test_physio_obj.py index 4fc1ae6d9..3abfa6dda 100644 --- a/phys2bids/tests/test_physio_obj.py +++ b/phys2bids/tests/test_physio_obj.py @@ -89,7 +89,7 @@ def test_BlueprintInput(): test_time = np.array([0, 1, 1, 2, 3, 5, 8, 13]) test_trigger = np.array([0, 1, 0, 0, 0, 0, 0, 0]) test_chocolate = np.array([1, 0, 0, 1, 0, 0, 1, 0]) - test_timeseries = [test_time.copy(), test_trigger, test_chocolate] + test_timeseries = [test_time, test_trigger, test_chocolate] test_freq = [42.0, 3.14, 20.0] test_chn_name = ['time', 'trigger', 'chocolate'] test_units = ['s', 's', 'sweetness'] @@ -101,7 +101,7 @@ def test_BlueprintInput(): # Tests rename_channels new_names = ['trigger', 'time', 'lindt'] - blueprint_in.rename_channels(new_names.copy()) + blueprint_in.rename_channels(new_names) assert blueprint_in.ch_name == ['time', 'trigger', 'lindt'] # Tests return_index @@ -140,7 +140,7 @@ def test_cta_time_interp(): """Test BlueprintInput.check_trigger_amount with time resampling.""" test_time = np.array([0, 7]) test_trigger = np.array([0, 1, 0, 0, 0, 0, 0, 0]) - test_timeseries = [test_time.copy(), test_trigger] + test_timeseries = [test_time, test_trigger] test_freq = [42.0, 3.14] test_chn_name = ['time', 'trigger'] test_units = ['s', 's'] From 7a2d15687d0b21970e1e2676ba68fc80ee8fcd12 Mon Sep 17 00:00:00 2001 From: Vicente Ferrer Date: Thu, 26 Nov 2020 16:58:13 +0100 Subject: [PATCH 04/10] Update phys2bids/tests/test_physio_obj.py Co-authored-by: Taylor Salo --- phys2bids/tests/test_physio_obj.py | 1 + 1 file changed, 1 insertion(+) diff --git a/phys2bids/tests/test_physio_obj.py b/phys2bids/tests/test_physio_obj.py index 3abfa6dda..743f7a6b8 100644 --- a/phys2bids/tests/test_physio_obj.py +++ b/phys2bids/tests/test_physio_obj.py @@ -103,6 +103,7 @@ def test_BlueprintInput(): new_names = ['trigger', 'time', 'lindt'] blueprint_in.rename_channels(new_names) assert blueprint_in.ch_name == ['time', 'trigger', 'lindt'] + assert test_index[0] is not test_trigger # Tests return_index test_index = blueprint_in.return_index(1) From 16e8e92992882769dac680a405da821a7ec93e07 Mon Sep 17 00:00:00 2001 From: Vicente Ferrer Date: Thu, 26 Nov 2020 17:11:00 +0100 Subject: [PATCH 05/10] declare variable before the assert --- phys2bids/tests/test_physio_obj.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/phys2bids/tests/test_physio_obj.py b/phys2bids/tests/test_physio_obj.py index 743f7a6b8..a9514bfe7 100644 --- a/phys2bids/tests/test_physio_obj.py +++ b/phys2bids/tests/test_physio_obj.py @@ -102,11 +102,11 @@ def test_BlueprintInput(): # Tests rename_channels new_names = ['trigger', 'time', 'lindt'] blueprint_in.rename_channels(new_names) + test_index = blueprint_in.return_index(1) assert blueprint_in.ch_name == ['time', 'trigger', 'lindt'] - assert test_index[0] is not test_trigger + assert test_index[0] is test_trigger # Tests return_index - test_index = blueprint_in.return_index(1) assert (test_index[0] == test_trigger).all() assert test_index[1] == len(test_timeseries) assert test_index[2] == test_freq[1] From 196f53a95232628f72957df0cc06b4e04d3c67f9 Mon Sep 17 00:00:00 2001 From: Vicente Ferrer Date: Thu, 26 Nov 2020 17:14:12 +0100 Subject: [PATCH 06/10] declare variable before the assert --- phys2bids/tests/test_physio_obj.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phys2bids/tests/test_physio_obj.py b/phys2bids/tests/test_physio_obj.py index a9514bfe7..5079f9d43 100644 --- a/phys2bids/tests/test_physio_obj.py +++ b/phys2bids/tests/test_physio_obj.py @@ -104,7 +104,7 @@ def test_BlueprintInput(): blueprint_in.rename_channels(new_names) test_index = blueprint_in.return_index(1) assert blueprint_in.ch_name == ['time', 'trigger', 'lindt'] - assert test_index[0] is test_trigger + assert test_index[0] is not test_trigger # Tests return_index assert (test_index[0] == test_trigger).all() From ab350eb070cb2e9dd7147f6c59036e91f4b8d70d Mon Sep 17 00:00:00 2001 From: Vicente Ferrer Date: Thu, 26 Nov 2020 17:28:03 +0100 Subject: [PATCH 07/10] move the statements --- phys2bids/tests/test_physio_obj.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/phys2bids/tests/test_physio_obj.py b/phys2bids/tests/test_physio_obj.py index 5079f9d43..b28be27ba 100644 --- a/phys2bids/tests/test_physio_obj.py +++ b/phys2bids/tests/test_physio_obj.py @@ -102,11 +102,11 @@ def test_BlueprintInput(): # Tests rename_channels new_names = ['trigger', 'time', 'lindt'] blueprint_in.rename_channels(new_names) - test_index = blueprint_in.return_index(1) assert blueprint_in.ch_name == ['time', 'trigger', 'lindt'] - assert test_index[0] is not test_trigger # Tests return_index + test_index = blueprint_in.return_index(1) + assert test_index[0] is not test_trigger assert (test_index[0] == test_trigger).all() assert test_index[1] == len(test_timeseries) assert test_index[2] == test_freq[1] From 8159f7829d7e18c7cf0d1551d1eaaec12ffc112c Mon Sep 17 00:00:00 2001 From: Vicente Ferrer Date: Thu, 26 Nov 2020 17:41:15 +0100 Subject: [PATCH 08/10] use deepcopy inside __init__ --- phys2bids/physio_obj.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/phys2bids/physio_obj.py b/phys2bids/physio_obj.py index 1d613654c..7c33c5af5 100644 --- a/phys2bids/physio_obj.py +++ b/phys2bids/physio_obj.py @@ -7,6 +7,7 @@ from itertools import groupby import numpy as np +from copy import deepcopy LGR = logging.getLogger(__name__) @@ -228,16 +229,16 @@ class BlueprintInput(): def __init__(self, timeseries, freq, ch_name, units, trigger_idx, num_timepoints_found=None, thr=None, time_offset=0): """Initialise BlueprintInput (see class docstring).""" - self.timeseries = is_valid(timeseries, list, list_type=np.ndarray) - self.freq = has_size(is_valid(freq, list, + self.timeseries = deepcopy(is_valid(timeseries, list, list_type=np.ndarray)) + self.freq = deepcopy(has_size(is_valid(freq, list, list_type=(int, float)), - self.ch_amount, 0.0) - self.ch_name = has_size(ch_name, self.ch_amount, 'unknown') - self.units = has_size(units, self.ch_amount, '[]') - self.trigger_idx = is_valid(trigger_idx, int) - self.num_timepoints_found = num_timepoints_found - self.thr = thr - self.time_offset = time_offset + self.ch_amount, 0.0)) + self.ch_name = deepcopy(has_size(ch_name, self.ch_amount, 'unknown')) + self.units = deepcopy(has_size(units, self.ch_amount, '[]')) + self.trigger_idx = deepcopy(is_valid(trigger_idx, int)) + self.num_timepoints_found = deepcopy(num_timepoints_found) + self.thr = deepcopy(thr) + self.time_offset = deepcopy(time_offset) @property def ch_amount(self): From 4e8e9215bfdff1af382d34600699aa4c00efe171 Mon Sep 17 00:00:00 2001 From: Vicente Ferrer Date: Fri, 27 Nov 2020 12:58:40 +0100 Subject: [PATCH 09/10] move deepcopy import for style check --- phys2bids/physio_obj.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phys2bids/physio_obj.py b/phys2bids/physio_obj.py index 7c33c5af5..725909e02 100644 --- a/phys2bids/physio_obj.py +++ b/phys2bids/physio_obj.py @@ -4,10 +4,10 @@ """I/O objects for phys2bids.""" import logging +from copy import deepcopy from itertools import groupby import numpy as np -from copy import deepcopy LGR = logging.getLogger(__name__) From 1eb80ffa1003a4352bc7c9930a516dba18a4f4b2 Mon Sep 17 00:00:00 2001 From: Vicente Ferrer Date: Fri, 27 Nov 2020 13:00:39 +0100 Subject: [PATCH 10/10] add deepcopy to blueprintOutput inputs --- phys2bids/physio_obj.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/phys2bids/physio_obj.py b/phys2bids/physio_obj.py index 725909e02..3466aa626 100644 --- a/phys2bids/physio_obj.py +++ b/phys2bids/physio_obj.py @@ -587,12 +587,12 @@ class BlueprintOutput(): def __init__(self, timeseries, freq, ch_name, units, start_time, filename=''): """Initialise BlueprintOutput (see class docstring).""" - self.timeseries = is_valid(timeseries, np.ndarray) - self.freq = is_valid(freq, (int, float)) - self.ch_name = has_size(ch_name, self.ch_amount, 'unknown') - self.units = has_size(units, self.ch_amount, '[]') - self.start_time = start_time - self.filename = is_valid(filename, str) + self.timeseries = deepcopy(is_valid(timeseries, np.ndarray)) + self.freq = deepcopy(is_valid(freq, (int, float))) + self.ch_name = deepcopy(has_size(ch_name, self.ch_amount, 'unknown')) + self.units = deepcopy(has_size(units, self.ch_amount, '[]')) + self.start_time = deepcopy(start_time) + self.filename = deepcopy(is_valid(filename, str)) @property def ch_amount(self):