- Upgraded
databento-dbnto 0.53.0:- 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
- Made
- Upgraded
databento-dbnto 0.52.1:- Added
__index__to all int-representable and char-backed Python enums, enabling use withint(),hex(), and as sequence indices - Fixed memory leak in Python bindings where every record object leaked ~64 bytes
due to a
pyo30.28 regression in#[pyclass(dict)]deallocation. Downgradedpyo3to 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)
- Added
- Changed
SlowReaderBehavior.SKIPto send "skip" instead of "drop" to the gateway - Upgraded
databento-dbnto 0.52.0:- 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)
- Added
- Upgraded
databento-dbnto 0.51.0:- Added logic to set
codewhen upgrading version 1ErrorMsgto newer versions
- Added logic to set
- Upgraded
databento-dbnto 0.50.0:- Added
SkippedRecordsAfterSlowReadingto theErrorCodeenum for gateway errors originating from slow client catch-up.
- Added
- Added
slow_reader_behaviorfield toAuthenticationRequestmessage - Added
SlowReaderBehaviorenum - Added support for using compression in the live API:
- Added
compressionparameter to theLiveclient constructor - Added
compressionproperty to theLiveclient - Added
compressionfield toAuthenticationRequest
- Added
- Upgraded
databento-dbnto 0.49.0:- Added support for decompressing Zstd in the Python
DBNDecoderand new optionalcompressionparameter
- Added support for decompressing Zstd in the Python
- Added new off-market publisher for Cboe Futures Exchange (
XCBF_PITCH_XOFF) - Upgraded
databento-dbnto 0.48.0:- Changed the
__repr__implementation of all records in Python to be more Pythonic - Added new
StatTypevariants to be used byXCBF.PITCHdataset:UPPER_PRICE_LIMITLOWER_PRICE_LIMITBLOCK_VOLUMEVENUE_SPECIFIC_VOLUME_1
- Changed the
- Added new publisher for Blue Ocean ATS (
OCEA_MEMOIR_OCEA) - Reduced the log level of end-of-interval
SystemMsgrecords to the debug level
- Upgraded
databento-dbnto 0.46.0:- 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.
- Added
- Removed
DBNRecordunion type fromdatabento.common.types, usedatabento_dbn.DBNRecordinstead
- Fix use of
SelfinGatewayControl.parse()
- Improved the performance of
DBNStore.to_df()symbol mapping
This release adds support for Python 3.14.
- Added support for Python 3.14
- Functions which accept a path as an argument now expand user directories
- Upgraded
databento-dbnto 0.45.0:- Added support for Python 3.14
- Added a property
Live.subscription_requestswhich returns a list of tuples containing everySubscriptionRequestfor the live session - Changed the return value of
Live.subscribe()toint, the value of the subscription ID, which can be used to index into theLive.subscription_requestsproperty - Added feature to automatically monitor for hung connections in the
Liveclient- Hung connections will be disconnected client side with a
BentoError
- Hung connections will be disconnected client side with a
- Added new venue, dataset, and publisher for Cboe Futures Exchange (
XCBF.PITCH)
- Several log messages have been reformatted to improve clarity and reduce redundancy, especially at debug levels
- The
map_symbolsparameter forHistorical.batch.submit_job()now defaults toTruefor JSON and CSV encodings
- Added a property
Live.session_idwhich returns the streaming session ID when the client is connected - Streams added with
Live.add_stream()which do not define an exception handler will now emit a warning if an exception is raised while executing the callback - Callback functions added with
Live.add_callback()which do not define an exception handler will now emit a warning if an exception is raised while executing the callback - Upgraded
databento-dbnto 0.44.0:- Added logic to set
codewhen upgrading version 1SystemMsgto newer versions
- Added logic to set
- Streams opened by
Live.add_stream()will now close properly when the streaming session is closed
- Deprecated
modeparameter inmetadata.get_cost, which will be removed in a future release
- Added export of
CBBOMsgandBBOMsgfromdatabento_dbnto the rootdatabentopackage - Upgraded
databento-dbnto 0.43.0:- Added export of
F_PUBLISHER_SPECIFICconstant to Python - Added explicit
Unsetvariant forSystemCodeandErrorCode - 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 export of
- Removed support for Python 3.9 due to end of life
- Upgraded
databento-dbnto 0.42.0:- Added
ts_indexandpretty_ts_indexproperties for records in Python which provides the timestamp that is most appropriate for indexing - Fixed type stub for
channel_idto allow None
- Added
- Reduced the log level of
SystemMsgrecords in theLiveclient to debug - Increased the log level of
SystemMsgrecords with the codeSystemCode.SLOW_READER_WARNINGto warning
- Fixed type hint for
startparameter inLive.subscribe()
- Upgraded
databento-dbnto 0.41.0
- Fixed an issue where calling
Live.stop()would not clean up the client state once the socket is closed
This release delivers a number of breaking changes to the Python interface for DBN records to provide a cleaner and more consistent API.
- Removed
bill_idfrom the response ofbatch.list_jobs()andbatch.submit_job() - Upgraded
databento-dbnto 0.40.0:- Removed
hdproperty from records in Python. Header fields are accessible directly from the record - Removed ability to directly instantiate most enums from an
intin Python and coercion fromintin__eq__. They can still be instantiated with thefrom_intclass method. WriteSide.from_int(66)instead ofSide(66)andSide.BID == Side.from_int(66)instead ofSide.BID == 66. Affected enums:SideActionInstrumentClassMatchAlgorithmUserDefinedInstrumentSecurityUpdateActionSTypeSchemaEncodingCompressionTriState
- Removed string coercion in
__init__and__eq__forRType,SystemCode, andErrorCodeenums in Python. It can still be instantiated from astrwith thefrom_strclass method. WriteRType.from_str("mbo")instead ofRType("mbo")andRType.TRADES == RType.from_str("trades")instead ofRType.TRADES == "trades"
- Removed
- Added
END_OF_INTERVALvariant toSystemCodeenum
- Modified the
statesparameter inbatch.list_jobs()
- Added
JobStateenum - Added export of
SystemCodeandErrorCodefromdatabento_dbnto the rootdatabentopackage - Added
F_PUBLISHER_SPECIFICflag toRecordFlagsenum
- Bumped the minimum version requirement for
requeststo 0.27.0
- Added
parquet_schemaoption toDBNStore.to_parquet()for overriding the pyarrow schema. - Upgraded
databento-dbnto 0.39.0:- Added
side()andunpaired_side()methods toImbalanceMsgthat convert the fields of the same name to theSideenum - Added
pretty_auction_timeproperty in Python forImbalanceMsg - Added
actionandts_in_deltagetters toBboMsg - Added
ts_recvgetter toStatusMsg - Added missing floating-point price getters to
InstrumentDefMsgrecord types from all DBN versions - Added more floating-point price getters to
ImbalanceMsg - Added floating-point price getter to
StatMsg - Standardize Python
__init__type signatures - Changed
auction_timefield inImbalanceMsgto be formatted as a timestamp - Fixed a regression where some enum constructors no longer raised a
DBNErrorin Python
- Added
- Removed unused
S3andDiskvariants fromDeliveryenum
- Upgraded
databento-dbnto 0.37.1:- Fix buffer growth in
DbnFsm::write_all(), which is used byDBNDecoder.write()
- Fix buffer growth in
- Renamed the following Venue, Dataset, and Publishers:
XEERtoXEEEXEER.EOBItoXEEE.EOBIXEER.EOBI.XEERtoXEEE.EOBI.XEEEXEER.EOBI.XOFFtoXEEE.EOBI.XOFF
- Changed the
tzparameter inDBNStore.to_df()to acceptdatetime.tzinfoinstead ofpytz.BaseTzInfoexplicitly - Modified the dependency specification for
databento_dbnto allow for compatible patch versions - Upgraded
databento-dbnto 0.36.2:- Fixed change in behavior where Python
DBNDecoder.decode()wouldn't always decode all available data on the first call
- Fixed change in behavior where Python
- Changed the following Venue, Publisher, and Dataset descriptions:
- "ICE Futures Europe (Financials)" renamed to "ICE Europe Financials"
- "ICE Futures Europe (Commodities)" renamed to "ICE Europe Commodities"
- Upgraded
databento-dbnto 0.36.1:- Fixed setting of
ts_outproperty of DbnFsm based on decoded metadata. This was preventingts_outfrom being correctly decoded in the Python DBNDecoder - Fixed decoding of
ts_outwith first records in DBNDecoder
- Fixed setting of
- Fixed an issue where DBN records from the Live client where not having their
ts_outpopulated
- Upgraded
databento-dbnto 0.36.0:- Added missing Python type stubs for several leg properties of
InstrumentDefMsg
- Added missing Python type stubs for several leg properties of
- Fixed an issue where the zstandard frame size could limit the size of
DataFrameobjects returned byDBNStore.to_df()when acountwas specified
- Deprecated
intandpd.Timestamptypes forstart_dateandend_dateparameters which will be removed in a future release
- Updated the names of several subfields in the
Reference.corporate_actions.get_range(...)response, under thedate_info,event_info, andrate_infofields. The following subfields were renamed:decl_currencyrenamed todeclared_currencydecl_gross_amountrenamed todeclared_gross_amountf_x_raterenamed tofx_rateiss_new_namerenamed toissuer_new_nameiss_old_namerenamed toissuer_old_namenew_bbg_company_idrenamed tonew_bbg_comp_idnew_bbg_company_tkrenamed tonew_bbg_comp_tickernew_bbg_exh_idrenamed tonew_figinew_bbg_exh_tkrenamed tonew_figi_tickernew_min_tra_qtyrenamed tonew_min_trading_qtynew_mktsg_idrenamed tonew_market_segment_idnew_reg_s144_arenamed tonew_reg_s144anew_unit_sec_idrenamed tonew_unit_security_idofferee_iss_idrenamed toofferee_issuer_idofferor_iss_idrenamed toofferor_issuer_idold_bbg_company_idrenamed toold_bbg_comp_idold_bbg_company_tkrenamed toold_bbg_comp_tickerold_bbg_exh_idrenamed toold_figiold_bbg_exh_tkrenamed toold_figi_tickerold_min_tra_qtyrenamed toold_min_trading_qtyold_mktsg_idrenamed toold_market_segment_idold_reg_s144_arenamed toold_reg_s144aold_unit_sec_idrenamed toold_unit_security_idpp_sec_idrenamed topp_security_idpoolfactorrenamed topool_factorpre_offer_q_tyrenamed topre_offer_qtyqual_st_cap_gainsrenamed toqual_short_term_cap_gainsredem_percentagerenamed toredemption_percentagest_cap_gainsrenamed toshort_term_cap_gainssec_new_namerenamed tosecurity_new_namesec_old_namerenamed tosecurity_old_namesection199_a_foreign_tax_paidrenamed tosection199a_foreign_tax_paidsection199_a_inc_divrenamed tosection199a_inc_divsection199_a_st_cap_gainrenamed tosection199a_short_term_cap_gaintra_isinrenamed totrading_isintra_sec_idrenamed totrading_security_idus_deposit_receiptateto_currencyrenamed tousd_rate_to_currencycashbakrenamed tocash_backcompanyulsory_acq_daterenamed tocompulsory_acq_datefrankdivrenamed tofranked_divlead_plntiff_deadline_daterenamed tolead_plaintiff_deadline_datemaxpricerenamed tomax_priceminpricerenamed tomin_priceredem_premiumrenamed toredemption_premiumredem_pricerenamed toredemption_priceunit_frankdivrenamed tounfranked_div
- Upgraded
databento-dbnto 0.35.1
- Fixed decoding of DBN versions 1 and 2 statistics in
DBNStore.to_df()
- Added
exchangesparameter toReference.corporate_actions.get_range(...) - Added
is_lastfield to live subscription requests which will be used to improve the handling of split subscription requests - Upgraded
databento-dbnto 0.35.0:- This version delivers DBN version 3 (DBNv3), which is the new default
- Improved the performance of the Python
DBNDecoder
- Fixed an issue where
JSONDecodeErrorwould not be caught when usingsimplejsonwithrequests(credit: @xuanqing94)
- Added new off-market publishers for Eurex, and European Energy Exchange (EEX)
- Increased live subscription symbol chunking size
- Upgraded
databento-dbnto 0.34.0
- Upgraded
databento-dbnto 0.33.1:- Added
SystemCodeandErrorCodeenums to indicate types of system and error messages - Added
code()methods to SystemMsg and ErrorMsg to retrieve the enum value if one exists and equivalent properties in Python
- Added
- Fixed issue where all
SystemMsgrecords were logged as gateway heartbeats
- Added new optional
idfield toSubscriptionRequestclass which will be used for improved error messages - Upgraded
databento-dbnto 0.32.0:- Fixed
RTypevariant names in Python to matchSchema - Added missing Python type declarations for
RTypevariants - Fixed issue with Python
_hidden_fieldsdefinition that causedKeyError: _reserved1_00withCMBP1Msgand other records withConsolidatedBidAskPair
- Fixed
- Upgraded
databento-dbnto 0.31.0:- Fixed Python type annotation for
SystemMsg.is_heartbeat()method that was previously annotated as a property
- Fixed Python type annotation for
- Added new venues, datasets, and publishers for ICE Futures US, ICE Europe Financials products, Eurex, and European Energy Exchange (EEX)
- Added export of the following enums from
databento_dbnto the rootdatabentopackage:ActionInstrumentClassMatchAlgorithmRTypeSecurityUpdateActionSideStatUpdateActionTriStateUserDefinedInstrumentVersionUpgradePolicy
- Added export of the following constants from
databento_dbnto the rootdatabentopackage:DBN_VERSIONFIXED_PRICE_SCALEUNDEF_ORDER_SIZEUNDEF_PRICEUNDEF_STAT_QUANTITYUNDEF_TIMESTAMP
- Added export of
BidAskPairandConsolidatedBidAskPairfromdatabento_dbnto the rootdatabentopackage - Upgraded
databento-dbnto 0.29.0:- Added
COMMODITY_SPOTInstrumentClassvariant
- Added
- Improved handling of
datetimeanddateobjects instartandendparameters
- Added new venues, datasets, and publishers for ICE Futures US and for ICE Europe Financials products
- Added a
keep_zipparameter toHistorical.batch.download(). WhenTrue, and downloading all files, the jobs contents will be saved as a ZIP file - Calling
Live.terminate()will now attempt to write EOF before aborting the connection to help close the remote end
- Updated enumerations for unreleased datasets and publishers.
- Added export of
StatusActionenum fromdatabento_dbnto the rootdatabentopackage - Added export of
StatusReasonenum fromdatabento_dbnto the rootdatabentopackage - Added export of
TradingEventenum fromdatabento_dbnto the rootdatabentopackage - Added new dataset
EQUS.MINIand new publishersEQUS.MINI.EQUS,XNYS.TRADES.EQUS - Removed upper bound for supported
pythonversions; the constraint is now^3.9 - Upgraded
databento-dbnto 0.27.0:- Fixed export of
InstrumentDefMsgV3to Python
- Fixed export of
- Fixed an issue where sending a
KeyboardInterruptduring iteration of theLiveclient could block execution waiting for the connection to close - Fixed an issue with submitting historical metadata requests for a large number of symbols.
- Upgraded
databento-dbnto 0.25.0:- Added type aliases for
TBBOMsg,BBO1SMsg,BBO1MMsg,TCBBOMsg,CBBO1SMsg,CBBO1MMsgin Python
- Added type aliases for
- Removed exports for
CBBOMsgandBBOMsgin the rootdatabentopackage in favor of aliased versions fromdatabento-dbn
- Removed deprecated
packagingparameter fromHistorical.batch.submit_job. Job files can be downloaded individually or as zip files after the job completes - Upgraded
databento-dbnto 0.24.0:- Added handling for
UNDEF_TIMESTAMPinpretty_timestamp getters for Python. They now returnNonein the case ofUNDEF_TIMESTAMP
- Added handling for
This release adds support for Python 3.13.
- Added support for Python 3.13
- Added new IntelligentCross venues
ASPN,ASMT, andASPI - Upgraded
databento-dbnto 0.23.1:- Fixed
pretty_activationgetter indatabento_dbnreturningexpirationinstead - Fixed some
pretty_getters indatabento_dbndidn't correctly handleUNDEF_PRICE
- Fixed
- Deprecated
packagingparameter forHistorical.batch.submit_jobwhich will be removed in a future release
- Improved exception messages emitted by the
Liveclient to always include contents of anyErrorMsgsent by the gateway
- Fixed an issue where calling
Live.stopwould not close the connection within a reasonable time
- Removed deprecated
databento.from_dbn;databento.read_dbncan be used instead - Upgraded
databento-dbnto 0.23.0
- Fixed an issue where
DBNStore.request_symbologycould request the wrong end date
- Keyword arguments to
DBNStore.to_parquetwill now allowwhereandschemato be specified - Improved record processing time for the
Liveclient
- Fixed an issue where validating the checksum of a batch file loaded the entire file into memory
This release drops support for Python 3.8 which has reached end-of-life.
- Added
PriceTypeenum for validation ofprice_typeparameter inDBNStore.to_df - Upgraded
databento-dbnto 0.22.1
- Fixed return type hint for
metadata.get_dataset_condition
- Removed support for Python 3.8 due to end of life
- Added
modeparameter toDBNStore.to_csvto control the file writing mode - Added
modeparameter toDBNStore.to_jsonto control the file writing mode - Added
modeparameter toDBNStore.to_parquetto control the file writing mode - Added
compressionparameter toDBNStore.to_filewhich controls the output compression format - Added new consolidated publisher values for
XNAS.BASICandDBEQ.MAX - Changed
DBNStoreto be more tolerant of truncated DBN streams
- Changed default write mode for
DBNStore.to_csvto overwrite ("w") - Changed default write mode for
DBNStore.to_jsonto overwrite ("w") - Changed default write mode for
DBNStore.to_parquetto overwrite ("w")
- Added
databento.read_dbnalias - Added
modeparameter toDBNStore.to_fileto control the file writing mode
- Changed default write mode for
DBNStore.to_fileto overwrite ("w")
- Deprecated
databento.from_dbnand will be removed in a future release, usedatabento.read_dbninstead
- Added
adjustment_factors.get_range(...)method forReferenceclient - Added
security_master.get_range(...)method forReferenceclient - Added
security_master.get_last(...)method forReferenceclient - Upgraded
databento-dbnto 0.20.1
- Added new publisher values for
XCIS.BBOTRADESandXNYS.BBOTRADES
- Fixed an issue receiving multiple DBN v1
ErrorMsgin theLiveclient would cause anInvalidStateerror - Fixed an issue where creating
Liveclients in multiple threads could cause aRuntimeErrorupon initialization
- Changed
corporate_actions.get_range(...)to stream compressed zstd data
- Fixed an issue where a symbol list which contained a
Nonewould produce a convoluted exception
- Added new publisher value for
DBEQ.SUMMARY - Upgraded
databento-dbnto 0.20.0
This release adds a new feature to the Live client for automatically reconnecting when an unexpected disconnection occurs.
- Added
Referencedata client withcorporate_actions.get_range(...)method - Added
ReconnectPolicyenumeration - Added
reconnect_policyparameter to theLiveclient to specify client reconnection behavior - Added
Live.add_reconnect_callbackmethod for specifying a callback to handle client reconnections - Added platform information to the user agent reported by the
HistoricalandLiveclients - Upgraded
databento-dbnto 0.19.1 - Added
BBOMsg,CBBOMsg, andStatusMsgexports to the rootdatabentopackage
- Calling
Live.stopwill now clear all user streams and callbacks - Renamed
SessiontoLiveSessionin thedatabento.live.sessionmodule
- A disconnected
Liveclient can now be reused with a different dataset - Upgraded
databento-dbnto 0.19.0
- Added export of
StatTypeenum fromdatabento_dbnto the rootdatabentopackage
- Upgraded
databento-dbnto 0.18.2
- Added type alias
TBBOMsgforMBP1Msg - Added support for
bbo-1s,bbo-1m, andstatusschemas - Instances of the
Liveclient will now callLive.stopwhen garbage collected - Added new publisher values for
XNAS.BASICandXNAS.NLS
- Upgraded
databento-dbnto 0.18.1
- Fixed an issue where
heartbeat_interval_swas not being sent to the gateway - Fixed an issue where a truncated DBN stream could be written by the
Liveclient in the event of an ungraceful disconnect
- Output streams of the
Liveclient added withLive.add_streamwill now upgrade to the latest DBN version before being written
- Added optional
heartbeat_interval_sparameter toLiveclient for configuring the interval at which the gateway will send heartbeat records - Upgraded
databento-dbnto 0.18.0 - Added new off-market publisher values for
IFEU.IMPACTandNDEX.IMPACT
- Renamed
CbboMsgtoCBBOMsg - Renamed
use_snapshotparameter inLive.subscribefunction tosnapshot - All Python exceptions raised by
databento-dbnhave been changed to use theDBNErrortype
- Added
use_snapshotparameter toLive.subscribe, defaults toFalse
- Added
pip-system-certsdependency for Windows platforms to prevent a connection issue inrequestswhen behind a proxy - Iteration of the
Liveclient will now automatically callLive.stopwhen the iterator is destroyed, such as when a for loop is escaped with an exception orbreakstatement
- Fixed an issue where
batch.downloadandbatch.download_asyncwould fail if requested files already existed in the output directory - Fixed an issue where
batch.download,batch.download_async, andtimeseries.get_rangecould use a lot of memory while streaming data - Fixed an issue where reusing a
Liveclient with an open output stream would drop DBN records when received at the same time as theMetadataheader
- The
start_dateandend_datekeys in the response fromHistorical.metadata.get_dataset_rangewill be removed in a future release. Use the newstartandendkeys instead, which include time resolution
- The
Historical.batch.downloadandHistorical.batch.download_asyncmethods will now automatically retry the download if a rate limit (HTTP 429) error is received - The
Historical.batch.downloadandHistorical.batch.download_asyncmethods will now retry failed downloads automatically - The
Historical.batch.downloadandHistorical.batch.download_asyncmethods will now download files concurrently - The
output_dirparameter forHistorical.batch.downloadandHistorical.batch.download_asyncis now optional and will default to the current working directory if unspecified
- The
enable_partial_downloadsparameter forHistorical.batch.downloadandHistorical.batch.download_asynchas been removed, partial files will always be resumed which was the default behavior - The parameters for
Historical.batch.downloadandHistorical.batch.download_asynchave been reordered becauseoutput_diris now optional,job_idnow comes first
- Improved exception messages when multiple
ErrorMsgare received by theLiveclient - Upgraded
databento-dbnto 0.17.1
- Removed live session ID parsing to
int, that could cause a session to fail when nothing was wrong
- Renamed publishers from deprecated datasets to their respective sources (
XNAS.NLSandXNYS.TRADESrespectively)
- Deprecated dataset values
FINN.NLSandFINY.TRADES
- Increase
Livesession connection and authentication timeouts - Added new
F_TOBandF_MAYBE_BAD_BOOKvariants toRecordFlags
- Fixed an issue where calling
Live.subscribefrom aLiveclient callback would cause a deadlock
- Added
DBNStore.insert_symbology_jsonconvenience method for adding symbology data from a JSON dict or file path - Upgraded
databento-dbnto 0.16.0
- Changed how
SymbolMappingMsgobjects are ingested byInstrumentMapto single source the timestamp parsing from thedatabento-dbnpackage
- Fixed an issue where setting a timezone in
DBNStore.to_dfcould cause invalid symbol mappings
- Changed
Live.add_streamto use the exclusive write mode when handling file paths so existing files won't be overwritten
- Added
tzparameter toDBNStore.to_dfwhich will convert all timestamp fields from UTC to a specified timezone when used withpretty_ts - Added new publisher values for consolidated DBEQ.MAX
Live.block_for_closeandLive.wait_for_closewill now callLive.stopwhen a timeout is reached instead ofLive.terminateto close the stream more gracefully
- Substantially increased iteration queue size
- Added methods
DBNQueue.enableandDBNQueue.disablefor controlling queue consumption - Added method
DBNQueue.is_enabledto signal the queue can accept records - Added method
DBNQueue.is_fullto signal the queue has reached capacity - Added enabled checks to
DBNQueue.putandDBNQueue.put_nowait
- Iterating a
Liveclient after the streaming session has started will now raise aValueError. CallingLive.startis not necessary when iterating theLiveclient - Moved constant
databento.live.client.DEFAULT_QUEUE_SIZEtodatabento.live.session.DBN_QUEUE_CAPACITY - Removed
maxsizeparameter fromDBNQueueconstructor.DBNQueuenow subclassesSimpleQueueinstead - Removed property
DBNQueue.enabled, useDBNQueue.is_enabledinstead - Removed method
DBNQueue.is_half_full, useDBNQueue.is_fullinstead
- Fixed an issue where DBN records could be dropped while iterating
- Fixed an issue where async iteration would block the event loop
- Added
Session.session_idproperty which will contain the numerical session ID once a live session has been authenticated - Upgraded
databento-dbnto 0.15.1
- Renamed
DatabentoLiveProtocol.startedtoDatabentoLiveProtocol.is_startedwhich now returns a bool instead of anasyncio.Event
- Fixed an issue where an error message from the live gateway would not properly raise an exception if the connection closed before
Live.startwas called
This release adds support for transcoding DBN data into Apache parquet.
- Added
DBNStore.to_parquetfor transcoding DBN data into Apache parquet usingpyarrow - Upgraded
databento-dbnto 0.15.0
- Removed deprecated
pretty_pxparameter forDBNStore.to_df;price_typecan be used instead
- Fixed an issue where the
Liveclient would not raise an exception when reading an incompatible DBN version - Fixed an issue where sending lots of subscriptions could cause a
BufferError - Fixed an issue where
Historical.batch.downloadwas slow - Fixed an issue where
Historical.timeseries.get_rangewas slow - Fixed an issue where reading a DBN file with non-empty metadata symbol mappings and mixed
STypewould cause an error when mapping symbols (credit: Jakob Lövhall)
- Added new publisher value for OPRA MIAX Sapphire
- Fixed issue where a large unreadable symbol subscription message could be sent
- Fixed issue where calling
Live.stopcould cause a truncated DBN record to be written to a stream
This release adds support for DBN v2 as well as Python 3.12.
DBN v2 delivers improvements to the Metadata header symbology, new stype_in and stype_out fields for SymbolMappingMsg, and extends the symbol field length for SymbolMappingMsg and InstrumentDefMsg. The entire change notes are available here. Users who wish to convert DBN v1 files to v2 can use the dbn-cli tool available in the databento-dbn crate. On a future date, the Databento live and historical APIs will stop serving DBN v1.
This release of databento-python is fully compatible with both DBN v1 and v2, so this upgrade should be seamless for most users.
In some cases, DBN v1 records will be converted to their v2 counterparts:
- When iterating a
DBNStoreand withDBNStore.replay - When iterating a
Liveclient and records dispatched to callbacks
- Added support for Python 3.12
- Improved the performance for stream writes in the
Liveclient - Upgraded
databento-dbnto 0.14.2 - Added
databento.common.typesmodule to hold common type annotations
- Fixed an issue where specifying an OHLCV schema in
DBNStore.to_ndarrayorDBNStore.to_dfwould not properly filter records by their interval - Fixed an issue where
DBNStore.to_ndarrayandDBNStore.to_dfwith a non-zero count could get stuck in a loop if the DBN data did not contain any records
DBNStoreiteration andDBNStore.replaywill upgrade DBN version 1 messages to version 2Liveclient iteration and callbacks upgrade DBN version 1 messages to version 2- Moved
DBNRecord,RecordCallback, andExceptionCallbacktypes to themdatabento.common.typesmodule - Moved
AUTH_TIMEOUT_SECONDSandCONNECT_TIMEOUT_SECONDSconstants from thedatabento.livemodule todatabento.live.session - Moved
INT64_NULLfrom thedatabento.common.dbnstoremodule todatabento.common.constants - Moved
SCHEMA_STRUCT_MAPfrom thedatabento.common.datamodule todatabento.common.constants - Removed
schemaparameter fromDataFrameIteratorconstructor,struct_typeis to be used instead - Removed
NON_SCHEMA_RECORD_TYPESconstant as it is no longer used - Removed
DERIV_SCHEMASconstant as it is no longer used - Removed
SCHEMA_COLUMNSconstant as it is no longer used - Removed
SCHEMA_DTYPES_MAPconstant as it is no longer used - Removed empty
databento.common.datamodule
- Added new publishers for consolidated DBEQ.BASIC and DBEQ.PLUS
- Fixed an issue where
Live.block_for_closeandLive.wait_for_closewould not flush streams if the timeout was reached - Fixed a performance regression when reading a historical DBN file into a numpy array
- Added
map_symbols_csvfunction to thedatabentomodule for usingsymbology.jsonfiles to map a symbol column onto a CSV file - Added
map_symbols_jsonfunction to thedatabentomodule for usingsymbology.jsonfiles to add a symbol key to a file of JSON records - Added new publisher values in preparation for IFEU.IMPACT and NDEX.IMPACT datasets
- Fixed issue where a large unreadable symbol subscription message could be sent
- Fixed an issue where
DBNStore.to_dfwithpretty_ts=Truewas very slow
- Fixed an issue where
DBNStore.to_csvandDBNStore.to_jsonwere mapping symbols even whenmap_symbolswas set toFalse - Fixed an issue where empty symbology mappings caused a
ValueErrorwhen loading symbols into theDBNStoreinstrument map
- Added
price_typeargument forDBNStore.to_dfto specify if price fields should befixed,floatordecimal.Decimal - Added
py.typedmarker file - Upgraded
databento-dbnto 0.13.0
- Changed outputs of
DBNStore.to_csvandDBNStore.to_jsonto match the encoding formats from the Databento API
- Deprecated
pretty_pxargument forDBNStore.to_dfto be removed in a future release; the defaultpretty_px=Trueis now equivalent toprice_type="float"andpretty_px=Falseis now equivalent toprice_type="fixed"
- Added
map_symbolssupport for DBN data generated by theLiveclient - Added support for file paths in
Live.add_stream - Added new publisher values in preparation for DBEQ.PLUS
- Upgraded
databento-dbnto 0.11.1
- Fixed an issue where
DBNStore.from_bytesdid not rewind seekable buffers - Fixed an issue where the
DBNStorewould not map symbols with input symbology ofSType.INSTRUMENT_ID - Fixed an issue with
DBNStore.request_symbologywhen the DBN metadata's start date and end date were the same - Fixed an issue where closed streams were not removed from a
Liveclient on shutdown
- Added
ARCX.PILLAR.ARCXpublisher - Added
pretty_pxoption forbatch.submit_job, which formats prices to the correct scale using the fixed-precision scalar 1e-9 (available for CSV and JSON text encodings) - Added
pretty_tsoption forbatch.submit_job, which formats timestamps as ISO 8601 strings (available for CSV and JSON text encodings) - Added
map_symbolsoption forbatch.submit_job, which appends a symbol field to each text-encoded record (available for CSV and JSON text encodings) - Added
split_symbolsoption forbatch.submit_job, which will split files by raw symbol - Upgraded
databento-dbnto 0.10.2
- Fixed an issue where no disconnection exception were raised when iterating the
Liveclient - Fixed an issue where calling
DBNStore.to_df,DBNStore.to_json, orDBNStore.to_csvwithmap_symbols=Truewould cause aTypeError
- Removed
default_valueparameter fromHistorical.symbology.resolve - Swapped the ordering for the
pretty_pxandpretty_tsboolean parameters
- Fixed an issue where the index column was not serialized with
DBNStore.to_json - Fixed an issue where timestamps serialized by
DBNStore.to_jsonhad reduced precision
This release includes improvements to handling large DBN data and adds support for future datasets.
- Added
countparameter toDBNStore.to_dfandDBNStore.to_ndarrayto help process large files incrementally - Improved memory usage of
DBNStore.to_csvandDBNStore.to_json - Added the
Publisher,Venue, andDatasetenums - Replace null prices with
NaNwhenpretty_px=TrueinDBNStore.to_df() - Upgraded
databento-dbnto 0.8.3
- Fixed issue where exception messages were displaying JSON encoded data
- Fixed typo in
BATY.PITCH.BATYpublisher - Reduced floating error when converting prices to floats with
pretty_px=True
DBNStore.to_dfnow always utf-8 decodes string fields
- Fixed issue where extra
pythonkey was sent by theLiveclient
- Renamed the
TimeSeriesHttpAPIclass toTimeseriesHttpAPI
- Fixed an issue where
DBNStore.to_csv(),DBNStore.to_df(),DBNStore.to_json(), andDBNStore.to_ndarray()would consume large amounts of memory
This release includes improvements to the ergonomics of the clients metadata API, you can read more about the changes here.
- Upgraded
databento-dbnto 0.8.2
- Changed
metadata.list_publishers()to return a list of publisher details objects - Changed
metadata.list_fields(...)to return a list of field detail objects for a particular schema and encoding - Changed
metadata.list_fields(...)to require theschemaandencodingparameters - Changed
metadata.list_unit_prices(...)to return a list of unit prices for each feed mode and data schema - Changed
metadata.list_unit_prices(...)to require thedatasetparameter - Removed
metadata.list_unit_prices(...)modeandschemaparameters - Removed
metadata.list_fields(...)datasetparameter
- Fixed an issue where starting a
Liveclient before subscribing gave an incorrect error message - Fixed an issue where a
Liveclient exception callback would fail when the callback function does not have a__name__attribute
This release includes updates to the fields in text encodings (CSV and JSON), you can read more about the changes here.
- Added
rtypefield to all schemas that was previously excluded
- Reordered fields of DataFrame and CSV encoded records to match historical API
- Fixed an issue where the
endparameter intimeseries.get_range_asyncdid not support a value ofNone - Fixed an issue where
timeseries.get_rangerequests would begin with an invalidpathparameter
- Fixed an issue with release tests
- Fixed an issue with release workflow
- Added
symbology_mapproperty toLiveclient - Added
optional_symbols_list_to_listparsing function - Changed
Live.add_callbackandLive.add_streamto accept an exception callback - Changed
Live.__iter__()andLive.__aiter__()to send the session start message if the session is connected but not started - Upgraded
databento-dbnto 0.7.1 - Removed exception chaining from exceptions emitted by the library
- Fixed issue where a large unreadable symbol subscription message could be sent
- Fixed an
ImportErrorobserved in Python 3.8
- Removed
Encoding,Compression,Schema, andSTypeenums as they are now exposed bydatabento-dbn - Renamed
funcparameter torecord_callbackforLive.add_callbackandLive.add_stream - Removed
optional_symbols_list_to_stringparsing function
- Fixed issue where
DBNStore.to_df()would raise an exception if no records were present - Fixed exception message when creating a DBNStore from an empty data source
- Added
DatabentoLiveProtocolclass - Added
metadataproperty toLive - Added support for reusing a
Liveclient to reconnect - Added support for emitting warnings in API response headers
- Relaxed 10 minute minimum request time range restriction
- Upgraded
aiohttpto 3.8.3 - Upgraded
numpyto 1.23.5 - Upgraded
pandasto 1.5.3 - Upgraded
requeststo 2.28.1 - Upgraded
zstandardto 0.21.0
- Removed support for Python 3.7
- Renamed
symboltoraw_symbolin definition schema when converting to a DataFrame - Changed iteration of
Liveto no longer yield DBN metadata - Changed
Livecallbacks to no longer yield DBN metadata
- Fixed issue where
Historical.timeseries.get_rangewould write empty files on error - Fixed issue with
numpytypes not being handled in symbols field - Fixed optional
endparameter forbatch.submit_job(...)
- Added support for
statisticsschema - Added batch download support data files (
condition.jsonandsymbology.json) - Renamed
booklevelMBP field tolevelsfor brevity and consistent naming - Upgraded
databento-dbnto 0.6.1
- Changed
flagsfield to an unsigned int - Changed default of
ts_outtoFalseforLiveclient - Changed
instrument_classDataFrame representation to be consistent with otherchartypes - Removed
open_interest_qtyandcleared_volumefields that were always unset from definition schema - Removed sunset
timeseries.streammethod - Removed support for legacy stypes
- Added
Liveclient for connecting to Databento's live service - Added
degraded,pendingandmissingcondition variants forbatch.get_dataset_condition - Added
last_modified_datefield tobatch.get_dataset_conditionresponse - Upgraded
databento-dbnto 0.5.0 - Upgraded
DBNStoreto support mixed schema types to support live data
- Changed iteration
DBNStoreto return record types fromdatabento-dbninstead of numpy arrays - Renamed the
costfield tocost_usdforbatch.submit_jobandbatch.list_jobs(value now expressed as US dollars) - Renamed
product_idfield toinstrument_id - Renamed
symbolfield in definitions toraw_symbol - Removed
dtypeproperty fromDBNStore - Removed
record_sizeproperty fromDBNStore - Removed
badcondition variant frombatch.get_dataset_condition - Removed unused
LiveGatewayenum - Removed
STATISTICSfromSchemaenum - Removed
STATUSfromSchemaenum - Removed
GATEWAY_ERRORfromSchemaenum - Removed
SYMBOL_MAPPINGfromSchemaenum
- Deprecated
SType.PRODUCT_IDtoSType.INSTRUMENT_ID - Deprecated
SType.NATIVEtoSType.RAW_SYMBOL - Deprecated
SType.SMARTtoSType.PARENTandSType.CONTINUOUS
- Changed
endandend_dateto optional to support new forward-fill behaviour - Upgraded
zstandardto 0.20.0
- Added support for
imbalanceschema - Added
instrument_class,strike_price, andstrike_price_currencyto definition schema - Changed parsing of
endandend_dateparams throughout the API - Improved exception messages for server and client timeouts
- Upgraded
databento-dbnto 0.4.3
- Renamed
Bentoclass toDBNStore - Removed
metadata.list_compressions(redundant with docs) - Removed
metadata.list_encodings(redundant with docs) - Removed optional
startandendparams frommetadata.list_schemas(redundant) - Removed
relatedandrelated_security_idfrom definition schema
- Improved use of the logging module
- Removed
record_countproperty from Bento class - Changed
metadata.get_dataset_conditionresponse to a list of condition per date
- Fixed bug in
Bentowhere invalid metadata would prevent iteration
- Added
from_dbnconvenience alias for loading DBN files
- Fixed bug in
Bentoiteration where multiple readers were created
- Added
batch.list_files(...)method - Added
batch.download(...)method - Added
batch.download_async(...)method - Integrated DBN encoding 0.3.2
- Dropped support for DBZ encoding
- Renamed
timeseries.streamtotimeseries.get_range - Renamed
timeseries.stream_asynctotimeseries.get_range_async - Changed
.to_df(...)pretty_tsdefault argument toTrue - Changed
.to_df(...)pretty_pxdefault argument toTrue - Changed
.to_df(...)map_symbolsdefault argument toTrue
- Deprecated
timeseries.stream(...)method - Deprecated
timeseries.stream_async(...)method
- Added support for
definitionschema - Updated
Flagsenum - Upgraded
dbz-pythonto 0.2.1 - Upgraded
zstandardto 0.19.0
- Added
metadata.get_dataset_conditionmethod toHistoricalclient - Upgraded
dbz-pythonto 0.2.0
- Fixed dataframe columns for derived data schemas (dropped
channel_id) - Fixed
batch.submit_jobrequests fordbzencoding - Updated
quickstart.ipynbjupyter notebook
- Upgraded
dbz-pythonto 0.1.5 - Added
map_symbolsoption for.to_df()(experimental)
- Initial release