Skip to content

Commit 73ab1c8

Browse files
committed
choose float precision
1 parent 6d5f7f4 commit 73ab1c8

4 files changed

Lines changed: 20 additions & 16 deletions

File tree

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@ dev = [
1919
"pytest>=8.4.1",
2020
"pytest-cov>=6.2.1",
2121
"ruff>=0.12.8",
22+
"typing-extensions>=4.15.0",
2223
]

src/msgpack_stream/_msgpack.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import os
12
from ._number import (
23
u8_b_t,
34
u16_b_t,
@@ -20,8 +21,10 @@
2021
s16_b_pack = s16_b_t.pack
2122
s32_b_pack = s32_b_t.pack
2223
s64_b_pack = s64_b_t.pack
23-
f32_b_pack = f32_b_t.pack
24-
f64_b_pack = f64_b_t.pack
24+
f_b_pack = f64_b_t.pack
25+
26+
if os.environ.get("MSGPACK_PACK_FLOAT32"):
27+
f_b_pack = f32_b_t.pack
2528

2629
u8_b_unpack = u8_b_t.unpack
2730
u16_b_unpack = u16_b_t.unpack
@@ -77,7 +80,7 @@ def pack_stream(stream, obj):
7780
raise ValueError("uint too large")
7881
elif _type is float:
7982
stream.write(b"\xcb")
80-
f64_b_pack(stream, obj)
83+
f_b_pack(stream, obj)
8184
elif _type is dict:
8285
ml = len(obj)
8386
if ml <= 0x0F:
@@ -140,7 +143,7 @@ def pack_stream(stream, obj):
140143
raise ValueError("bin too large", obj)
141144
stream.write(obj)
142145
else:
143-
raise TypeError("type not supported:", obj, type(obj))
146+
raise TypeError("type not supported:", obj, _type)
144147

145148

146149
def unpack_stream(stream):

src/msgpack_stream/_number.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,30 +17,30 @@ def unpack(self, stream):
1717
return obj
1818

1919

20-
u8_t = Number("<B")
21-
u16_t = Number("<H")
22-
u32_t = Number("<I")
23-
u64_t = Number("<Q")
20+
# u8_t = Number("<B")
21+
# u16_t = Number("<H")
22+
# u32_t = Number("<I")
23+
# u64_t = Number("<Q")
2424

2525
u8_b_t = Number(">B")
2626
u16_b_t = Number(">H")
2727
u32_b_t = Number(">I")
2828
u64_b_t = Number(">Q")
2929

30-
s8_t = Number("<b")
31-
s16_t = Number("<h")
32-
s32_t = Number("<i")
33-
s64_t = Number("<q")
30+
# s8_t = Number("<b")
31+
# s16_t = Number("<h")
32+
# s32_t = Number("<i")
33+
# s64_t = Number("<q")
3434

3535
s8_b_t = Number(">b")
3636
s16_b_t = Number(">h")
3737
s32_b_t = Number(">i")
3838
s64_b_t = Number(">q")
3939

40-
f16_t = Number("<e")
41-
f32_t = Number("<f")
42-
f64_t = Number("<d")
40+
# f16_t = Number("<e")
41+
# f32_t = Number("<f")
42+
# f64_t = Number("<d")
4343

44-
f16_b_t = Number(">e")
44+
# f16_b_t = Number(">e")
4545
f32_b_t = Number(">f")
4646
f64_b_t = Number(">d")

src/msgpack_stream/py.typed

Whitespace-only changes.

0 commit comments

Comments
 (0)