Releases: databento/dbn
Releases · databento/dbn
0.53.0
Release notes
Enhancements
- Made
ts_outa permanent field on all Python record types, replacing the
dynamic__dict__attribute.ts_outreturns anint(UNDEF_TIMESTAMPwhen
not set) - Removed
__dict__from all Python record classes, eliminating a separate
per-instance allocation FlagSetsetter methods are nowconst, making it easier to define constants, e.g.
const FLAGS: FlagSet = FlagSet::empty().set_snapshot().set_last()
Breaking changes
record.ts_outnow returnsUNDEF_TIMESTAMPinstead of raisingAttributeError
whents_outis not set. Code usinghasattr(record, "ts_out")should check
record.ts_out != UNDEF_TIMESTAMPinsteadbytes(record)now includes the 8-bytets_outsuffix when the record was
created withts_out. Code that separately appendsts_outbytes after
bytes(record)should be updated to avoid double-writing- Arbitrary attribute assignment on record instances is no longer supported
Bug fixes
- Fixed memory leak around
ts_outassignment
Release notes
Enhancements
- Made
ts_outa permanent field on all Python record types, replacing the
dynamic__dict__attribute.ts_outreturns anint(UNDEF_TIMESTAMPwhen
not set) - Removed
__dict__from all Python record classes, eliminating a separate
per-instance allocation FlagSetsetter methods are nowconst, making it easier to define constants, e.g.
const FLAGS: FlagSet = FlagSet::empty().set_snapshot().set_last()
Breaking changes
record.ts_outnow returnsUNDEF_TIMESTAMPinstead of raisingAttributeError
whents_outis not set. Code usinghasattr(record, "ts_out")should check
record.ts_out != UNDEF_TIMESTAMPinsteadbytes(record)now includes the 8-bytets_outsuffix when the record was
created withts_out. Code that separately appendsts_outbytes after
bytes(record)should be updated to avoid double-writing- Arbitrary attribute assignment on record instances is no longer supported
Bug fixes
- Fixed memory leak around
ts_outassignment
0.52.1
Release notes
Enhancements
- Added
__index__to all int-representable and char-backed Python enums, enabling
use withint(),hex(), and as sequence indices
Bug fixes
- Fixed memory leak in Python bindings where every record object leaked ~64 bytes
due to apyo30.28 regression in#[pyclass(dict)]deallocation. Downgraded
pyo3to 0.27.2 - Removed unnecessary
dictfromBidAskPairandConsolidatedBidAskPairPython
classes - Fixed Python type stubs to reflect that
record_size()is a method, not a property - Fixed Python type stubs for record fields to indicate which fields are writable
(e.g.publisher_id,instrument_id,price,size) and added@setterstubs
for enum fields (e.g.action,side)
0.52.0
Release notes
Enhancements
- Added
SYMBOL_CSTR_LENconstant and versioned variants (SYMBOL_CSTR_LEN_V1,
SYMBOL_CSTR_LEN_V2,SYMBOL_CSTR_LEN_V3) to Python, including in each versioned
module (v1,v2,v3) asSYMBOL_CSTR_LEN - Added
v1,v2, andv3submodule imports todatabento_dbn.__init__so they are
accessible as attributes (e.g.databento_dbn.v1) - Upgraded
pyo3version to 0.28.2
0.51.0
Release notes
Enhancements
- Added logic to set
codewhen upgrading version 1ErrorMsgto newer versions - Upgraded
async-compressiondependency version to 0.4.41 - Upgraded
timeversion to 0.3.47
Bug fixes
- Fixed miri issue with potential for unaligned data when decoding DBN through
DbnFsm
0.50.0
Release notes
Enhancements
- Added
SkippedRecordsAfterSlowReadingto theErrorCodeenum for gateway errors
originating from slow client catch-up
0.49.0
Release notes
Enhancements
- Added
encode_recordstoEncodeRecordandAsyncEncodeRecordtraits for more
efficient batch encoding - Added
encode_record_refstoEncodeRecordRefandAsyncEncodeRecordReftraits with
more efficient vectored I/O implementation for DBN - Added support for decompressing Zstd in the Python
DBNDecoderand new optional
compressionparameter
Breaking changes
- Moved
encode_recordsmethod from theEncodeDbntrait toEncodeRecord
0.48.0
Release notes
Enhancements
- Added initial support for splitting DBN files:
- Added new
SplitEncoderthat supports synchronous and asynchronous encoding - Added new
Splittertrait that allows for extensible splitting of files while
reusing theSplitEncoderboilerplate. - Added
SchemaSplitter,SymbolSplitter, andTimeSplitterwhich allow for
different methods of splitting DBN files - Added split support to the CLI. For example:
dbn mbo.dbn --split-by week --output-pattern '{date}.json'--json
- Added new
- Added new publisher for Blue Ocean ATS (
OCEA_MEMOIR_OCEA)
Bug fixes
- Fixed issue where
AsyncDynReaderinstances created fromwith_buffer()would only
decode the first frame of multi-frame Zstandard files
0.47.0
Release notes
Enhancements
- Changed the
__repr__implementation of all records in Python to be more Pythonic - Added new off-market publisher for Cboe Futures Exchange (
XCBF_PITCH_XOFF) - Added new
StatTypevariants to be used byXCBF.PITCHdataset:UpperPriceLimitLowerPriceLimitBlockVolumeVenueSpecificVolume1
- Upgraded
pyo3version to 0.27.2 - Upgraded
timeversion to 0.3.45
0.46.0
Release notes
Breaking changes
- Added
DBNRecordunion type to Python which includes all record types - Removed
Recordclass from Python type stubs to match code: the record classes don't
share a base class. UseDBNRecordinstead. - Removed
_DBNRecordunion type alias which only existed in typestub and wasn't
importable. UseDBNRecord | Metadatainstead
0.45.0
Release notes
Enhancements
- Added new venue, dataset, and publisher for Cboe Futures Exchange (
XCBF.PITCH) - Added support for Python 3.14 to
databento_dbn