Skip to content

Commit 9f99bc9

Browse files
author
Jack Culhane
committed
ADD: Add new OPRA participants IEX and MX2 Options
1 parent 412468c commit 9f99bc9

File tree

2 files changed

+49
-0
lines changed

2 files changed

+49
-0
lines changed

CHANGELOG.md

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

3+
## 0.76.0 - TBD
4+
5+
#### Enhancements
6+
- Added new publisher values for OPRA MEMX MX2 Options and IEX Options
7+
38
## 0.75.0 - 2026-04-07
49

510
#### Enhancements

databento/common/publishers.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,10 @@ class Venue(StringyMixin, str, Enum):
122122
Cboe Futures Exchange.
123123
OCEA
124124
Blue Ocean ATS.
125+
MXTO
126+
MX2 Options.
127+
IEXO
128+
IEX Options LLC.
125129
126130
"""
127131

@@ -178,6 +182,8 @@ class Venue(StringyMixin, str, Enum):
178182
XEEE = "XEEE"
179183
XCBF = "XCBF"
180184
OCEA = "OCEA"
185+
MXTO = "MXTO"
186+
IEXO = "IEXO"
181187

182188
@classmethod
183189
def from_int(cls, value: int) -> Venue:
@@ -290,6 +296,10 @@ def from_int(cls, value: int) -> Venue:
290296
return Venue.XCBF
291297
if value == 53:
292298
return Venue.OCEA
299+
if value == 54:
300+
return Venue.MXTO
301+
if value == 55:
302+
return Venue.IEXO
293303
raise ValueError(f"Integer value {value} does not correspond with any Venue variant")
294304

295305
def to_int(self) -> int:
@@ -402,6 +412,10 @@ def to_int(self) -> int:
402412
return 52
403413
if self == Venue.OCEA:
404414
return 53
415+
if self == Venue.MXTO:
416+
return 54
417+
if self == Venue.IEXO:
418+
return 55
405419
raise ValueError("Invalid Venue")
406420

407421
@property
@@ -515,6 +529,10 @@ def description(self) -> str:
515529
return "Cboe Futures Exchange"
516530
if self == Venue.OCEA:
517531
return "Blue Ocean ATS"
532+
if self == Venue.MXTO:
533+
return "MX2 Options"
534+
if self == Venue.IEXO:
535+
return "IEX Options LLC"
518536
raise ValueError("Unexpected Venue value")
519537

520538

@@ -1138,6 +1156,10 @@ class Publisher(StringyMixin, str, Enum):
11381156
Cboe Futures Exchange (CFE) - Off-Market Trades.
11391157
OCEA_MEMOIR_OCEA
11401158
Blue Ocean ATS MEMOIR.
1159+
OPRA_PILLAR_MXTO
1160+
OPRA - MEMX MX2 Options.
1161+
OPRA_PILLAR_IEXO
1162+
OPRA - IEX Options LLC.
11411163
11421164
"""
11431165

@@ -1248,6 +1270,8 @@ class Publisher(StringyMixin, str, Enum):
12481270
XCBF_PITCH_XCBF = "XCBF.PITCH.XCBF"
12491271
XCBF_PITCH_XOFF = "XCBF.PITCH.XOFF"
12501272
OCEA_MEMOIR_OCEA = "OCEA.MEMOIR.OCEA"
1273+
OPRA_PILLAR_MXTO = "OPRA.PILLAR.MXTO"
1274+
OPRA_PILLAR_IEXO = "OPRA.PILLAR.IEXO"
12511275

12521276
@classmethod
12531277
def from_int(cls, value: int) -> Publisher:
@@ -1468,6 +1492,10 @@ def from_int(cls, value: int) -> Publisher:
14681492
return Publisher.XCBF_PITCH_XOFF
14691493
if value == 107:
14701494
return Publisher.OCEA_MEMOIR_OCEA
1495+
if value == 108:
1496+
return Publisher.OPRA_PILLAR_MXTO
1497+
if value == 109:
1498+
return Publisher.OPRA_PILLAR_IEXO
14711499
raise ValueError(f"Integer value {value} does not correspond with any Publisher variant")
14721500

14731501
def to_int(self) -> int:
@@ -1688,6 +1716,10 @@ def to_int(self) -> int:
16881716
return 106
16891717
if self == Publisher.OCEA_MEMOIR_OCEA:
16901718
return 107
1719+
if self == Publisher.OPRA_PILLAR_MXTO:
1720+
return 108
1721+
if self == Publisher.OPRA_PILLAR_IEXO:
1722+
return 109
16911723
raise ValueError("Invalid Publisher")
16921724

16931725
@property
@@ -1909,6 +1941,10 @@ def venue(self) -> Venue:
19091941
return Venue.XOFF
19101942
if self == Publisher.OCEA_MEMOIR_OCEA:
19111943
return Venue.OCEA
1944+
if self == Publisher.OPRA_PILLAR_MXTO:
1945+
return Venue.MXTO
1946+
if self == Publisher.OPRA_PILLAR_IEXO:
1947+
return Venue.IEXO
19121948
raise ValueError("Unexpected Publisher value")
19131949

19141950
@property
@@ -2130,6 +2166,10 @@ def dataset(self) -> Dataset:
21302166
return Dataset.XCBF_PITCH
21312167
if self == Publisher.OCEA_MEMOIR_OCEA:
21322168
return Dataset.OCEA_MEMOIR
2169+
if self == Publisher.OPRA_PILLAR_MXTO:
2170+
return Dataset.OPRA_PILLAR
2171+
if self == Publisher.OPRA_PILLAR_IEXO:
2172+
return Dataset.OPRA_PILLAR
21332173
raise ValueError("Unexpected Publisher value")
21342174

21352175
@property
@@ -2351,4 +2391,8 @@ def description(self) -> str:
23512391
return "Cboe Futures Exchange (CFE) - Off-Market Trades"
23522392
if self == Publisher.OCEA_MEMOIR_OCEA:
23532393
return "Blue Ocean ATS MEMOIR"
2394+
if self == Publisher.OPRA_PILLAR_MXTO:
2395+
return "OPRA - MEMX MX2 Options"
2396+
if self == Publisher.OPRA_PILLAR_IEXO:
2397+
return "OPRA - IEX Options LLC"
23542398
raise ValueError("Unexpected Publisher value")

0 commit comments

Comments
 (0)