Skip to content

Commit d8d24e1

Browse files
committed
ADD: Add ICE US and financials publishers
1 parent ee1c63f commit d8d24e1

File tree

2 files changed

+90
-0
lines changed

2 files changed

+90
-0
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
## 0.49.0 - TBD
44

55
#### Enhancements
6+
- Added new venues, datasets, and publishers for ICE Futures US and for ICE Futures
7+
Europe (Financial products)
68
- 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
79
- Calling `Live.terminate()` will now attempt to write EOF before aborting the connection to help close the remote end
810

databento/common/publishers.py

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,10 @@ class Venue(StringyMixin, str, Enum):
110110
IntelligentCross ASPEN Inverted.
111111
EQUS
112112
Databento US Equities - Consolidated.
113+
IFUS
114+
ICE Futures US.
115+
IFLL
116+
ICE Futures Europe (Financials).
113117
114118
"""
115119

@@ -160,6 +164,8 @@ class Venue(StringyMixin, str, Enum):
160164
ASMT = "ASMT"
161165
ASPI = "ASPI"
162166
EQUS = "EQUS"
167+
IFUS = "IFUS"
168+
IFLL = "IFLL"
163169

164170
@classmethod
165171
def from_int(cls, value: int) -> Venue:
@@ -260,6 +266,10 @@ def from_int(cls, value: int) -> Venue:
260266
return Venue.ASPI
261267
if value == 47:
262268
return Venue.EQUS
269+
if value == 48:
270+
return Venue.IFUS
271+
if value == 49:
272+
return Venue.IFLL
263273
raise ValueError(f"Integer value {value} does not correspond with any Venue variant")
264274

265275
def to_int(self) -> int:
@@ -360,6 +370,10 @@ def to_int(self) -> int:
360370
return 46
361371
if self == Venue.EQUS:
362372
return 47
373+
if self == Venue.IFUS:
374+
return 48
375+
if self == Venue.IFLL:
376+
return 49
363377
raise ValueError("Invalid Venue")
364378

365379
@property
@@ -461,6 +475,10 @@ def description(self) -> str:
461475
return "IntelligentCross ASPEN Inverted"
462476
if self == Venue.EQUS:
463477
return "Databento US Equities - Consolidated"
478+
if self == Venue.IFUS:
479+
return "ICE Futures US"
480+
if self == Venue.IFLL:
481+
return "ICE Futures Europe (Financials)"
464482
raise ValueError("Unexpected Venue value")
465483

466484

@@ -540,6 +558,10 @@ class Dataset(StringyMixin, str, Enum):
540558
NYSE Trades and BBO.
541559
EQUS_MINI
542560
Databento US Equities Mini.
561+
IFUS_IMPACT
562+
ICE Futures US iMpact.
563+
IFLL_IMPACT
564+
ICE Futures Europe (Financials) iMpact.
543565
544566
"""
545567

@@ -578,6 +600,8 @@ class Dataset(StringyMixin, str, Enum):
578600
XCIS_TRADESBBO = "XCIS.TRADESBBO"
579601
XNYS_TRADESBBO = "XNYS.TRADESBBO"
580602
EQUS_MINI = "EQUS.MINI"
603+
IFUS_IMPACT = "IFUS.IMPACT"
604+
IFLL_IMPACT = "IFLL.IMPACT"
581605

582606
@classmethod
583607
def from_int(cls, value: int) -> Dataset:
@@ -654,6 +678,10 @@ def from_int(cls, value: int) -> Dataset:
654678
return Dataset.XNYS_TRADESBBO
655679
if value == 35:
656680
return Dataset.EQUS_MINI
681+
if value == 36:
682+
return Dataset.IFUS_IMPACT
683+
if value == 37:
684+
return Dataset.IFLL_IMPACT
657685
raise ValueError(f"Integer value {value} does not correspond with any Dataset variant")
658686

659687
def to_int(self) -> int:
@@ -730,6 +758,10 @@ def to_int(self) -> int:
730758
return 34
731759
if self == Dataset.EQUS_MINI:
732760
return 35
761+
if self == Dataset.IFUS_IMPACT:
762+
return 36
763+
if self == Dataset.IFLL_IMPACT:
764+
return 37
733765
raise ValueError("Invalid Dataset")
734766

735767
@property
@@ -807,6 +839,10 @@ def description(self) -> str:
807839
return "NYSE Trades and BBO"
808840
if self == Dataset.EQUS_MINI:
809841
return "Databento US Equities Mini"
842+
if self == Dataset.IFUS_IMPACT:
843+
return "ICE Futures US iMpact"
844+
if self == Dataset.IFLL_IMPACT:
845+
return "ICE Futures Europe (Financials) iMpact"
810846
raise ValueError("Unexpected Dataset value")
811847

812848

@@ -1008,6 +1044,14 @@ class Publisher(StringyMixin, str, Enum):
10081044
Databento US Equities Mini.
10091045
XNYS_TRADES_EQUS
10101046
NYSE Trades - Consolidated.
1047+
IFUS_IMPACT_IFUS
1048+
ICE Futures US.
1049+
IFUS_IMPACT_XOFF
1050+
ICE Futures US - Off-Market Trades.
1051+
IFLL_IMPACT_IFLL
1052+
ICE Futures Europe (Financials).
1053+
IFLL_IMPACT_XOFF
1054+
ICE Futures Europe (Financials) - Off-Market Trades.
10111055
10121056
"""
10131057

@@ -1107,6 +1151,10 @@ class Publisher(StringyMixin, str, Enum):
11071151
EQUS_ALL_EQUS = "EQUS.ALL.EQUS"
11081152
EQUS_MINI_EQUS = "EQUS.MINI.EQUS"
11091153
XNYS_TRADES_EQUS = "XNYS.TRADES.EQUS"
1154+
IFUS_IMPACT_IFUS = "IFUS.IMPACT.IFUS"
1155+
IFUS_IMPACT_XOFF = "IFUS.IMPACT.XOFF"
1156+
IFLL_IMPACT_IFLL = "IFLL.IMPACT.IFLL"
1157+
IFLL_IMPACT_XOFF = "IFLL.IMPACT.XOFF"
11101158

11111159
@classmethod
11121160
def from_int(cls, value: int) -> Publisher:
@@ -1305,6 +1353,14 @@ def from_int(cls, value: int) -> Publisher:
13051353
return Publisher.EQUS_MINI_EQUS
13061354
if value == 96:
13071355
return Publisher.XNYS_TRADES_EQUS
1356+
if value == 97:
1357+
return Publisher.IFUS_IMPACT_IFUS
1358+
if value == 98:
1359+
return Publisher.IFUS_IMPACT_XOFF
1360+
if value == 99:
1361+
return Publisher.IFLL_IMPACT_IFLL
1362+
if value == 100:
1363+
return Publisher.IFLL_IMPACT_XOFF
13081364
raise ValueError(f"Integer value {value} does not correspond with any Publisher variant")
13091365

13101366
def to_int(self) -> int:
@@ -1503,6 +1559,14 @@ def to_int(self) -> int:
15031559
return 95
15041560
if self == Publisher.XNYS_TRADES_EQUS:
15051561
return 96
1562+
if self == Publisher.IFUS_IMPACT_IFUS:
1563+
return 97
1564+
if self == Publisher.IFUS_IMPACT_XOFF:
1565+
return 98
1566+
if self == Publisher.IFLL_IMPACT_IFLL:
1567+
return 99
1568+
if self == Publisher.IFLL_IMPACT_XOFF:
1569+
return 100
15061570
raise ValueError("Invalid Publisher")
15071571

15081572
@property
@@ -1702,6 +1766,14 @@ def venue(self) -> Venue:
17021766
return Venue.EQUS
17031767
if self == Publisher.XNYS_TRADES_EQUS:
17041768
return Venue.EQUS
1769+
if self == Publisher.IFUS_IMPACT_IFUS:
1770+
return Venue.IFUS
1771+
if self == Publisher.IFUS_IMPACT_XOFF:
1772+
return Venue.XOFF
1773+
if self == Publisher.IFLL_IMPACT_IFLL:
1774+
return Venue.IFLL
1775+
if self == Publisher.IFLL_IMPACT_XOFF:
1776+
return Venue.XOFF
17051777
raise ValueError("Unexpected Publisher value")
17061778

17071779
@property
@@ -1901,6 +1973,14 @@ def dataset(self) -> Dataset:
19011973
return Dataset.EQUS_MINI
19021974
if self == Publisher.XNYS_TRADES_EQUS:
19031975
return Dataset.XNYS_TRADES
1976+
if self == Publisher.IFUS_IMPACT_IFUS:
1977+
return Dataset.IFUS_IMPACT
1978+
if self == Publisher.IFUS_IMPACT_XOFF:
1979+
return Dataset.IFUS_IMPACT
1980+
if self == Publisher.IFLL_IMPACT_IFLL:
1981+
return Dataset.IFLL_IMPACT
1982+
if self == Publisher.IFLL_IMPACT_XOFF:
1983+
return Dataset.IFLL_IMPACT
19041984
raise ValueError("Unexpected Publisher value")
19051985

19061986
@property
@@ -2100,4 +2180,12 @@ def description(self) -> str:
21002180
return "Databento US Equities Mini"
21012181
if self == Publisher.XNYS_TRADES_EQUS:
21022182
return "NYSE Trades - Consolidated"
2183+
if self == Publisher.IFUS_IMPACT_IFUS:
2184+
return "ICE Futures US"
2185+
if self == Publisher.IFUS_IMPACT_XOFF:
2186+
return "ICE Futures US - Off-Market Trades"
2187+
if self == Publisher.IFLL_IMPACT_IFLL:
2188+
return "ICE Futures Europe (Financials)"
2189+
if self == Publisher.IFLL_IMPACT_XOFF:
2190+
return "ICE Futures Europe (Financials) - Off-Market Trades"
21032191
raise ValueError("Unexpected Publisher value")

0 commit comments

Comments
 (0)