Skip to content

Commit 95e68f7

Browse files
committed
fixes #106, tuple getitem
1 parent 5b8cde7 commit 95e68f7

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

gnss_lib_py/parsers/navdata.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1400,7 +1400,8 @@ def _parse_key_idx(self, key_idx):
14001400
self.in_rows(key_idx)
14011401
rows = [self.map[key_idx]]
14021402
cols = slice(None, None)
1403-
elif isinstance(key_idx, list) and isinstance(key_idx[0], str):
1403+
elif isinstance(key_idx, (list,tuple)) \
1404+
and all(isinstance(idx, str) for idx in key_idx):
14041405
rows = [self.map[k] for k in key_idx]
14051406
cols = slice(None, None)
14061407
elif isinstance(key_idx, slice):
@@ -1421,7 +1422,7 @@ def _parse_key_idx(self, key_idx):
14211422
elif isinstance(key_idx[0], int):
14221423
rows = [key_idx[0]]
14231424
else:
1424-
if not isinstance(key_idx[0],list):
1425+
if not isinstance(key_idx[0],(tuple,list)):
14251426
row_key = [key_idx[0]]
14261427
else:
14271428
row_key = key_idx[0]

tests/parsers/test_navdata.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -903,12 +903,19 @@ def fixture_flt_int_slc(df_rows):
903903
(('integers', slice(None, None)),
904904
lazy_fixture('integers')),
905905
(['integers', 'floats'], lazy_fixture('int_flt')),
906+
(('integers', 'floats'), lazy_fixture('int_flt')),
907+
((['integers', 'floats'], 0), np.array([10., 0.5])),
908+
((('integers', 'floats'), 0), np.array([10., 0.5])),
906909
(('integers', 0), 10.),
907910
(('strings', 0), np.asarray([['gps']], dtype=object)),
908911
(['names', 'strings'], lazy_fixture('nm_str')),
912+
(('names', 'strings'), lazy_fixture('nm_str')),
909913
(['strings', 'names'], lazy_fixture('str_nm')),
914+
(('strings', 'names'), lazy_fixture('str_nm')),
910915
((['integers', 'floats'], slice(3, None)),
911916
lazy_fixture('flt_int_slc')),
917+
((('integers', 'floats'), slice(3, None)),
918+
lazy_fixture('flt_int_slc')),
912919
(1, lazy_fixture('integers'))
913920
])
914921
def test_get_item(data, index, exp_value):

0 commit comments

Comments
 (0)