diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index bdfabb97..2e970727 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -81,6 +81,7 @@ jobs: with: name: code-coverage-report path: .coverage + if-no-files-found: error check-secret: runs-on: ubuntu-latest diff --git a/tests/data/bids_tests/eeg_ds003645s_hed_library/dataset_description.json b/tests/data/bids_tests/eeg_ds003645s_hed_library/dataset_description.json index bdf62c28..5b1a510e 100644 --- a/tests/data/bids_tests/eeg_ds003645s_hed_library/dataset_description.json +++ b/tests/data/bids_tests/eeg_ds003645s_hed_library/dataset_description.json @@ -1,24 +1,24 @@ -{ - "Name": "Face processing MEEG dataset with HED annotation", - "BIDSVersion": "1.9.0", - "HEDVersion": ["8.2.0", "sc:score_1.0.0", "test:testlib_1.0.2"], - "License": "CC0", - "Authors": [ - "Daniel G. Wakeman", - "Richard N Henson", - "Dung Truong (curation)", - "Kay Robbins (curation)", - "Scott Makeig (curation)", - "Arno Delorme (curation)" - ], - "ReferencesAndLinks": [ - "Wakeman, D., Henson, R. (2015). A multi-subject, multi-modal human neuroimaging dataset. Sci Data 2, 150001. https://doi.org/10.1038/sdata.2015.1", - "Robbins, K., Truong, D., Appelhoff, S., Delorme, A., & Makeig, S. (2021). Capturing the nature of events and event context using Hierarchical Event Descriptors (HED). In press for NeuroImage Special Issue Practice in MEEG. NeuroImage 245 (2021) 118766. Online: https://www.sciencedirect.com/science/article/pii/S1053811921010387.", - "Robbins, K., Truong, D., Jones, A., Callanan, I., & Makeig, S. (2021). Building FAIR functionality: Annotating events in time series data using Hierarchical Event Descriptors (HED). Neuroinformatics Special Issue Building the NeuroCommons. Neuroinformatics https://doi.org/10.1007/s12021-021-09537-4. Online: https://link.springer.com/article/10.1007/s12021-021-09537-4." - ], - "Funding": [ - "Experiment was supported by the UK Medical Research Council (MC_A060_5PR10) and Elekta Ltd.", - "Curation was supported by: Army Research Laboratory W911NF-10-2-0022, NIH R01 EB023297-03, NIH R01 NS047293-l4, and NIH R24 MH120037-01." - ], - "DatasetDOI": "10.18112/openneuro.ds003645.v1.0.0" +{ + "Name": "Face processing MEEG dataset with HED annotation", + "BIDSVersion": "1.10.0", + "HEDVersion": ["score_2.0.0", "test:testlib_1.0.2"], + "License": "CC0", + "Authors": [ + "Daniel G. Wakeman", + "Richard N Henson", + "Dung Truong (curation)", + "Kay Robbins (curation)", + "Scott Makeig (curation)", + "Arno Delorme (curation)" + ], + "ReferencesAndLinks": [ + "Wakeman, D., Henson, R. (2015). A multi-subject, multi-modal human neuroimaging dataset. Sci Data 2, 150001. https://doi.org/10.1038/sdata.2015.1", + "Robbins, K., Truong, D., Appelhoff, S., Delorme, A., & Makeig, S. (2021). Capturing the nature of events and event context using Hierarchical Event Descriptors (HED). In press for NeuroImage Special Issue Practice in MEEG. NeuroImage 245 (2021) 118766. Online: https://www.sciencedirect.com/science/article/pii/S1053811921010387.", + "Robbins, K., Truong, D., Jones, A., Callanan, I., & Makeig, S. (2021). Building FAIR functionality: Annotating events in time series data using Hierarchical Event Descriptors (HED). Neuroinformatics Special Issue Building the NeuroCommons. Neuroinformatics https://doi.org/10.1007/s12021-021-09537-4. Online: https://link.springer.com/article/10.1007/s12021-021-09537-4." + ], + "Funding": [ + "Experiment was supported by the UK Medical Research Council (MC_A060_5PR10) and Elekta Ltd.", + "Curation was supported by: Army Research Laboratory W911NF-10-2-0022, NIH R01 EB023297-03, NIH R01 NS047293-l4, and NIH R24 MH120037-01." + ], + "DatasetDOI": "10.18112/openneuro.ds003645.v1.0.0" } \ No newline at end of file diff --git a/tests/data/bids_tests/eeg_ds003645s_hed_library/task-FacePerception_events.json b/tests/data/bids_tests/eeg_ds003645s_hed_library/task-FacePerception_events.json index ab39a108..03e4bfaa 100644 --- a/tests/data/bids_tests/eeg_ds003645s_hed_library/task-FacePerception_events.json +++ b/tests/data/bids_tests/eeg_ds003645s_hed_library/task-FacePerception_events.json @@ -1,137 +1,137 @@ -{ - "onset": { - "Description": "Position of event marker in seconds relative to the start.", - "Units": "s" - }, - "duration": { - "Description": "Duration of the event in seconds.", - "Units": "s" - }, - "event_type": { - "LongName": "Event category", - "Description": "The main category of the event.", - "Levels": { - "show_face": "Display a face to mark end of pre-stimulus and start of blink-inhibition.", - "show_face_initial": "Display a face at the beginning of the recording.", - "show_circle": "Display a white circle to mark end of the stimulus and blink inhibition.", - "show_cross": "Display only a white cross to mark start of trial and fixation.", - "left_press": "Experiment participant presses a key with left index finger.", - "right_press": "Experiment participant presses a key with right index finger.", - "setup_left_sym": "Setup for experiment with pressing key with left index finger means a face with above average symmetry.", - "setup_right_sym": "Setup for experiment with pressing key with right index finger means a face with above average symmetry.", - "double_press": "Experiment participant presses both keys ." - }, - "HED": { - "show_face": "Sensory-event, test:Experimental-stimulus, (Def/Face-image, Onset), (Def/Blink-inhibition-task,Onset),(Def/Cross-only, Offset)", - "show_face_initial": "Sensory-event, Experimental-stimulus, (Def/Face-image, Onset), (Def/Blink-inhibition-task,Onset), (Def/Fixation-task, Onset)", - "show_circle": "Sensory-event, (Intended-effect, Cue), (Def/Circle-only, Onset), (Def/Face-image, Offset), (Def/Blink-inhibition-task, Offset), (Def/Fixation-task, Offset)", - "show_cross": "Sensory-event, (Intended-effect, Cue), (Def/Cross-only, Onset), (Def/Fixation-task, Onset), (Def/Circle-only, Offset), sc:Hyperventilation-refused-procedure/Could not comply", - "left_press": "Agent-action, Participant-response, Def/Press-left-finger", - "right_press": "Agent-action, Participant-response, Def/Press-right-finger", - "setup_left_sym": "Experiment-structure, (Def/Left-sym-cond, Onset), (Def/Initialize-recording, Onset)", - "setup_right_sym": "Experiment-structure, (Def/Right-sym-cond, Onset), (Def/Initialize-recording, Onset)", - "double_press": "Agent-action, Indeterminate-action, sc:Sleep-architecture, (Press, Keyboard-key)" - } - }, - "face_type": { - "Description": "Factor indicating type of face image being displayed.", - "Levels": { - "famous_face": "A face that should be recognized by the participants.", - "unfamiliar_face": "A face that should not be recognized by the participants.", - "scrambled_face": "A scrambled face image generated by taking face 2D FFT." - }, - "HED": { - "famous_face": "Def/Famous-face-cond", - "unfamiliar_face": "Def/Unfamiliar-face-cond", - "scrambled_face": "Def/Scrambled-face-cond" - } - }, - "rep_status": { - "Description": "Factor indicating whether this image has been already seen.", - "Levels": { - "first_show": "Factor level indicating the first display of this face.", - "immediate_repeat": "Factor level indicating this face was the same as previous one.", - "delayed_repeat": "Factor level indicating face was seen 5 to 15 trials ago." - }, - "HED": { - "first_show": "Def/First-show-cond", - "immediate_repeat": "Def/Immediate-repeat-cond", - "delayed_repeat": "Def/Delayed-repeat-cond" - } - }, - "trial": { - "Description": "Indicates which trial this event belongs to." - }, - "rep_lag": { - "Description": "How face images before this one was the image was previously presented.", - "HED": "(Face, Item-interval/#)" - }, - "stim_file": { - "Description": "Path of the stimulus file in the stimuli directory.", - "HED": "(Image, Pathname/#), test:Image" - }, - "hed_def_sensory": { - "Description": "Metadata dictionary for gathering sensory definitions", - "HED": { - "cross_only_def": "(Definition/Cross-only, (Visual-presentation, (Foreground-view, (White, Cross), (Center-of, Computer-screen)), sc:Sleep-architecture, (Background-view, Black), test:Cue, Description/A white fixation cross on a black background in the center of the screen.))", - "face_image_def": "(Definition/Face-image, (Visual-presentation, (Foreground-view, ((Image, Face, Hair), Color/Grayscale), ((White, Cross), (Center-of, Computer-screen))), (Background-view, Black), Description/A happy or neutral face in frontal or three-quarters frontal pose with long hair cropped presented as an achromatic foreground image on a black background with a white fixation cross superposed.))", - "circle_only_def": "(Definition/Circle-only, (Visual-presentation, (Foreground-view, ((White, Circle), (Center-of, Computer-screen))), (Background-view, Black), Description/A white circle on a black background in the center of the screen.))" - } - }, - "hed_def_actions": { - "Description": "Metadata dictionary for gathering participant action definitions", - "HED": { - "press_left_finger_def": "(Definition/Press-left-finger, ((Index-finger, (Left-side-of, Experiment-participant)), (Press, Keyboard-key), Description/The participant presses a key with the left index finger to indicate a face symmetry judgment.))", - "press_right_finger_def": "(Definition/Press-right-finger, ((Index-finger, (Right-side-of, Experiment-participant)), (Press, Keyboard-key), Description/The participant presses a key with the right index finger to indicate a face symmetry evaluation.))" - } - }, - "hed_def_conds": { - "Description": "Metadata dictionary for gathering experimental condition definitions", - "HED": { - "famous_face_cond_def": "(Definition/Famous-face-cond, (Condition-variable/Face-type, (Image, (Face, Famous)), Description/A face that should be recognized by the participants))", - "unfamiliar_face_cond_def": "(Definition/Unfamiliar-face-cond, (Condition-variable/Face-type, (Image, (Face, Unfamiliar)), Description/A face that should not be recognized by the participants.))", - "scrambled_face_cond_def": "(Definition/Scrambled-face-cond, (Condition-variable/Face-type, (Image, (Face, Disordered)), Description/A scrambled face image generated by taking face 2D FFT.))", - "first_show_cond_def": "(Definition/First-show-cond, ((Condition-variable/Repetition-type, (Item-count/1, Face), Item-interval/0), Description/Factor level indicating the first display of this face.))", - "immediate_repeat_cond_def": "(Definition/Immediate-repeat-cond, ((Condition-variable/Repetition-type, (Item-count/2, Face), Item-interval/1), Description/Factor level indicating this face was the same as previous one.))", - "delayed_repeat_cond_def": "(Definition/Delayed-repeat-cond, (Condition-variable/Repetition-type, (Item-count/2, Face), (Item-interval, (Greater-than-or-equal-to, Item-interval/5)), Description/Factor level indicating face was seen 5 to 15 trials ago.))", - "left_sym_cond_def": "(Definition/Left-sym-cond, (Condition-variable/Key-assignment, ((Index-finger, (Left-side-of, Experiment-participant)), (Behavioral-evidence, Symmetrical)), ((Index-finger, (Right-side-of, Experiment-participant)), (Behavioral-evidence, Asymmetrical)), Description/Left index finger key press indicates a face with above average symmetry.))", - "right_sym_cond_def": "(Definition/Right-sym-cond, (Condition-variable/Key-assignment, ((Index-finger, (Right-side-of, Experiment-participant)), (Behavioral-evidence, Symmetrical)), ((Index-finger, (Left-side-of, Experiment-participant)), (Behavioral-evidence, Asymmetrical)), Description/Right index finger key press indicates a face with above average symmetry.))" - } - }, - "hed_def_tasks": { - "Description": "Metadata dictionary for gathering task definitions", - "HED": { - "face_symmetry_evaluation_task_def": "(Definition/Face-symmetry-evaluation-task, (Task, Experiment-participant, (See, Face), (Discriminate, (Face, Symmetrical)), (Press, Keyboard-key), Description/Evaluate degree of image symmetry and respond with key press evaluation.))", - "blink_inhibition_task_def": "(Definition/Blink-inhibition-task, (Task, Experiment-participant, Inhibit-blinks, Description/Do not blink while the face image is displayed.))", - "fixation_task_def": "(Definition/Fixation-task, (Task, Experiment-participant, (Fixate, Cross), Description/Fixate on the cross at the screen center.))" - } - }, - "hed_def_setup": { - "Description": "Metadata dictionary for gathering setup definitions", - "HED": { - "setup_def": "(Definition/Initialize-recording, (Recording))" - } - - }, - "value": { - "Description": "Numerical event marker", - "Levels": { - "x0": "Disappearance of face image and display of the inter-stimulus circle simultaneously", - "x1": "Disappearance of face image and display of the inter-stimulus circle simultaneously", - "x2": "Initial setup with left finger key press indicating above average symmetry", - "x3": "Initial setup with right finger key press indicating above average symmetry", - "x5": "Initial presentation of famous face", - "x6": "Immediate repeated presentation of famous face", - "x7": "Delayed repeated presentation of famous face", - "x13": "Initial presentation of unfamiliar face", - "x14": "Immediate repeated presentation of unfamiliar face", - "x15": "Delayed repeated presentation of unfamiliar face", - "x17": "Initial presentation of scrambled face", - "x18": "Immediate repeated presentation of scrambled face", - "x19": "Delayed repeated presentation of scrambled face", - "x256": "Left finger key press", - "x4096": "Right finger key press", - "x4352": "Left and right finger key presses" - } - } -} +{ + "onset": { + "Description": "Position of event marker in seconds relative to the start.", + "Units": "s" + }, + "duration": { + "Description": "Duration of the event in seconds.", + "Units": "s" + }, + "event_type": { + "LongName": "Event category", + "Description": "The main category of the event.", + "Levels": { + "show_face": "Display a face to mark end of pre-stimulus and start of blink-inhibition.", + "show_face_initial": "Display a face at the beginning of the recording.", + "show_circle": "Display a white circle to mark end of the stimulus and blink inhibition.", + "show_cross": "Display only a white cross to mark start of trial and fixation.", + "left_press": "Experiment participant presses a key with left index finger.", + "right_press": "Experiment participant presses a key with right index finger.", + "setup_left_sym": "Setup for experiment with pressing key with left index finger means a face with above average symmetry.", + "setup_right_sym": "Setup for experiment with pressing key with right index finger means a face with above average symmetry.", + "double_press": "Experiment participant presses both keys ." + }, + "HED": { + "show_face": "Sensory-event, test:Experimental-stimulus, (Def/Face-image, Onset), (Def/Blink-inhibition-task,Onset),(Def/Cross-only, Offset)", + "show_face_initial": "Sensory-event, Experimental-stimulus, (Def/Face-image, Onset), (Def/Blink-inhibition-task,Onset), (Def/Fixation-task, Onset)", + "show_circle": "Sensory-event, (Intended-effect, Cue), (Def/Circle-only, Onset), (Def/Face-image, Offset), (Def/Blink-inhibition-task, Offset), (Def/Fixation-task, Offset)", + "show_cross": "Sensory-event, (Intended-effect, Cue), (Def/Cross-only, Onset), (Def/Fixation-task, Onset), (Def/Circle-only, Offset), Hyperventilation-refused-procedure/Could not comply", + "left_press": "Agent-action, Participant-response, Def/Press-left-finger", + "right_press": "Agent-action, Participant-response, Def/Press-right-finger", + "setup_left_sym": "Experiment-structure, (Def/Left-sym-cond, Onset), (Def/Initialize-recording, Onset)", + "setup_right_sym": "Experiment-structure, (Def/Right-sym-cond, Onset), (Def/Initialize-recording, Onset)", + "double_press": "Agent-action, Indeterminate-action, Sleep-architecture, (Press, Keyboard-key)" + } + }, + "face_type": { + "Description": "Factor indicating type of face image being displayed.", + "Levels": { + "famous_face": "A face that should be recognized by the participants.", + "unfamiliar_face": "A face that should not be recognized by the participants.", + "scrambled_face": "A scrambled face image generated by taking face 2D FFT." + }, + "HED": { + "famous_face": "Def/Famous-face-cond", + "unfamiliar_face": "Def/Unfamiliar-face-cond", + "scrambled_face": "Def/Scrambled-face-cond" + } + }, + "rep_status": { + "Description": "Factor indicating whether this image has been already seen.", + "Levels": { + "first_show": "Factor level indicating the first display of this face.", + "immediate_repeat": "Factor level indicating this face was the same as previous one.", + "delayed_repeat": "Factor level indicating face was seen 5 to 15 trials ago." + }, + "HED": { + "first_show": "Def/First-show-cond", + "immediate_repeat": "Def/Immediate-repeat-cond", + "delayed_repeat": "Def/Delayed-repeat-cond" + } + }, + "trial": { + "Description": "Indicates which trial this event belongs to." + }, + "rep_lag": { + "Description": "How face images before this one was the image was previously presented.", + "HED": "(Face, Item-interval/#)" + }, + "stim_file": { + "Description": "Path of the stimulus file in the stimuli directory.", + "HED": "(Image, Pathname/#), test:Image" + }, + "hed_def_sensory": { + "Description": "Metadata dictionary for gathering sensory definitions", + "HED": { + "cross_only_def": "(Definition/Cross-only, (Visual-presentation, (Foreground-view, (White, Cross), (Center-of, Computer-screen)), Sleep-architecture, (Background-view, Black), test:Cue, Description/A white fixation cross on a black background in the center of the screen.))", + "face_image_def": "(Definition/Face-image, (Visual-presentation, (Foreground-view, ((Image, Face, Hair), Color/Grayscale), ((White, Cross), (Center-of, Computer-screen))), (Background-view, Black), Description/A happy or neutral face in frontal or three-quarters frontal pose with long hair cropped presented as an achromatic foreground image on a black background with a white fixation cross superposed.))", + "circle_only_def": "(Definition/Circle-only, (Visual-presentation, (Foreground-view, ((White, Circle), (Center-of, Computer-screen))), (Background-view, Black), Description/A white circle on a black background in the center of the screen.))" + } + }, + "hed_def_actions": { + "Description": "Metadata dictionary for gathering participant action definitions", + "HED": { + "press_left_finger_def": "(Definition/Press-left-finger, ((Index-finger, (Left-side-of, Experiment-participant)), (Press, Keyboard-key), Description/The participant presses a key with the left index finger to indicate a face symmetry judgment.))", + "press_right_finger_def": "(Definition/Press-right-finger, ((Index-finger, (Right-side-of, Experiment-participant)), (Press, Keyboard-key), Description/The participant presses a key with the right index finger to indicate a face symmetry evaluation.))" + } + }, + "hed_def_conds": { + "Description": "Metadata dictionary for gathering experimental condition definitions", + "HED": { + "famous_face_cond_def": "(Definition/Famous-face-cond, (Condition-variable/Face-type, (Image, (Face, Famous)), Description/A face that should be recognized by the participants))", + "unfamiliar_face_cond_def": "(Definition/Unfamiliar-face-cond, (Condition-variable/Face-type, (Image, (Face, Unfamiliar)), Description/A face that should not be recognized by the participants.))", + "scrambled_face_cond_def": "(Definition/Scrambled-face-cond, (Condition-variable/Face-type, (Image, (Face, Disordered)), Description/A scrambled face image generated by taking face 2D FFT.))", + "first_show_cond_def": "(Definition/First-show-cond, ((Condition-variable/Repetition-type, (Item-count/1, Face), Item-interval/0), Description/Factor level indicating the first display of this face.))", + "immediate_repeat_cond_def": "(Definition/Immediate-repeat-cond, ((Condition-variable/Repetition-type, (Item-count/2, Face), Item-interval/1), Description/Factor level indicating this face was the same as previous one.))", + "delayed_repeat_cond_def": "(Definition/Delayed-repeat-cond, (Condition-variable/Repetition-type, (Item-count/2, Face), (Item-interval, (Greater-than-or-equal-to, Item-interval/5)), Description/Factor level indicating face was seen 5 to 15 trials ago.))", + "left_sym_cond_def": "(Definition/Left-sym-cond, (Condition-variable/Key-assignment, ((Index-finger, (Left-side-of, Experiment-participant)), (Behavioral-evidence, Symmetrical)), ((Index-finger, (Right-side-of, Experiment-participant)), (Behavioral-evidence, Asymmetrical)), Description/Left index finger key press indicates a face with above average symmetry.))", + "right_sym_cond_def": "(Definition/Right-sym-cond, (Condition-variable/Key-assignment, ((Index-finger, (Right-side-of, Experiment-participant)), (Behavioral-evidence, Symmetrical)), ((Index-finger, (Left-side-of, Experiment-participant)), (Behavioral-evidence, Asymmetrical)), Description/Right index finger key press indicates a face with above average symmetry.))" + } + }, + "hed_def_tasks": { + "Description": "Metadata dictionary for gathering task definitions", + "HED": { + "face_symmetry_evaluation_task_def": "(Definition/Face-symmetry-evaluation-task, (Task, Experiment-participant, (See, Face), (Discriminate, (Face, Symmetrical)), (Press, Keyboard-key), Description/Evaluate degree of image symmetry and respond with key press evaluation.))", + "blink_inhibition_task_def": "(Definition/Blink-inhibition-task, (Task, Experiment-participant, Inhibit-blinks, Description/Do not blink while the face image is displayed.))", + "fixation_task_def": "(Definition/Fixation-task, (Task, Experiment-participant, (Fixate, Cross), Description/Fixate on the cross at the screen center.))" + } + }, + "hed_def_setup": { + "Description": "Metadata dictionary for gathering setup definitions", + "HED": { + "setup_def": "(Definition/Initialize-recording, (Recording))" + } + + }, + "value": { + "Description": "Numerical event marker", + "Levels": { + "x0": "Disappearance of face image and display of the inter-stimulus circle simultaneously", + "x1": "Disappearance of face image and display of the inter-stimulus circle simultaneously", + "x2": "Initial setup with left finger key press indicating above average symmetry", + "x3": "Initial setup with right finger key press indicating above average symmetry", + "x5": "Initial presentation of famous face", + "x6": "Immediate repeated presentation of famous face", + "x7": "Delayed repeated presentation of famous face", + "x13": "Initial presentation of unfamiliar face", + "x14": "Immediate repeated presentation of unfamiliar face", + "x15": "Delayed repeated presentation of unfamiliar face", + "x17": "Initial presentation of scrambled face", + "x18": "Immediate repeated presentation of scrambled face", + "x19": "Delayed repeated presentation of scrambled face", + "x256": "Left finger key press", + "x4096": "Right finger key press", + "x4352": "Left and right finger key presses" + } + } +} diff --git a/tests/tools/bids/test_bids_dataset.py b/tests/tools/bids/test_bids_dataset.py index 62537349..a1ca622c 100644 --- a/tests/tools/bids/test_bids_dataset.py +++ b/tests/tools/bids/test_bids_dataset.py @@ -87,7 +87,7 @@ def test_validator_types(self): self.assertFalse(issues, "BidsDataset with participants and events validates") def test_with_schema_group(self): - x = load_schema_version(["8.2.0", "sc:score_1.0.0", "test:testlib_1.0.2"]) + x = load_schema_version(["score_2.0.0", "test:testlib_1.0.2"]) bids = BidsDataset(self.library_path, schema=x, tabular_types=["participants"]) self.assertIsInstance(bids, BidsDataset, "BidsDataset with libraries should create a valid object from valid dataset") @@ -121,7 +121,7 @@ def test_get_summary(self): "BidsDataset with libraries has a summary with a hed_schema_versions key") self.assertIsInstance(summary2["hed_schema_versions"], list, "BidsDataset with libraries hed_schema_versions in summary is a list") - self.assertEqual(len(summary2["hed_schema_versions"]), 3, + self.assertEqual(len(summary2["hed_schema_versions"]), 2, "BidsDataset with libraries summary hed_schema_versions list has 3 schema") self.assertTrue("dataset" in summary2) diff --git a/tests/validator/test_tag_validator_base.py b/tests/validator/test_tag_validator_base.py index b91407d8..243ac202 100644 --- a/tests/validator/test_tag_validator_base.py +++ b/tests/validator/test_tag_validator_base.py @@ -73,7 +73,6 @@ def setUpClass(cls): def validator_base(self, test_strings, expected_results, expected_issues, test_function, hed_schema, check_for_warnings=False): for test_key in test_strings: - print(test_key) hed_string_obj = HedString(test_strings[test_key], self.hed_schema) error_handler = ErrorHandler(check_for_warnings=check_for_warnings) error_handler.push_error_context(ErrorContext.HED_STRING, hed_string_obj)