Releases: databento/dbn
Releases · databento/dbn
0.36.1
Release notes
Bug fixes
- Updated conversion error messages in
TryFrom<RecordRef> for RecordRefEnumfor
release of DBN version 3 - Updated
TryFrom<RecordRef> for RecordRefEnumfor versioning ofStatMsg,
SystemMsg, andErrorMsg - Fixed conversion of
BboMsginTryFrom<RecordRef> for RecordRefEnum - Implemented
AsyncDecodeRecordRefandAsyncDecodeRecordforAsyncDecoderand
AsyncRecordDecoder - Fixed setting of
ts_outproperty ofDbnFsmbased on decoded metadata. This
was preventingts_outfrom being correctly decoded in the PythonDBNDecoder - Fixed decoding of
ts_outwith first records inDBNDecoder
0.36.0
Release notes
Enhancements
- Added support for width, fill, and padding when formatting
pretty::Ts - Added support for sign, precision, width, fill, and padding when formatting
pretty::Px - Optimized pretty formatting of prices and timestamps
Breaking changes
- Moved core async decoding and encoding functionality to new traits to
match the sync interface and present a standardized interface- Decoding:
AsyncDecodeRecordRefandAsyncDecodeRecord - Encoding:
AsyncEncodeRecord,AsyncEncodeRecordRef, and
AsyncEncodeRecordTextExt
- Decoding:
Bug fixes
- Added missing Python type stubs for several leg properties of
InstrumentDefMsg
0.35.1
Release notes
Enhancements
- Documented
AsyncMetadataDecoder::decode,AsyncDecoder::new, and
AsyncDecoder::with_upgrade_policy()as now being cancellation safe - Added
DbnFsm::reset()method that resets state to facilitate reuse - Added
DbnFsm::has_decoded_metadata()method to check the internal
state
Bug fixes
- Fixed behavior where encoding metadata could lower the
version - Changed
DbnFsm::data()to exclude all processed data - Fixed
Metadata::upgrade()behavior withUpgradeToV2
0.35.0
Release notes
This version marks the release of DBN version 3 (DBNv3), which is the new default.
Decoders support decoding all versions of DBN and the DBN encoders default to
upgrading the input to DBNv3.
Enhancements
- Added a new
UpgradeToV3VersionUpgradePolicyvariant - Consolidated DBN decoding logic in a new sans-I/O style state machine. All existing
decoders now useDbnFsminternally - Added an internal buffer to DBN decoders so wrapping the reader in a
BufReaderis no
longer recommended - Added
with_upgrade_policy()construction methods toMetadataDecoderand
AsyncMetadataDecoderto match other decoders - Implemented conversion from
RecordReftoIoSlicefor use with
Write::write_vectored - Improved performance of the Python
DBNDecoderby batching acquisition of the GIL for
multiple records - Added
version()setter toCsvEncoderBuilderto configure the output version - Upgraded
pyo3version to 0.25.0
Breaking changes
- Release of DBN version 3
- Definition schema:
- Updated
InstrumentDefMsgwith newleg_fields to support multi-leg strategy
definitions. - Expanded
assetto 11 bytes andASSET_CSTR_LENto match - Expanded
raw_instrument_idto 64 bits to support more venues. Like other 64-bit
integer fields, its value will now be quoted in JSON - Removed
trading_reference_date,trading_reference_price, and
settl_price_typefields which will be normalized in the statistics schema - Removed
md_security_trading_statusbetter served by the status schema
- Updated
- Statistics schema:
- Updated
StatMsghas an expanded 64-bitquantityfield. Like other 64-bit
integer fields, its value will now be quoted in JSON - The previous
StatMsghas been moved tov2::StatMsgorStatMsgV2
- Updated
- Changed the default
VersionUpgradePolicytoUpgradeToV3 - Metadata will now always be encoded with a length divisible by 8 bytes for better
alignment - Version 1 and 2 structs can be converted to version 3 structs with the
Fromtrait
- Definition schema:
- Added a
versionparameter to theencode_header_for_schema()method onCsvEncoder
andDynEncoderto handle change in definition schema fields between versions - Changed the return type of
DbnDecoder::from_fileandAsyncDbnDecoder::from_fileto
no longer include aBufReader - The
set_upgrade_policy()methods onDbnDecoder,AsyncDbnDecoder,
DbnRecordDecoder,AsyncDbnRecordDecodernow return aResult - Removed
compat::decode_record_ref. It's recommended to useDbnFsmor the decoders
directly - Updated the minimum supported
tokioversion to 1.38, which was released one year ago
Bug fixes
- Fixed conversion of
v1::StatMsgtov3::StatMsg - Changed default
upgrade_policyof synchronousDbnRecord - Fixed Python
Transcodernot writing CSV header whenhas_metadata=False - Removed incorrect
sequenceanddepthPython type stubs forCMBP1MsgandCBBOMsg - Fixed missing export of
Mbp1MsgandMbp10Msgfromv1,v2, andv3modules
0.34.0
Release notes
Enhancements
- Added a
v3::StatMsgrecord with an expanded 64-bitquantityfield - Added
with_compression_levelmethods toDynWriter,AsyncDynWriter, and
AsyncDynBufWriter - Added
DBN_VERSIONconstants to each version module:v1,v2, andv3 - Added
UNDEF_STAT_QUANTITYconstants to each version module - Added statistics compatibility trait
StatRecfor generalizing across different
versions of the statistics record - Added
AsRef<[u8]>implementations forRecordEnumandRecordRefEnum - Added new off-market publishers for Eurex and European Energy Exchange (EEX)
Breaking changes
- Made
Recorda subtrait ofAsRef<[u8]>as all records should be convertible to
bytes
0.33.2
Release notes
Enhancements
- Added
with_compression_levelmethods toDynWriter,AsyncDynWriter, and
AsyncDynBufWriter
Bug fixes
- Fixed
AsyncDynBufWriterinterface
0.33.1
Release notes
Enhancements
- Added
InstitutionalPrioritizationvariant toMatchAlgorithm
Release notes
Enhancements
- Added
InstitutionalPrioritizationvariant toMatchAlgorithm
0.33.0
Release notes
Enhancements
- Added
SystemCodeandErrorCodeenums to indicate types of system and error
messages - Added
code()methods toSystemMsgandErrorMsgto retrieve the enum value if
one exists and equivalent properties in Python - Converting a
v1::SystemMsgto av2::SystemMsgnow sets tocodeto the heartbeat
value - Added
ASSET_CSTR_LENconstants for the size ofassetfield inInstrumentDefMsg
in different DBN versions - Added
encode_record_with_sym()method toAsyncJsonEncoderwhich encodes a record
along with its text symbol to match the sync encoder
Breaking changes
- Added
codeparameter toSystemCode::new()andErrorMsg::new() - Updated the
rtype_dispatchandschema_dispatchmacro invocations to look more like
function invocation - Increased the size of
assetfield inv3::InstrumentDefMsgfrom 7 to 11. The
InstrumentDefMsgV3message size remains 520 bytes.
0.32.0
Release notes
Enhancements
- Refactored the
rtype_dispatchmacro to be more flexible: it supportsts_out
dispatching, async functions and methods, and now always verifies the record length - Refactored the
schema_dispatchmacro to be more flexible: it supportsts_out
dispatching and async functions and methods
Breaking changes
- Updated the
rtype_dispatchandschema_dispatchmacro invocations to look more like
function invocation
Deprecations
- Deprecated macros
rtype_async_dispatch,rtype_ts_out_dispatch,
rtype_dispatch_with_ts_out,rtype_ts_out_async_dispatch,
rtype_ts_out_method_dispatch, andrtype_ts_out_async_method_dispatchin favor of
an updated, more flexiblertype_dispatchmacro
Bug fixes
- Fixed
RTypevariant names in Python to matchSchema - Added missing Python type declarations for
RTypevariants - Fixed issue with Python
_hidden_fieldsdefinition that causedKeyError: _reserved1_00
withCMBP1Msgand other records withConsolidatedBidAskPair
0.31.0
Release notes
Enhancements
- Added
OrdandPartialOrdimplementations for all enums andFlagSetto allow
for use in ordered containers likeBTreeMap - Added
decode_records()method toAsyncDbnDecoderandAsyncDbnRecordDecoder
which is similar to the sync decoder methods of the same name - Upgraded
pyo3version to 0.24.1 - Upgraded
timeversion to 0.3.41
Breaking changes
- Removed deprecated
datasetmodule. The top-levelDatasetenum and itsconstas_str()
method provide the same functionality for all datasets - Removed deprecated
SymbolIndex::get_for_rec_ref()method
Bug fixes
- Fixed Python type annotation for
SystemMsg::is_heartbeat()method that was previously
annotated as a property