|
7 | 7 | from functools import reduce |
8 | 8 | from io import BytesIO |
9 | 9 |
|
| 10 | +import leb128 |
10 | 11 | import numcodecs.compat |
11 | 12 | import numcodecs.registry |
12 | 13 | import numpy as np |
13 | | -import varint |
14 | 14 | from numcodecs.abc import Codec |
15 | 15 |
|
16 | 16 | from .typing import S, T, U |
@@ -99,16 +99,16 @@ def encode( |
99 | 99 | num_bitmaps = min(num_bitmaps, self._max_bitmaps) |
100 | 100 |
|
101 | 101 | # message: dtype shape num-bitmaps { value is-value } [padding] rest |
102 | | - message = [] |
| 102 | + message: list[bytes | bytearray] = [] |
103 | 103 |
|
104 | | - message.append(varint.encode(len(dtype.str))) |
| 104 | + message.append(leb128.u.encode(len(dtype.str))) |
105 | 105 | message.append(dtype.str.encode("ascii")) |
106 | 106 |
|
107 | | - message.append(varint.encode(len(shape))) |
| 107 | + message.append(leb128.u.encode(len(shape))) |
108 | 108 | for s in shape: |
109 | | - message.append(varint.encode(s)) |
| 109 | + message.append(leb128.u.encode(s)) |
110 | 110 |
|
111 | | - message.append(varint.encode(num_bitmaps)) |
| 111 | + message.append(leb128.u.encode(num_bitmaps)) |
112 | 112 |
|
113 | 113 | for u in unique[:num_bitmaps]: |
114 | 114 | # ensure that the values are encoded in little endian binary |
@@ -162,14 +162,15 @@ def decode( |
162 | 162 | b = numcodecs.compat.ensure_bytes(buf) |
163 | 163 | b_io = BytesIO(b) |
164 | 164 |
|
165 | | - dtype = np.dtype(b_io.read(varint.decode_stream(b_io)).decode("ascii")) |
| 165 | + dtype = np.dtype(b_io.read(leb128.u.decode_reader(b_io)[0]).decode("ascii")) |
166 | 166 |
|
167 | 167 | shape = tuple( |
168 | | - varint.decode_stream(b_io) for _ in range(varint.decode_stream(b_io)) |
| 168 | + leb128.u.decode_reader(b_io)[0] |
| 169 | + for _ in range(leb128.u.decode_reader(b_io)[0]) |
169 | 170 | ) |
170 | 171 | size = reduce(lambda a, b: a * b, shape, 1) |
171 | 172 |
|
172 | | - num_bitmaps = varint.decode_stream(b_io) |
| 173 | + num_bitmaps, _ = leb128.u.decode_reader(b_io) |
173 | 174 |
|
174 | 175 | # track which indices remain in successive bitmaps |
175 | 176 | indices = np.arange(size) |
|
0 commit comments