Skip to content

Commit 301d890

Browse files
committed
try catch for reading 32 bit values
1 parent 60e6e8c commit 301d890

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

datajoint/blob.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,12 @@ class MatStruct(np.recarray):
6464

6565

6666
class Blob:
67-
def __init__(self, squeeze=False):
67+
def __init__(self, squeeze=False, is_32_bit = False):
6868
self._squeeze = squeeze
6969
self._blob = None
7070
self._pos = 0
7171
self.protocol = None
72-
self.is_32_bit = False
72+
self.is_32_bit = is_32_bit
7373

7474
def set_dj0(self):
7575
if not config.get('enable_python_native_blobs'):
@@ -104,11 +104,7 @@ def unpack(self, blob):
104104
self._pos = 0
105105
blob_format = self.read_zero_terminated_string()
106106
if blob_format in ('mYm', 'dj0'):
107-
try:
108-
return self.read_blob(n_bytes=len(self._blob) - self._pos)
109-
except:
110-
self.is_32_bit = True
111-
return self.read_blob(n_bytes=len(self._blob) - self._pos)
107+
return self.read_blob(n_bytes=len(self._blob) - self._pos)
112108

113109
def read_blob(self, n_bytes=None):
114110
start = self._pos
@@ -472,4 +468,7 @@ def unpack(blob, squeeze=False):
472468
assert isinstance(blob, bytes) and blob.startswith((b'ZL123\0', b'mYm\0', b'dj0\0'))
473469
return blob
474470
if blob is not None:
475-
return Blob(squeeze=squeeze).unpack(blob)
471+
try:
472+
return Blob(squeeze=squeeze).unpack(blob)
473+
except:
474+
return Blob(squeeze=squeeze, is_32_bit=True).unpack(blob)

0 commit comments

Comments
 (0)