You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All reproduced first; the first two make lazy=True unusable for whole
classes of ordinary arrays.
The frame header was unpacked with raw=False. Its flags field is a msgpack
*string* holding four raw bytes, and clevel rides in the high nibble of one
of them, so from clevel=8 up it is not valid UTF-8 and every lazy open died
with UnicodeDecodeError. Unpacked raw now.
_special_chunk rebuilt run-length chunks with compress2 and no blocksize,
which makes blosc2 take the whole chunk. Whenever blocks != chunks -- the
default for a large chunk -- the cache rejected the chunk with "Error while
getting the buffer", and with cache_storage= the bad chunk was written to
disk. It now passes the container's blocksize.
Structured dtypes are stored as their repr, so np.dtype() on the metalayer
string raised TypeError; added the ast.literal_eval fallback blosc2_ext
already uses. _reopen_cache dereferenced cached.shape before it could
report a kind mismatch, raising AttributeError instead of the intended
ValueError. normalize_urlpath dropped the drive letter for file://C:/x,
where urlparse puts it in netloc. And open()'s Notes listed .b2z among the
formats a plain URL read handles: it is a zip archive, not a cframe, so it
needs cache_storage like the directory formats.
Tests now parametrise over clevel, over blocks != chunks and over a
structured dtype, since every one of these hid behind default parameters.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
0 commit comments