-
Notifications
You must be signed in to change notification settings - Fork 23
Closed
Labels
bugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or requestum/ppRelating to UM or PP format filesRelating to UM or PP format files
Milestone
Description
At versions 3.7.0 and 3.10.0 the following error appears when reading a PP file with extra data:
>>> tsta=cf.read('ts_t15.pp')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/share/apps/NCAS/anaconda3/lib/python3.7/site-packages/cfdm/decorators.py", line 186, in verbose_override_wrapper
return method_with_verbose_kwarg(self, *args, **kwargs)
File "/share/apps/NCAS/anaconda3/lib/python3.7/site-packages/cf/read_write/read.py", line 656, in read
warn_valid=warn_valid,
File "/share/apps/NCAS/anaconda3/lib/python3.7/site-packages/cfdm/decorators.py", line 186, in verbose_override_wrapper
return method_with_verbose_kwarg(self, *args, **kwargs)
File "/share/apps/NCAS/anaconda3/lib/python3.7/site-packages/cf/read_write/read.py", line 910, in _read_a_file
chunk=chunk) # , mask=mask, warn_valid=warn_valid)
File "/share/apps/NCAS/anaconda3/lib/python3.7/site-packages/cfdm/decorators.py", line 186, in verbose_override_wrapper
return method_with_verbose_kwarg(self, *args, **kwargs)
File "/share/apps/NCAS/anaconda3/lib/python3.7/site-packages/cf/read_write/um/umread.py", line 2984, in read
for var in f.vars]
File "/share/apps/NCAS/anaconda3/lib/python3.7/site-packages/cf/read_write/um/umread.py", line 2984, in <listcomp>
for var in f.vars]
File "/share/apps/NCAS/anaconda3/lib/python3.7/site-packages/cf/read_write/um/umread.py", line 440, in __init__
groups = var.group_records_by_extra_data()
File "/share/apps/NCAS/anaconda3/lib/python3.7/site-packages/cf/umread_lib/umfile.py", line 162, in group_records_by_extra_data
if not compare(recs[0], recs[-1]):
File "/share/apps/NCAS/anaconda3/lib/python3.7/site-packages/cf/umread_lib/umfile.py", line 137, in _compare_recs_by_extra_data
return self._compare(a.get_extra_data(), b.get_extra_data())
File "/share/apps/NCAS/anaconda3/lib/python3.7/site-packages/cf/umread_lib/umfile.py", line 258, in get_extra_data
self._extra_data = self.read_extra_data()
File "/share/apps/NCAS/anaconda3/lib/python3.7/site-packages/cf/umread_lib/umfile.py", line 250, in read_extra_data
return edu.get_data()
File "/share/apps/NCAS/anaconda3/lib/python3.7/site-packages/cf/umread_lib/extraData.py", line 136, in get_data
rawvals = self.next_words(ia)
File "/share/apps/NCAS/anaconda3/lib/python3.7/site-packages/cf/umread_lib/extraData.py", line 108, in next_words
rv = self.rdata[:pos]
TypeError: slice indices must be integers or None or have an __index__ methodThis is a result of some old pre-v3.0.0 Python2 code still existing in cf/umread_lib/extraData.py, relating to the handling of bytes and unicode strings.
With this fixed, it became apparent that the mapping of PP extra data to CF constructs for LCODE axis code 13 was deficient, and this has should also be fixed. This deficiency has not been seen in the post-v3.0.0 era, so no one will have seen it!
PR to follow.
Many thanks to @JonathanGregory for finding and reporting this bug.
sadielbartholomew
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or requestum/ppRelating to UM or PP format filesRelating to UM or PP format files