Skip to content

Commit aff52bd

Browse files
committed
Bump to v0.1.2 with leb128
1 parent b5d0b15 commit aff52bd

2 files changed

Lines changed: 13 additions & 12 deletions

File tree

pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "numcodecs-bitmap-index"
7-
version = "0.1.1"
7+
version = "0.1.2"
88
description = "Bitmap index codec for the `numcodecs` buffer compression API"
99
readme = "README.md"
1010
license = "MPL-2.0"
1111
requires-python = ">=3.10"
1212
dependencies = [
13+
"leb128~=1.0.8",
1314
"numcodecs>=0.13.0,<0.17",
1415
"numpy~=2.0",
15-
"varint~=1.0.2",
1616
]
1717

1818
[dependency-groups]
@@ -35,5 +35,5 @@ addopts = ["--import-mode=importlib"]
3535
xfail_strict = true
3636

3737
[[tool.mypy.overrides]]
38-
module = ["numcodecs.*", "varint.*"]
38+
module = ["leb128.*", "numcodecs.*"]
3939
follow_untyped_imports = true

src/numcodecs_bitmap_index/__init__.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
from functools import reduce
88
from io import BytesIO
99

10+
import leb128
1011
import numcodecs.compat
1112
import numcodecs.registry
1213
import numpy as np
13-
import varint
1414
from numcodecs.abc import Codec
1515

1616
from .typing import S, T, U
@@ -99,16 +99,16 @@ def encode(
9999
num_bitmaps = min(num_bitmaps, self._max_bitmaps)
100100

101101
# message: dtype shape num-bitmaps { value is-value } [padding] rest
102-
message = []
102+
message: list[bytes | bytearray] = []
103103

104-
message.append(varint.encode(len(dtype.str)))
104+
message.append(leb128.u.encode(len(dtype.str)))
105105
message.append(dtype.str.encode("ascii"))
106106

107-
message.append(varint.encode(len(shape)))
107+
message.append(leb128.u.encode(len(shape)))
108108
for s in shape:
109-
message.append(varint.encode(s))
109+
message.append(leb128.u.encode(s))
110110

111-
message.append(varint.encode(num_bitmaps))
111+
message.append(leb128.u.encode(num_bitmaps))
112112

113113
for u in unique[:num_bitmaps]:
114114
# ensure that the values are encoded in little endian binary
@@ -162,14 +162,15 @@ def decode(
162162
b = numcodecs.compat.ensure_bytes(buf)
163163
b_io = BytesIO(b)
164164

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"))
166166

167167
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])
169170
)
170171
size = reduce(lambda a, b: a * b, shape, 1)
171172

172-
num_bitmaps = varint.decode_stream(b_io)
173+
num_bitmaps, _ = leb128.u.decode_reader(b_io)
173174

174175
# track which indices remain in successive bitmaps
175176
indices = np.arange(size)

0 commit comments

Comments
 (0)