Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog

## 0.31.0 - 2025-03-18

### Enhancements
- Added new venues, datasets, and publishers for ICE Futures US, ICE Futures Europe
(Financial products), Eurex, and European Energy Exchange (EEX)

## 0.30.0 - 2025-02-11

### Enhancements
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.14)
# Project details
#

project("databento" VERSION 0.30.0 LANGUAGES CXX)
project("databento" VERSION 0.31.0 LANGUAGES CXX)
string(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UPPERCASE)

#
Expand Down
28 changes: 28 additions & 0 deletions include/databento/publishers.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,14 @@ enum class Venue : std::uint16_t {
Aspi = 46,
// Databento US Equities - Consolidated
Equs = 47,
// ICE Futures US
Ifus = 48,
// ICE Futures Europe (Financials)
Ifll = 49,
// Eurex Exchange
Xeur = 50,
// European Energy Exchange
Xeer = 51,
};

// A source of data.
Expand Down Expand Up @@ -175,6 +183,14 @@ enum class Dataset : std::uint16_t {
XnysTradesbbo = 34,
// Databento US Equities Mini
EqusMini = 35,
// ICE Futures US iMpact
IfusImpact = 36,
// ICE Futures Europe (Financials) iMpact
IfllImpact = 37,
// Eurex EOBI
XeurEobi = 38,
// European Energy Exchange EOBI
XeerEobi = 39,
};

// A specific Venue from a specific data source.
Expand Down Expand Up @@ -371,6 +387,18 @@ enum class Publisher : std::uint16_t {
EqusMiniEqus = 95,
// NYSE Trades - Consolidated
XnysTradesEqus = 96,
// ICE Futures US
IfusImpactIfus = 97,
// ICE Futures US - Off-Market Trades
IfusImpactXoff = 98,
// ICE Futures Europe (Financials)
IfllImpactIfll = 99,
// ICE Futures Europe (Financials) - Off-Market Trades
IfllImpactXoff = 100,
// Eurex EOBI
XeurEobiXeur = 101,
// European Energy Exchange EOBI
XeerEobiXeer = 102,
};

// Get a Publisher's Venue.
Expand Down
2 changes: 1 addition & 1 deletion pkg/PKGBUILD
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Maintainer: Databento <support@databento.com>
_pkgname=databento-cpp
pkgname=databento-cpp-git
pkgver=0.30.0
pkgver=0.31.0
pkgrel=1
pkgdesc="Official C++ client for Databento"
arch=('any')
Expand Down
120 changes: 120 additions & 0 deletions src/publishers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,18 @@ const char* ToString(Venue venue) {
case Venue::Equs: {
return "EQUS";
}
case Venue::Ifus: {
return "IFUS";
}
case Venue::Ifll: {
return "IFLL";
}
case Venue::Xeur: {
return "XEUR";
}
case Venue::Xeer: {
return "XEER";
}
default: {
return "Unknown";
}
Expand Down Expand Up @@ -306,6 +318,18 @@ Venue FromString(const std::string& str) {
if (str == "EQUS") {
return Venue::Equs;
}
if (str == "IFUS") {
return Venue::Ifus;
}
if (str == "IFLL") {
return Venue::Ifll;
}
if (str == "XEUR") {
return Venue::Xeur;
}
if (str == "XEER") {
return Venue::Xeer;
}
throw InvalidArgumentError{"FromString<Venue>", "str",
"unknown value '" + str + '\''};
}
Expand Down Expand Up @@ -417,6 +441,18 @@ const char* ToString(Dataset dataset) {
case Dataset::EqusMini: {
return "EQUS.MINI";
}
case Dataset::IfusImpact: {
return "IFUS.IMPACT";
}
case Dataset::IfllImpact: {
return "IFLL.IMPACT";
}
case Dataset::XeurEobi: {
return "XEUR.EOBI";
}
case Dataset::XeerEobi: {
return "XEER.EOBI";
}
default: {
return "Unknown";
}
Expand Down Expand Up @@ -535,6 +571,18 @@ Dataset FromString(const std::string& str) {
if (str == "EQUS.MINI") {
return Dataset::EqusMini;
}
if (str == "IFUS.IMPACT") {
return Dataset::IfusImpact;
}
if (str == "IFLL.IMPACT") {
return Dataset::IfllImpact;
}
if (str == "XEUR.EOBI") {
return Dataset::XeurEobi;
}
if (str == "XEER.EOBI") {
return Dataset::XeerEobi;
}
throw InvalidArgumentError{"FromString<Dataset>", "str",
"unknown value '" + str + '\''};
}
Expand Down Expand Up @@ -829,6 +877,24 @@ Venue PublisherVenue(Publisher publisher) {
case Publisher::XnysTradesEqus: {
return Venue::Equs;
}
case Publisher::IfusImpactIfus: {
return Venue::Ifus;
}
case Publisher::IfusImpactXoff: {
return Venue::Xoff;
}
case Publisher::IfllImpactIfll: {
return Venue::Ifll;
}
case Publisher::IfllImpactXoff: {
return Venue::Xoff;
}
case Publisher::XeurEobiXeur: {
return Venue::Xeur;
}
case Publisher::XeerEobiXeer: {
return Venue::Xeer;
}
default: {
throw InvalidArgumentError{
"PublisherVenue", "publisher",
Expand Down Expand Up @@ -1127,6 +1193,24 @@ Dataset PublisherDataset(Publisher publisher) {
case Publisher::XnysTradesEqus: {
return Dataset::XnysTrades;
}
case Publisher::IfusImpactIfus: {
return Dataset::IfusImpact;
}
case Publisher::IfusImpactXoff: {
return Dataset::IfusImpact;
}
case Publisher::IfllImpactIfll: {
return Dataset::IfllImpact;
}
case Publisher::IfllImpactXoff: {
return Dataset::IfllImpact;
}
case Publisher::XeurEobiXeur: {
return Dataset::XeurEobi;
}
case Publisher::XeerEobiXeer: {
return Dataset::XeerEobi;
}
default: {
throw InvalidArgumentError{
"PublisherDataset", "publisher",
Expand Down Expand Up @@ -1426,6 +1510,24 @@ const char* ToString(Publisher publisher) {
case Publisher::XnysTradesEqus: {
return "XNYS.TRADES.EQUS";
}
case Publisher::IfusImpactIfus: {
return "IFUS.IMPACT.IFUS";
}
case Publisher::IfusImpactXoff: {
return "IFUS.IMPACT.XOFF";
}
case Publisher::IfllImpactIfll: {
return "IFLL.IMPACT.IFLL";
}
case Publisher::IfllImpactXoff: {
return "IFLL.IMPACT.XOFF";
}
case Publisher::XeurEobiXeur: {
return "XEUR.EOBI.XEUR";
}
case Publisher::XeerEobiXeer: {
return "XEER.EOBI.XEER";
}
default: {
return "Unknown";
}
Expand Down Expand Up @@ -1727,6 +1829,24 @@ Publisher FromString(const std::string& str) {
if (str == "XNYS.TRADES.EQUS") {
return Publisher::XnysTradesEqus;
}
if (str == "IFUS.IMPACT.IFUS") {
return Publisher::IfusImpactIfus;
}
if (str == "IFUS.IMPACT.XOFF") {
return Publisher::IfusImpactXoff;
}
if (str == "IFLL.IMPACT.IFLL") {
return Publisher::IfllImpactIfll;
}
if (str == "IFLL.IMPACT.XOFF") {
return Publisher::IfllImpactXoff;
}
if (str == "XEUR.EOBI.XEUR") {
return Publisher::XeurEobiXeur;
}
if (str == "XEER.EOBI.XEER") {
return Publisher::XeerEobiXeer;
}
throw InvalidArgumentError{"FromString<Publisher>", "str",
"unknown value '" + str + '\''};
}
Expand Down
2 changes: 2 additions & 0 deletions tests/src/historical_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -803,6 +803,8 @@ TEST(HistoricalBuilderTests, TestSetKeyFromEnv) {
}

TEST(HistoricalBuilderTests, TestSetKeyFromEnvMissing) {
ASSERT_EQ(::unsetenv("DATABENTO_API_KEY"), 0)
<< "Failed to set environment variable";
ASSERT_THROW(databento::HistoricalBuilder().SetKeyFromEnv().Build(),
Exception);
}
Expand Down
Loading