We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 5b8cde7 commit 95e68f7Copy full SHA for 95e68f7
2 files changed
gnss_lib_py/parsers/navdata.py
@@ -1400,7 +1400,8 @@ def _parse_key_idx(self, key_idx):
1400
self.in_rows(key_idx)
1401
rows = [self.map[key_idx]]
1402
cols = slice(None, None)
1403
- elif isinstance(key_idx, list) and isinstance(key_idx[0], str):
+ elif isinstance(key_idx, (list,tuple)) \
1404
+ and all(isinstance(idx, str) for idx in key_idx):
1405
rows = [self.map[k] for k in key_idx]
1406
1407
elif isinstance(key_idx, slice):
@@ -1421,7 +1422,7 @@ def _parse_key_idx(self, key_idx):
1421
1422
elif isinstance(key_idx[0], int):
1423
rows = [key_idx[0]]
1424
else:
- if not isinstance(key_idx[0],list):
1425
+ if not isinstance(key_idx[0],(tuple,list)):
1426
row_key = [key_idx[0]]
1427
1428
row_key = key_idx[0]
tests/parsers/test_navdata.py
@@ -903,12 +903,19 @@ def fixture_flt_int_slc(df_rows):
903
(('integers', slice(None, None)),
904
lazy_fixture('integers')),
905
(['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])),
909
(('integers', 0), 10.),
910
(('strings', 0), np.asarray([['gps']], dtype=object)),
911
(['names', 'strings'], lazy_fixture('nm_str')),
912
+ (('names', 'strings'), lazy_fixture('nm_str')),
913
(['strings', 'names'], lazy_fixture('str_nm')),
914
+ (('strings', 'names'), lazy_fixture('str_nm')),
915
((['integers', 'floats'], slice(3, None)),
916
lazy_fixture('flt_int_slc')),
917
+ ((('integers', 'floats'), slice(3, None)),
918
+ lazy_fixture('flt_int_slc')),
919
(1, lazy_fixture('integers'))
920
])
921
def test_get_item(data, index, exp_value):
0 commit comments