Skip to content

Commit ddfaf8f

Browse files
committed
Fix Arrow schema registration for BinanceBar
1 parent 620cd1e commit ddfaf8f

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

RELEASES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ Released on TBD (UTC).
1717
### Fixes
1818
- Fixed `generate_order_modify_rejected` typo in Binance execution client (#2682), thanks for reporting @etiennepar
1919
- Fixed order status report generation for Polymarket where `venue_order_id` was unbounded
20+
- Fixed Arrow schema registration for `BinanceBar`
2021

2122
### Documentation Updates
2223
None

nautilus_trader/adapters/binance/__init__.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
``nautilus_trader.adapters.binance``.
2525
2626
"""
27+
from typing import Final
28+
2729
import pyarrow as pa
2830

2931
from nautilus_trader.adapters.binance.common.constants import BINANCE
@@ -43,6 +45,7 @@
4345
from nautilus_trader.adapters.binance.spot.providers import BinanceSpotInstrumentProvider
4446
from nautilus_trader.serialization import register_serializable_type
4547
from nautilus_trader.serialization.arrow.schema import NAUTILUS_ARROW_SCHEMA
48+
from nautilus_trader.serialization.arrow.serializer import register_arrow
4649

4750

4851
register_serializable_type(
@@ -57,7 +60,7 @@
5760
BinanceTicker.from_dict,
5861
)
5962

60-
NAUTILUS_ARROW_SCHEMA[BinanceBar] = pa.schema(
63+
BINANCE_BAR_ARROW_SCHEMA: Final[pa.schema] = pa.schema(
6164
{
6265
"bar_type": pa.dictionary(pa.int16(), pa.string()),
6366
"instrument_id": pa.dictionary(pa.int64(), pa.string()),
@@ -75,6 +78,10 @@
7578
},
7679
)
7780

81+
NAUTILUS_ARROW_SCHEMA[BinanceBar] = BINANCE_BAR_ARROW_SCHEMA
82+
83+
register_arrow(BinanceBar, BINANCE_BAR_ARROW_SCHEMA)
84+
7885
__all__ = [
7986
"BINANCE",
8087
"BINANCE_CLIENT_ID",

nautilus_trader/serialization/arrow/serializer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ def serialize(
214214
return ArrowSerializer.rust_defined_to_record_batch([data], data_cls=data_cls)
215215
raise TypeError(
216216
f"Cannot serialize object `{data_cls}`. Register a "
217-
f"serialization method via `nautilus_trader.persistence.catalog.parquet.serializers.register_parquet()`",
217+
f"serialization method via `nautilus_trader.serialization.arrow.serializer.register_arrow()`",
218218
)
219219

220220
batch = delegate(data)
@@ -281,7 +281,7 @@ def deserialize(data_cls: type, batch: pa.RecordBatch | pa.Table) -> Data:
281281
return ArrowSerializer._deserialize_rust(data_cls=data_cls, table=batch)
282282
raise TypeError(
283283
f"Cannot deserialize object `{data_cls}`. Register a "
284-
f"deserialization method via `arrow.serializer.register_parquet()`",
284+
f"deserialization method via `nautilus_trader.serialization.arrow.serializer.register_arrow()`",
285285
)
286286

287287
return delegate(batch)

0 commit comments

Comments
 (0)