Skip to content

Releases: databento/dbn

0.53.0

07 Apr 17:44
3ba305b

Choose a tag to compare

Release notes

Enhancements

  • Made ts_out a permanent field on all Python record types, replacing the
    dynamic __dict__ attribute. ts_out returns an int (UNDEF_TIMESTAMP when
    not set)
  • Removed __dict__ from all Python record classes, eliminating a separate
    per-instance allocation
  • FlagSet setter methods are now const, making it easier to define constants, e.g.
    const FLAGS: FlagSet = FlagSet::empty().set_snapshot().set_last()

Breaking changes

  • record.ts_out now returns UNDEF_TIMESTAMP instead of raising AttributeError
    when ts_out is not set. Code using hasattr(record, "ts_out") should check
    record.ts_out != UNDEF_TIMESTAMP instead
  • bytes(record) now includes the 8-byte ts_out suffix when the record was
    created with ts_out. Code that separately appends ts_out bytes 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_out assignment

Release notes

Enhancements

  • Made ts_out a permanent field on all Python record types, replacing the
    dynamic __dict__ attribute. ts_out returns an int (UNDEF_TIMESTAMP when
    not set)
  • Removed __dict__ from all Python record classes, eliminating a separate
    per-instance allocation
  • FlagSet setter methods are now const, making it easier to define constants, e.g.
    const FLAGS: FlagSet = FlagSet::empty().set_snapshot().set_last()

Breaking changes

  • record.ts_out now returns UNDEF_TIMESTAMP instead of raising AttributeError
    when ts_out is not set. Code using hasattr(record, "ts_out") should check
    record.ts_out != UNDEF_TIMESTAMP instead
  • bytes(record) now includes the 8-byte ts_out suffix when the record was
    created with ts_out. Code that separately appends ts_out bytes 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_out assignment

0.52.1

31 Mar 20:23
3c9465c

Choose a tag to compare

Release notes

Enhancements

  • Added __index__ to all int-representable and char-backed Python enums, enabling
    use with int(), hex(), and as sequence indices

Bug fixes

  • Fixed memory leak in Python bindings where every record object leaked ~64 bytes
    due to a pyo3 0.28 regression in #[pyclass(dict)] deallocation. Downgraded
    pyo3 to 0.27.2
  • Removed unnecessary dict from BidAskPair and ConsolidatedBidAskPair Python
    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 @setter stubs
    for enum fields (e.g. action, side)

0.52.0

17 Mar 19:52
2e99e61

Choose a tag to compare

Release notes

Enhancements

  • Added SYMBOL_CSTR_LEN constant 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) as SYMBOL_CSTR_LEN
  • Added v1, v2, and v3 submodule imports to databento_dbn.__init__ so they are
    accessible as attributes (e.g. databento_dbn.v1)
  • Upgraded pyo3 version to 0.28.2

0.51.0

03 Mar 23:42
e82fdff

Choose a tag to compare

Release notes

Enhancements

  • Added logic to set code when upgrading version 1 ErrorMsg to newer versions
  • Upgraded async-compression dependency version to 0.4.41
  • Upgraded time version to 0.3.47

Bug fixes

  • Fixed miri issue with potential for unaligned data when decoding DBN through DbnFsm

0.50.0

24 Feb 22:17
e454317

Choose a tag to compare

Release notes

Enhancements

  • Added SkippedRecordsAfterSlowReading to the ErrorCode enum for gateway errors
    originating from slow client catch-up

0.49.0

17 Feb 20:54
ceae0dc

Choose a tag to compare

Release notes

Enhancements

  • Added encode_records to EncodeRecord and AsyncEncodeRecord traits for more
    efficient batch encoding
  • Added encode_record_refs to EncodeRecordRef and AsyncEncodeRecordRef traits with
    more efficient vectored I/O implementation for DBN
  • Added support for decompressing Zstd in the Python DBNDecoder and new optional
    compression parameter

Breaking changes

  • Moved encode_records method from the EncodeDbn trait to EncodeRecord

0.48.0

27 Jan 17:12
4b776ae

Choose a tag to compare

Release notes

Enhancements

  • Added initial support for splitting DBN files:
    • Added new SplitEncoder that supports synchronous and asynchronous encoding
    • Added new Splitter trait that allows for extensible splitting of files while
      reusing the SplitEncoder boilerplate.
    • Added SchemaSplitter, SymbolSplitter, and TimeSplitter which 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 publisher for Blue Ocean ATS (OCEA_MEMOIR_OCEA)

Bug fixes

  • Fixed issue where AsyncDynReader instances created from with_buffer() would only
    decode the first frame of multi-frame Zstandard files

0.47.0

20 Jan 23:31
b91ea04

Choose a tag to compare

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 StatType variants to be used by XCBF.PITCH dataset:
    • UpperPriceLimit
    • LowerPriceLimit
    • BlockVolume
    • VenueSpecificVolume1
  • Upgraded pyo3 version to 0.27.2
  • Upgraded time version to 0.3.45

0.46.0

06 Jan 19:46
c678555

Choose a tag to compare

Release notes

Breaking changes

  • Added DBNRecord union type to Python which includes all record types
  • Removed Record class from Python type stubs to match code: the record classes don't
    share a base class. Use DBNRecord instead.
  • Removed _DBNRecord union type alias which only existed in typestub and wasn't
    importable. Use DBNRecord | Metadata instead

0.45.0

09 Dec 17:32
024b20b

Choose a tag to compare

Release notes

Enhancements

  • Added new venue, dataset, and publisher for Cboe Futures Exchange (XCBF.PITCH)
  • Added support for Python 3.14 to databento_dbn