Skip to content

Commit

Permalink
Updated the strlist renamed to_strlist
Browse files Browse the repository at this point in the history
  • Loading branch information
VisLab committed Apr 25, 2024
1 parent 94671fe commit 100fa96
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 20 deletions.
30 changes: 15 additions & 15 deletions hed/tools/analysis/annotation_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,26 +173,12 @@ def merge_hed_dict(sidecar_dict, hed_dict):
sidecar_dict[key]['Levels'] = value_dict['Levels']


def str_list(obj_list):
""" Return a list with the objects converted to string except for None elements.
Parameters:
obj_list (list): A list of objects that are None or have a str method.
Returns:
list: A list with the objects converted to strings -- except None values are preserved.
"""

# Using list comprehension to convert non-None items to strings
return [str(item) if item is not None else None for item in obj_list]


def str_to_tabular(tsv_str, sidecar=None):
""" Return a TabularInput a tsv string.
Parameters:
tsv_str (str): A string representing a tabular input.
sidecar (Sidecar): An optional Sidecar object.
sidecar (Sidecar, str, File or File-like): An optional Sidecar object.
Returns:
TabularInput: Represents a tabular input object.
Expand Down Expand Up @@ -222,6 +208,20 @@ def strs_to_sidecar(sidecar_strings):
return None


def to_strlist(obj_list):
""" Return a list with the objects converted to string except for None elements.
Parameters:
obj_list (list): A list of objects that are None or have a str method.
Returns:
list: A list with the objects converted to strings -- except None values are preserved.
"""

# Using list comprehension to convert non-None items to strings
return [str(item) if item is not None else None for item in obj_list]


def _flatten_cat_col(col_key, col_dict):
""" Flatten a sidecar entry corresponding to a categorical column.
Expand Down
12 changes: 7 additions & 5 deletions tests/tools/analysis/test_annotation_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@
from hed.errors import HedFileError
from hed.models.sidecar import Sidecar
from hed.models.hed_string import HedString
from hed.tools.analysis.annotation_util import check_df_columns, df_to_hed, extract_tags,\
hed_to_df, merge_hed_dict, strs_to_sidecar, str_to_tabular, str_list
from hed.models.tabular_input import TabularInput
from hed.tools.analysis.annotation_util import check_df_columns, df_to_hed, extract_tags, \
hed_to_df, merge_hed_dict, strs_to_sidecar, str_to_tabular, to_strlist
from hed.tools.analysis.annotation_util import _flatten_cat_col, _flatten_val_col, _get_value_entry, _tag_list_to_str, \
_update_cat_dict, generate_sidecar_entry
from hed.tools.analysis.tabular_summary import TabularSummary
Expand Down Expand Up @@ -307,18 +308,19 @@ def test_strs_to_tabular(self):
with open(self.events_path, 'r') as file:
events_contents = file.read()
tab_in = str_to_tabular(events_contents, sidecar=self.json_path)
self.assertIsInstance(tab_in, TabularInput)

def test_str_list(self):
def test_convert_to_strlist(self):
# schema
# list1 = [HedString('Red, Sensory-event', schema)]
list1 = ['abc', '', None, 3.24]
str_list1 = str_list(list1)
str_list1 = to_strlist(list1)
self.assertEqual(len(str_list1), len(list1))
self.assertIsNone(str_list1[2], None)
self.assertEqual(str_list1[3], '3.24')
self.assertFalse(str_list1[1])
list2 = [HedString('Red, Sensory-event', self.hed_schema), None, HedString('', self.hed_schema)]
str_list2 = str_list(list2)
str_list2 = to_strlist(list2)
self.assertEqual(len(str_list2), len(list2))
self.assertIsNone(str_list2[1], None)
self.assertEqual(str_list2[0], 'Red,Sensory-event')
Expand Down

0 comments on commit 100fa96

Please sign in to comment.