Skip to content

Commit 25eef4e

Browse files
committed
VER: Release 0.87.0
2 parents e675ef3 + 6dacf66 commit 25eef4e

9 files changed

Lines changed: 344 additions & 38 deletions

File tree

‎CHANGELOG.md‎

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

3+
## 0.87.0 - 2026-09-22
4+
5+
#### Enhancements
6+
- Added new venue, dataset, and publishers for Databento Core Indices
7+
- Asynchronous iteration of `Live` no longer waits for records on a thread pool executor,
8+
reducing per-record overhead
9+
- Upgraded `databento-dbn` to 0.70.0
10+
11+
#### Bug fixes
12+
- Fixed an issue where cancelling asynchronous iteration of `Live` could drop a record
13+
314
## 0.86.0 - 2026-09-01
415

516
#### Enhancements

‎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 distributions of Anaconda 2023.x and above.
3232
The minimum dependencies as found in the `pyproject.toml` are also listed below:
3333
- python = "^3.10"
3434
- aiohttp = "^3.8.3"
35-
- databento-dbn = "~0.69.0"
35+
- databento-dbn = "~0.70.0"
3636
- numpy = ">=1.23.5"
3737
- pandas = ">=1.5.3"
3838
- pip-system-certs = ">=4.0" (Windows only)

‎databento/common/publishers.py‎

Lines changed: 135 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -150,14 +150,16 @@ class Venue(StringyMixin, str, Enum):
150150
CGIF Crypto Currency.
151151
CGI
152152
CGIF CBOE Global Indices.
153-
DEF
153+
CDEF
154154
CGIF Definitions.
155155
XTKS
156156
Tokyo Stock Exchange.
157157
XTKT
158158
Tokyo Commodity Exchange.
159159
XOSE
160160
Osaka Exchange.
161+
DBIX
162+
Databento Core Indices.
161163
162164
"""
163165

@@ -228,10 +230,11 @@ class Venue(StringyMixin, str, Enum):
228230
MSTAR = "MSTAR"
229231
CCCY = "CCCY"
230232
CGI = "CGI"
231-
DEF = "DEF"
233+
CDEF = "CDEF"
232234
XTKS = "XTKS"
233235
XTKT = "XTKT"
234236
XOSE = "XOSE"
237+
DBIX = "DBIX"
235238

236239
@classmethod
237240
def from_int(cls, value: int) -> Venue:
@@ -373,13 +376,15 @@ def from_int(cls, value: int) -> Venue:
373376
if value == 67:
374377
return Venue.CGI
375378
if value == 68:
376-
return Venue.DEF
379+
return Venue.CDEF
377380
if value == 69:
378381
return Venue.XTKS
379382
if value == 70:
380383
return Venue.XTKT
381384
if value == 71:
382385
return Venue.XOSE
386+
if value == 72:
387+
return Venue.DBIX
383388
raise ValueError(f"Integer value {value} does not correspond with any Venue variant")
384389

385390
def to_int(self) -> int:
@@ -520,14 +525,16 @@ def to_int(self) -> int:
520525
return 66
521526
if self == Venue.CGI:
522527
return 67
523-
if self == Venue.DEF:
528+
if self == Venue.CDEF:
524529
return 68
525530
if self == Venue.XTKS:
526531
return 69
527532
if self == Venue.XTKT:
528533
return 70
529534
if self == Venue.XOSE:
530535
return 71
536+
if self == Venue.DBIX:
537+
return 72
531538
raise ValueError("Invalid Venue")
532539

533540
@property
@@ -669,14 +676,16 @@ def description(self) -> str:
669676
return "CGIF Crypto Currency"
670677
if self == Venue.CGI:
671678
return "CGIF CBOE Global Indices"
672-
if self == Venue.DEF:
679+
if self == Venue.CDEF:
673680
return "CGIF Definitions"
674681
if self == Venue.XTKS:
675682
return "Tokyo Stock Exchange"
676683
if self == Venue.XTKT:
677684
return "Tokyo Commodity Exchange"
678685
if self == Venue.XOSE:
679686
return "Osaka Exchange"
687+
if self == Venue.DBIX:
688+
return "Databento Core Indices"
680689
raise ValueError("Unexpected Venue value")
681690

682691

@@ -790,6 +799,8 @@ class Dataset(StringyMixin, str, Enum):
790799
JPX JGATE3.0-ITCH.
791800
XOSE_ITCH
792801
JPX JGATE3.0-ITCH.
802+
DBIX_CORE
803+
Databento Core Indices.
793804
794805
"""
795806

@@ -845,6 +856,7 @@ class Dataset(StringyMixin, str, Enum):
845856
XTKS_FLEX = "XTKS.FLEX"
846857
XTKT_ITCH = "XTKT.ITCH"
847858
XOSE_ITCH = "XOSE.ITCH"
859+
DBIX_CORE = "DBIX.CORE"
848860

849861
@classmethod
850862
def from_int(cls, value: int) -> Dataset:
@@ -955,6 +967,8 @@ def from_int(cls, value: int) -> Dataset:
955967
return Dataset.XTKT_ITCH
956968
if value == 52:
957969
return Dataset.XOSE_ITCH
970+
if value == 53:
971+
return Dataset.DBIX_CORE
958972
raise ValueError(f"Integer value {value} does not correspond with any Dataset variant")
959973

960974
def to_int(self) -> int:
@@ -1065,6 +1079,8 @@ def to_int(self) -> int:
10651079
return 51
10661080
if self == Dataset.XOSE_ITCH:
10671081
return 52
1082+
if self == Dataset.DBIX_CORE:
1083+
return 53
10681084
raise ValueError("Invalid Dataset")
10691085

10701086
@property
@@ -1176,6 +1192,8 @@ def description(self) -> str:
11761192
return "JPX JGATE3.0-ITCH"
11771193
if self == Dataset.XOSE_ITCH:
11781194
return "JPX JGATE3.0-ITCH"
1195+
if self == Dataset.DBIX_CORE:
1196+
return "Databento Core Indices"
11791197
raise ValueError("Unexpected Dataset value")
11801198

11811199

@@ -1467,14 +1485,30 @@ class Publisher(StringyMixin, str, Enum):
14671485
CGIF - Crypto Currency.
14681486
CGI_CGIF_CGI
14691487
CGIF - CBOE Global Indices.
1470-
MAIN_CGIF_DEF
1488+
MAIN_CGIF_CDEF
14711489
CGIF - Definitions.
14721490
XTKS_FLEX_XTKS
14731491
JPX - Tokyo Stock Exchange.
14741492
XTKT_ITCH_XTKT
14751493
JPX - Tokyo Commodity Exchange.
14761494
XOSE_ITCH_XOSE
14771495
JPX - Osaka Exchange.
1496+
DBIX_CORE_MAIN
1497+
CGIF - Main Feed.
1498+
DBIX_CORE_MSCI
1499+
CGIF - Morgan Stanley Capital International.
1500+
DBIX_CORE_FTSE
1501+
CGIF - FTSE Russell.
1502+
DBIX_CORE_INAV
1503+
CGIF - Intraday Net Asset Values.
1504+
DBIX_CORE_MSTAR
1505+
CGIF - Morning Star.
1506+
DBIX_CORE_CCCY
1507+
CGIF - Crypto Currency.
1508+
DBIX_CORE_CGI
1509+
CGIF - CBOE Global Indices.
1510+
DBIX_CORE_CDEF
1511+
CGIF - Definitions.
14781512
14791513
"""
14801514

@@ -1619,10 +1653,18 @@ class Publisher(StringyMixin, str, Enum):
16191653
MSTAR_CGIF_MSTAR = "MSTAR.CGIF.MSTAR"
16201654
CCCY_CGIF_CCCY = "CCCY.CGIF.CCCY"
16211655
CGI_CGIF_CGI = "CGI.CGIF.CGI"
1622-
MAIN_CGIF_DEF = "MAIN.CGIF.DEF"
1656+
MAIN_CGIF_CDEF = "MAIN.CGIF.CDEF"
16231657
XTKS_FLEX_XTKS = "XTKS.FLEX.XTKS"
16241658
XTKT_ITCH_XTKT = "XTKT.ITCH.XTKT"
16251659
XOSE_ITCH_XOSE = "XOSE.ITCH.XOSE"
1660+
DBIX_CORE_MAIN = "DBIX.CORE.MAIN"
1661+
DBIX_CORE_MSCI = "DBIX.CORE.MSCI"
1662+
DBIX_CORE_FTSE = "DBIX.CORE.FTSE"
1663+
DBIX_CORE_INAV = "DBIX.CORE.INAV"
1664+
DBIX_CORE_MSTAR = "DBIX.CORE.MSTAR"
1665+
DBIX_CORE_CCCY = "DBIX.CORE.CCCY"
1666+
DBIX_CORE_CGI = "DBIX.CORE.CGI"
1667+
DBIX_CORE_CDEF = "DBIX.CORE.CDEF"
16261668

16271669
@classmethod
16281670
def from_int(cls, value: int) -> Publisher:
@@ -1912,13 +1954,29 @@ def from_int(cls, value: int) -> Publisher:
19121954
if value == 141:
19131955
return Publisher.CGI_CGIF_CGI
19141956
if value == 142:
1915-
return Publisher.MAIN_CGIF_DEF
1957+
return Publisher.MAIN_CGIF_CDEF
19161958
if value == 143:
19171959
return Publisher.XTKS_FLEX_XTKS
19181960
if value == 144:
19191961
return Publisher.XTKT_ITCH_XTKT
19201962
if value == 145:
19211963
return Publisher.XOSE_ITCH_XOSE
1964+
if value == 146:
1965+
return Publisher.DBIX_CORE_MAIN
1966+
if value == 147:
1967+
return Publisher.DBIX_CORE_MSCI
1968+
if value == 148:
1969+
return Publisher.DBIX_CORE_FTSE
1970+
if value == 149:
1971+
return Publisher.DBIX_CORE_INAV
1972+
if value == 150:
1973+
return Publisher.DBIX_CORE_MSTAR
1974+
if value == 151:
1975+
return Publisher.DBIX_CORE_CCCY
1976+
if value == 152:
1977+
return Publisher.DBIX_CORE_CGI
1978+
if value == 153:
1979+
return Publisher.DBIX_CORE_CDEF
19221980
raise ValueError(f"Integer value {value} does not correspond with any Publisher variant")
19231981

19241982
def to_int(self) -> int:
@@ -2207,14 +2265,30 @@ def to_int(self) -> int:
22072265
return 140
22082266
if self == Publisher.CGI_CGIF_CGI:
22092267
return 141
2210-
if self == Publisher.MAIN_CGIF_DEF:
2268+
if self == Publisher.MAIN_CGIF_CDEF:
22112269
return 142
22122270
if self == Publisher.XTKS_FLEX_XTKS:
22132271
return 143
22142272
if self == Publisher.XTKT_ITCH_XTKT:
22152273
return 144
22162274
if self == Publisher.XOSE_ITCH_XOSE:
22172275
return 145
2276+
if self == Publisher.DBIX_CORE_MAIN:
2277+
return 146
2278+
if self == Publisher.DBIX_CORE_MSCI:
2279+
return 147
2280+
if self == Publisher.DBIX_CORE_FTSE:
2281+
return 148
2282+
if self == Publisher.DBIX_CORE_INAV:
2283+
return 149
2284+
if self == Publisher.DBIX_CORE_MSTAR:
2285+
return 150
2286+
if self == Publisher.DBIX_CORE_CCCY:
2287+
return 151
2288+
if self == Publisher.DBIX_CORE_CGI:
2289+
return 152
2290+
if self == Publisher.DBIX_CORE_CDEF:
2291+
return 153
22182292
raise ValueError("Invalid Publisher")
22192293

22202294
@property
@@ -2504,14 +2578,30 @@ def venue(self) -> Venue:
25042578
return Venue.CCCY
25052579
if self == Publisher.CGI_CGIF_CGI:
25062580
return Venue.CGI
2507-
if self == Publisher.MAIN_CGIF_DEF:
2508-
return Venue.DEF
2581+
if self == Publisher.MAIN_CGIF_CDEF:
2582+
return Venue.CDEF
25092583
if self == Publisher.XTKS_FLEX_XTKS:
25102584
return Venue.XTKS
25112585
if self == Publisher.XTKT_ITCH_XTKT:
25122586
return Venue.XTKT
25132587
if self == Publisher.XOSE_ITCH_XOSE:
25142588
return Venue.XOSE
2589+
if self == Publisher.DBIX_CORE_MAIN:
2590+
return Venue.MAIN
2591+
if self == Publisher.DBIX_CORE_MSCI:
2592+
return Venue.MSCI
2593+
if self == Publisher.DBIX_CORE_FTSE:
2594+
return Venue.FTSE
2595+
if self == Publisher.DBIX_CORE_INAV:
2596+
return Venue.INAV
2597+
if self == Publisher.DBIX_CORE_MSTAR:
2598+
return Venue.MSTAR
2599+
if self == Publisher.DBIX_CORE_CCCY:
2600+
return Venue.CCCY
2601+
if self == Publisher.DBIX_CORE_CGI:
2602+
return Venue.CGI
2603+
if self == Publisher.DBIX_CORE_CDEF:
2604+
return Venue.CDEF
25152605
raise ValueError("Unexpected Publisher value")
25162606

25172607
@property
@@ -2801,14 +2891,30 @@ def dataset(self) -> Dataset:
28012891
return Dataset.CCCY_CGIF
28022892
if self == Publisher.CGI_CGIF_CGI:
28032893
return Dataset.CGI_CGIF
2804-
if self == Publisher.MAIN_CGIF_DEF:
2894+
if self == Publisher.MAIN_CGIF_CDEF:
28052895
return Dataset.MAIN_CGIF
28062896
if self == Publisher.XTKS_FLEX_XTKS:
28072897
return Dataset.XTKS_FLEX
28082898
if self == Publisher.XTKT_ITCH_XTKT:
28092899
return Dataset.XTKT_ITCH
28102900
if self == Publisher.XOSE_ITCH_XOSE:
28112901
return Dataset.XOSE_ITCH
2902+
if self == Publisher.DBIX_CORE_MAIN:
2903+
return Dataset.DBIX_CORE
2904+
if self == Publisher.DBIX_CORE_MSCI:
2905+
return Dataset.DBIX_CORE
2906+
if self == Publisher.DBIX_CORE_FTSE:
2907+
return Dataset.DBIX_CORE
2908+
if self == Publisher.DBIX_CORE_INAV:
2909+
return Dataset.DBIX_CORE
2910+
if self == Publisher.DBIX_CORE_MSTAR:
2911+
return Dataset.DBIX_CORE
2912+
if self == Publisher.DBIX_CORE_CCCY:
2913+
return Dataset.DBIX_CORE
2914+
if self == Publisher.DBIX_CORE_CGI:
2915+
return Dataset.DBIX_CORE
2916+
if self == Publisher.DBIX_CORE_CDEF:
2917+
return Dataset.DBIX_CORE
28122918
raise ValueError("Unexpected Publisher value")
28132919

28142920
@property
@@ -3098,12 +3204,28 @@ def description(self) -> str:
30983204
return "CGIF - Crypto Currency"
30993205
if self == Publisher.CGI_CGIF_CGI:
31003206
return "CGIF - CBOE Global Indices"
3101-
if self == Publisher.MAIN_CGIF_DEF:
3207+
if self == Publisher.MAIN_CGIF_CDEF:
31023208
return "CGIF - Definitions"
31033209
if self == Publisher.XTKS_FLEX_XTKS:
31043210
return "JPX - Tokyo Stock Exchange"
31053211
if self == Publisher.XTKT_ITCH_XTKT:
31063212
return "JPX - Tokyo Commodity Exchange"
31073213
if self == Publisher.XOSE_ITCH_XOSE:
31083214
return "JPX - Osaka Exchange"
3215+
if self == Publisher.DBIX_CORE_MAIN:
3216+
return "CGIF - Main Feed"
3217+
if self == Publisher.DBIX_CORE_MSCI:
3218+
return "CGIF - Morgan Stanley Capital International"
3219+
if self == Publisher.DBIX_CORE_FTSE:
3220+
return "CGIF - FTSE Russell"
3221+
if self == Publisher.DBIX_CORE_INAV:
3222+
return "CGIF - Intraday Net Asset Values"
3223+
if self == Publisher.DBIX_CORE_MSTAR:
3224+
return "CGIF - Morning Star"
3225+
if self == Publisher.DBIX_CORE_CCCY:
3226+
return "CGIF - Crypto Currency"
3227+
if self == Publisher.DBIX_CORE_CGI:
3228+
return "CGIF - CBOE Global Indices"
3229+
if self == Publisher.DBIX_CORE_CDEF:
3230+
return "CGIF - Definitions"
31093231
raise ValueError("Unexpected Publisher value")

0 commit comments

Comments
 (0)