Skip to content

Releases: databento/dbn

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

0.44.0

18 Nov 18:43
7232f59

Choose a tag to compare

Release notes

Enhancements

  • Added logic to set code when upgrading version 1 SystemMsg to newer versions
  • Added MergeRecordDecoder::with_hints that allows hinting the minimum timestamp from
    each decoder
  • Added Dataset::publishers() method to retrieve all Publisher values for a dataset

Breaking changes

  • Updated the minimum supported tokio version to 1.41, which was released one year ago

Bug fixes

  • Fixed bug in DbnFsm::consume, though it should have no impact

0.43.0

21 Oct 22:42
b29e068

Choose a tag to compare

Release notes

Enhancements

  • Added export of F_PUBLISHER_SPECIFIC constant to Python
  • Removed support for Python 3.9 in databento-dbn due to end of life
  • Added explicit Unset variant for SystemCode and ErrorCode
  • Changed Python getters for enum fields to return the underlying type when no known
    variant can be found. As a result, these getters no longer raise an exception
  • Added Default implementation for SystemCode and ErrorCode

Bug fixes

  • Added missing Python type stubs for other flag constants

0.42.0

23 Sep 16:11
781ee43

Choose a tag to compare

Release notes

Enhancements

  • Added ts_index and pretty_ts_index properties for records in Python which provides
    the timestamp that is most appropriate for indexing
  • Upgraded pyo3 version to 0.26.0

Bug fixes

  • Fixed type stub for channel_id in Python to allow None
  • Fixed missing re-export for record::TcbboMsg

0.41.0

26 Aug 20:54
4e68293

Choose a tag to compare

Release notes

Enhancements

  • Added interval method RType and Schema to get the duration for subsample schemas
    like Ohlcv1H and Cbbo1S

Breaking changes

  • Changed the default value for channel_id to be u8::MAX in MboMsg and u16::MAX
    elsewhere since 0 is a valid channel ID

Bug fixes

  • Changed default inst_attrib_value value from 0 to i32::MAX to match Rust

0.40.0

19 Aug 17:31
632fa66

Choose a tag to compare

Release notes

Enhancements

  • Added instrument_id and publisher_id setters to all records in Python
  • Added DbnVersion new type

Breaking changes

  • Removed hd property from records in Python. Header fields are accessible
    directly from the record
  • Removed ability to directly instantiate most enums from an int in Python and coercion
    from int in __eq__. They can still be instantitated with the from_int class method.
    Write Side.from_int(66) instead of Side(66) and Side.BID == Side.from_int(66)
    instead of Side.BID == 66. Affected enums:
    • Side
    • Action
    • InstrumentClass
    • MatchAlgorithm
    • UserDefinedInstrument
    • SecurityUpdateAction
    • SType
    • Schema
    • Encoding
    • Compression
    • TriState
  • Removed string coercion in __init__ and __eq__ for RType, SystemCode, and
    ErrorCode enums in Python. It can still be instantiated from a str with the
    from_str class method. Write RType.from_str("mbo") instead of RType("mbo")
    and RType.TRADES == RType.from_str("trades") instead of RType.TRADES == "trades"

Bug fixes

  • Fixed __init__ type signatures for ErrorMsg and SystemMsg in Python
  • Added missing types to record __init__ type signatures in Python
  • Added __init__ type stub for enums in Python
  • Fixed __hash__ implementation for Python enums to match that of their char or int
    representation

Breaking changes

  • Marked ErrorCode and SystemCode non-exhaustive to allow adding future variants
    without a breaking change
  • Added EndOfInterval variant to SystemCode to notify when all OHLCV bars and
    subsampled BBO records have been published for a time interval

0.39.1

12 Aug 16:43
a3b3e6d

Choose a tag to compare

Release notes

Enhancements

  • Added PUBLISHER_SPECIFIC flag
  • Improved JSON encoding performance
  • Added a Default implementation for SecurityUpdateAction