Skip to content

Commit b2eaf2f

Browse files
committed
use module flag instead
1 parent 61ce712 commit b2eaf2f

File tree

1 file changed

+3
-10
lines changed

1 file changed

+3
-10
lines changed

datajoint/blob.py

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
}
4444

4545
bypass_serialization = False # runtime setting to bypass blob (en|de)code
46+
use_32bit_dims = False # runtime setting to read data as 32-bit
4647

4748

4849
def len_u64(obj):
@@ -68,9 +69,7 @@ def __init__(self, squeeze=False):
6869
self._squeeze = squeeze
6970
self._blob = None
7071
self._pos = 0
71-
self._pos_prev = 0
7272
self.protocol = None
73-
self.is_32_bit = False
7473

7574
def set_dj0(self):
7675
if not config.get('enable_python_native_blobs'):
@@ -435,14 +434,8 @@ def read_zero_terminated_string(self):
435434

436435
def read_value(self, dtype=None, count=1):
437436
if dtype is None:
438-
dtype = 'uint32' if self.is_32_bit else 'uint64'
439-
try:
440-
data = np.frombuffer(self._blob, dtype=dtype, count=count, offset=self._pos)
441-
except ValueError:
442-
self.is_32_bit = True
443-
self._pos = self._pos_prev
444-
data = np.frombuffer(self._blob, dtype='uint32', count=self.read_value(), offset=self._pos)
445-
self._pos_prev = self._pos
437+
dtype = 'uint32' if use_32bit_dims else 'uint64'
438+
data = np.frombuffer(self._blob, dtype=dtype, count=count, offset=self._pos)
446439
self._pos += data.dtype.itemsize * data.size
447440
return data[0] if count == 1 else data
448441

0 commit comments

Comments
 (0)