Skip to content

Commit 79b11b0

Browse files
authored
VER: Release 0.57.1
See release notes.
2 parents e4cd057 + a813d7e commit 79b11b0

File tree

14 files changed

+74
-38
lines changed

14 files changed

+74
-38
lines changed

CHANGELOG.md

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
# Changelog
22

3+
## 0.57.1 - 2025-06-17
4+
5+
#### Enhancements
6+
- Changed the following Venue, Publisher, and Dataset descriptions:
7+
- "ICE Futures Europe (Financials)" renamed to "ICE Europe Financials"
8+
- "ICE Futures Europe (Commodities)" renamed to "ICE Europe Commodities"
9+
- Upgraded `databento-dbn` to 0.36.1
10+
- Fixed setting of ts_out property of DbnFsm based on decoded metadata. This
11+
was preventing ts_out from being correctly decoded in the Python DBNDecoder
12+
- Fixed decoding of `ts_out` with first records in DBNDecoder
13+
14+
#### Bug fixes
15+
- Fixed an issue where DBN records from the Live client where not having their `ts_out` populated
16+
317
## 0.57.0 - 2025-06-10
418

519
#### Enhancements
@@ -121,7 +135,7 @@
121135
## 0.50.0 - 2025-03-18
122136

123137
#### Enhancements
124-
- Added new venues, datasets, and publishers for ICE Futures US, ICE Futures Europe (Financial products), Eurex, and European Energy Exchange (EEX)
138+
- Added new venues, datasets, and publishers for ICE Futures US, ICE Europe Financials products, Eurex, and European Energy Exchange (EEX)
125139
- Added export of the following enums from `databento_dbn` to the root `databento` package:
126140
- `Action`
127141
- `InstrumentClass`
@@ -148,8 +162,7 @@
148162
## 0.49.0 - 2025-03-04
149163

150164
#### Enhancements
151-
- Added new venues, datasets, and publishers for ICE Futures US and for ICE Futures
152-
Europe (Financial products)
165+
- Added new venues, datasets, and publishers for ICE Futures US and for ICE Europe Financials products
153166
- Added a `keep_zip` parameter to `Historical.batch.download()`. When `True`, and downloading all files, the jobs contents will be saved as a ZIP file
154167
- Calling `Live.terminate()` will now attempt to write EOF before aborting the connection to help close the remote end
155168

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ The library is fully compatible with the latest distribution of Anaconda 3.9 and
3232
The minimum dependencies as found in the `pyproject.toml` are also listed below:
3333
- python = "^3.9"
3434
- aiohttp = "^3.8.3"
35-
- databento-dbn = "0.35.1"
35+
- databento-dbn = "0.36.1"
3636
- numpy= ">=1.23.5"
3737
- pandas = ">=1.5.3"
3838
- pip-system-certs = ">=4.0" (Windows only)

databento/common/dbnstore.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,8 @@ class DBNStore:
328328
Write the data to a file in JSON format.
329329
to_ndarray : np.ndarray
330330
The data as a numpy `ndarray`.
331+
to_parquet
332+
Write the data to a parquet file.
331333
332334
Raises
333335
------
@@ -662,7 +664,7 @@ def from_bytes(cls, data: BytesIO | bytes | IO[bytes]) -> DBNStore:
662664
663665
Parameters
664666
----------
665-
data : BytesIO or bytes
667+
data : BytesIO or bytes or IO[bytes]
666668
The bytes to read from.
667669
668670
Returns
@@ -698,7 +700,7 @@ def insert_symbology_json(
698700
self._instrument_map.clear()
699701
self._instrument_map.insert_json(json_data)
700702

701-
def replay(self, callback: Callable[[Any], None]) -> None:
703+
def replay(self, callback: Callable[[DBNRecord], None]) -> None:
702704
"""
703705
Replay data by passing records sequentially to the given callback.
704706
@@ -983,6 +985,8 @@ def to_parquet(
983985
984986
Parameters
985987
----------
988+
path: PathLike[str] or str
989+
The file path to write the data to.
986990
price_type : str, default "float"
987991
The price type to use for price fields.
988992
If "fixed", prices will have a type of `int` in fixed decimal format; each unit representing 1e-9 or 0.000000001.

databento/common/parsing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ def datetime_to_unix_nanoseconds(
351351

352352

353353
def optional_datetime_to_unix_nanoseconds(
354-
value: pd.Timestamp | str | int | None,
354+
value: pd.Timestamp | date | str | int | None,
355355
) -> int | None:
356356
"""
357357
Return a valid UNIX nanosecond timestamp from the given value (if not

databento/common/publishers.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ class Venue(StringyMixin, str, Enum):
9191
MXOP
9292
MEMX Options.
9393
IFEU
94-
ICE Futures Europe (Commodities).
94+
ICE Europe Commodities.
9595
NDEX
9696
ICE Endex.
9797
DBEQ
@@ -113,7 +113,7 @@ class Venue(StringyMixin, str, Enum):
113113
IFUS
114114
ICE Futures US.
115115
IFLL
116-
ICE Futures Europe (Financials).
116+
ICE Europe Financials.
117117
XEUR
118118
Eurex Exchange.
119119
XEER
@@ -470,7 +470,7 @@ def description(self) -> str:
470470
if self == Venue.MXOP:
471471
return "MEMX Options"
472472
if self == Venue.IFEU:
473-
return "ICE Futures Europe (Commodities)"
473+
return "ICE Europe Commodities"
474474
if self == Venue.NDEX:
475475
return "ICE Endex"
476476
if self == Venue.DBEQ:
@@ -492,7 +492,7 @@ def description(self) -> str:
492492
if self == Venue.IFUS:
493493
return "ICE Futures US"
494494
if self == Venue.IFLL:
495-
return "ICE Futures Europe (Financials)"
495+
return "ICE Europe Financials"
496496
if self == Venue.XEUR:
497497
return "Eurex Exchange"
498498
if self == Venue.XEER:
@@ -561,7 +561,7 @@ class Dataset(StringyMixin, str, Enum):
561561
XNAS_NLS
562562
Nasdaq NLS.
563563
IFEU_IMPACT
564-
ICE Futures Europe (Commodities) iMpact.
564+
ICE Europe Commodities iMpact.
565565
NDEX_IMPACT
566566
ICE Endex iMpact.
567567
EQUS_ALL
@@ -579,7 +579,7 @@ class Dataset(StringyMixin, str, Enum):
579579
IFUS_IMPACT
580580
ICE Futures US iMpact.
581581
IFLL_IMPACT
582-
ICE Futures Europe (Financials) iMpact.
582+
ICE Europe Financials iMpact.
583583
XEUR_EOBI
584584
Eurex EOBI.
585585
XEER_EOBI
@@ -856,7 +856,7 @@ def description(self) -> str:
856856
if self == Dataset.XNAS_NLS:
857857
return "Nasdaq NLS"
858858
if self == Dataset.IFEU_IMPACT:
859-
return "ICE Futures Europe (Commodities) iMpact"
859+
return "ICE Europe Commodities iMpact"
860860
if self == Dataset.NDEX_IMPACT:
861861
return "ICE Endex iMpact"
862862
if self == Dataset.EQUS_ALL:
@@ -874,7 +874,7 @@ def description(self) -> str:
874874
if self == Dataset.IFUS_IMPACT:
875875
return "ICE Futures US iMpact"
876876
if self == Dataset.IFLL_IMPACT:
877-
return "ICE Futures Europe (Financials) iMpact"
877+
return "ICE Europe Financials iMpact"
878878
if self == Dataset.XEUR_EOBI:
879879
return "Eurex EOBI"
880880
if self == Dataset.XEER_EOBI:
@@ -1001,7 +1001,7 @@ class Publisher(StringyMixin, str, Enum):
10011001
EQUS_PLUS_FINC
10021002
Databento US Equities Plus - FINRA/Nasdaq TRF Chicago.
10031003
IFEU_IMPACT_IFEU
1004-
ICE Futures Europe (Commodities).
1004+
ICE Europe Commodities.
10051005
NDEX_IMPACT_NDEX
10061006
ICE Endex.
10071007
DBEQ_BASIC_DBEQ
@@ -1055,7 +1055,7 @@ class Publisher(StringyMixin, str, Enum):
10551055
XNAS_BASIC_FINC
10561056
Nasdaq Basic - FINRA/Nasdaq TRF Chicago.
10571057
IFEU_IMPACT_XOFF
1058-
ICE Futures Europe - Off-Market Trades.
1058+
ICE Europe - Off-Market Trades.
10591059
NDEX_IMPACT_XOFF
10601060
ICE Endex - Off-Market Trades.
10611061
XNAS_NLS_XBOS
@@ -1085,9 +1085,9 @@ class Publisher(StringyMixin, str, Enum):
10851085
IFUS_IMPACT_XOFF
10861086
ICE Futures US - Off-Market Trades.
10871087
IFLL_IMPACT_IFLL
1088-
ICE Futures Europe (Financials).
1088+
ICE Europe Financials.
10891089
IFLL_IMPACT_XOFF
1090-
ICE Futures Europe (Financials) - Off-Market Trades.
1090+
ICE Europe Financials - Off-Market Trades.
10911091
XEUR_EOBI_XEUR
10921092
Eurex EOBI.
10931093
XEER_EOBI_XEER
@@ -2181,7 +2181,7 @@ def description(self) -> str:
21812181
if self == Publisher.EQUS_PLUS_FINC:
21822182
return "Databento US Equities Plus - FINRA/Nasdaq TRF Chicago"
21832183
if self == Publisher.IFEU_IMPACT_IFEU:
2184-
return "ICE Futures Europe (Commodities)"
2184+
return "ICE Europe Commodities"
21852185
if self == Publisher.NDEX_IMPACT_NDEX:
21862186
return "ICE Endex"
21872187
if self == Publisher.DBEQ_BASIC_DBEQ:
@@ -2235,7 +2235,7 @@ def description(self) -> str:
22352235
if self == Publisher.XNAS_BASIC_FINC:
22362236
return "Nasdaq Basic - FINRA/Nasdaq TRF Chicago"
22372237
if self == Publisher.IFEU_IMPACT_XOFF:
2238-
return "ICE Futures Europe - Off-Market Trades"
2238+
return "ICE Europe - Off-Market Trades"
22392239
if self == Publisher.NDEX_IMPACT_XOFF:
22402240
return "ICE Endex - Off-Market Trades"
22412241
if self == Publisher.XNAS_NLS_XBOS:
@@ -2265,9 +2265,9 @@ def description(self) -> str:
22652265
if self == Publisher.IFUS_IMPACT_XOFF:
22662266
return "ICE Futures US - Off-Market Trades"
22672267
if self == Publisher.IFLL_IMPACT_IFLL:
2268-
return "ICE Futures Europe (Financials)"
2268+
return "ICE Europe Financials"
22692269
if self == Publisher.IFLL_IMPACT_XOFF:
2270-
return "ICE Futures Europe (Financials) - Off-Market Trades"
2270+
return "ICE Europe Financials - Off-Market Trades"
22712271
if self == Publisher.XEUR_EOBI_XEUR:
22722272
return "Eurex EOBI"
22732273
if self == Publisher.XEER_EOBI_XEER:

databento/historical/api/batch.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ def submit_job(
184184

185185
def list_jobs(
186186
self,
187-
states: list[str] | str = "received,queued,processing,done",
187+
states: Iterable[str] | str = "received,queued,processing,done",
188188
since: pd.Timestamp | datetime | date | str | int | None = None,
189189
) -> list[dict[str, Any]]:
190190
"""
@@ -196,8 +196,8 @@ def list_jobs(
196196
197197
Parameters
198198
----------
199-
states : list[str] or str, optional {'received', 'queued', 'processing', 'done', 'expired'} # noqa
200-
The filter for jobs states as a list of comma separated values.
199+
states : Iterable[str] or str, optional {'received', 'queued', 'processing', 'done', 'expired'} # noqa
200+
The filter for jobs states as an iterable of comma separated values.
201201
since : pd.Timestamp, datetime, date, str, or int, optional
202202
The filter for timestamp submitted (will not include jobs prior to this).
203203

databento/historical/api/metadata.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def __init__(self, key: str, gateway: str) -> None:
3232
super().__init__(key=key, gateway=gateway)
3333
self._base_url = gateway + f"/v{API_VERSION}/metadata"
3434

35-
def list_publishers(self) -> list[dict[str, Any]]:
35+
def list_publishers(self) -> list[dict[str, int | str]]:
3636
"""
3737
Request all publishers from Databento.
3838
@@ -42,7 +42,7 @@ def list_publishers(self) -> list[dict[str, Any]]:
4242
4343
Returns
4444
-------
45-
list[dict[str, Any]]
45+
list[dict[str, int | str]]
4646
4747
"""
4848
response: Response = self._get(
@@ -121,7 +121,7 @@ def list_fields(
121121
self,
122122
schema: Schema | str,
123123
encoding: Encoding | str,
124-
) -> list[dict[str, Any]]:
124+
) -> list[dict[str, str]]:
125125
"""
126126
List all fields for a particular schema and encoding from Databento.
127127
@@ -136,7 +136,7 @@ def list_fields(
136136
137137
Returns
138138
-------
139-
list[dict[str, Any]]
139+
list[dict[str, str]]
140140
A list of field details.
141141
142142
"""
@@ -189,7 +189,7 @@ def get_dataset_condition(
189189
dataset: Dataset | str,
190190
start_date: date | str | None = None,
191191
end_date: date | str | None = None,
192-
) -> list[dict[str, str]]:
192+
) -> list[dict[str, str | None]]:
193193
"""
194194
Get the per date dataset conditions from Databento.
195195
@@ -210,7 +210,7 @@ def get_dataset_condition(
210210
211211
Returns
212212
-------
213-
list[dict[str, str]]
213+
list[dict[str, str | None]]
214214
215215
"""
216216
params: list[tuple[str, str | None]] = [

databento/historical/api/symbology.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def resolve(
4444
----------
4545
dataset : Dataset or str
4646
The dataset code (string identifier) for the request.
47-
symbols : Iterable[str | int] or str or int, optional
47+
symbols : Iterable[str | int] or str or int
4848
The symbols to resolve. Takes up to 2,000 symbols per request.
4949
stype_in : SType or str, default 'raw_symbol'
5050
The input symbology type to resolve from.

databento/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "0.57.0"
1+
__version__ = "0.57.1"

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "databento"
3-
version = "0.57.0"
3+
version = "0.57.1"
44
description = "Official Python client library for Databento"
55
authors = [
66
"Databento <support@databento.com>",
@@ -32,7 +32,7 @@ aiohttp = [
3232
{version = "^3.8.3", python = "<3.12"},
3333
{version = "^3.9.0", python = "^3.12"}
3434
]
35-
databento-dbn = "0.36.0"
35+
databento-dbn = "0.36.1"
3636
numpy = [
3737
{version = ">=1.23.5", python = "<3.12"},
3838
{version = ">=1.26.0", python = "^3.12"}

0 commit comments

Comments
 (0)