[Feature] openbb-cme: Add CME Group Equity Index Futures Provider (closes #7427)#7556
[Feature] openbb-cme: Add CME Group Equity Index Futures Provider (closes #7427)#7556ray-singh wants to merge 2 commits into
Conversation
openbb-cme: Add CME Group Equity Index Futures Provider (closes #7427)|
Hello! Just wanted to follow up on this PR whenever you have a chance. I'm a first time contributor and I've signed the CLAd. If there are any changes you'd like to see, I'd be happy to make the updates. Thanks for your time! |
|
Hi @ray-singh, thanks for the PR. A couple of things here, a provider extension like this would need to expose the entire product suite across all asset classes, with programmatically generated metadata built from publicly available resources published by the exchange. Futures + options on futures, full contract specs. New extension modules should be pointed towards the V5 branch- https://github.com/OpenBB-finance/OpenBB/tree/v5 |
|
Thanks for the feedback! That makes sense; I'll retarget the implementation to the V5 branch. Regarding scope, would you prefer an initial implementation that establishes the provider architecture and supports a subset of CME products (equity index futures) with the intention of expanding to the full product suite in follow-up PRs, or would you prefer the initial PR to include comprehensive coverage across all CME asset classes and options on futures? I'll align the implementation with whichever approach you think is a better fit. |
|
Regarding scope, @ray-singh, my preference is for the full implementation as one PR. The reason for this is that we generally consider the working branches to be production-ready, but unstable and subject to change. So, new items should be fully flushed out before merging. For the extension itself, it would be a good idea to give it a router module as well so that all the endpoints would register regardless of I know that CME has some new APIs behind a login, have you investigated what's available to individual, free, users from the access-controlled data? There was a lot of friction with the sign-up and dataset subscriptions, I believe they have simplified it all now and would be worth exploring. |
Pull Request — OpenBB Platform
Description
/CmeWS/mvc/Settlements/Futures/Settlements/{product_id}/FUT).Fetchers added:
CMEFuturesHistoricalFetcherFuturesHistoricalCMEFuturesCurveFetcherFuturesCurveCMEFuturesInfoFetcherFuturesInfoCMEFuturesInstrumentsFetcherFuturesInstrumentsDependencies:
curl-cffi: required to impersonate Chrome120's TLS fingerprint and bypass Akamai Bot Manager on the CME API. Standard HTTP clients (httpx,aiohttp) receive 403 responses.Platform changes:
dev_install.py: addedopenbb-cmepath entry for local development.pytest.ini: suppressed an unrelatedpytest_ethereumplugin warning.How has this been tested?
pytest openbb_platform/providers/cme/tests/ -v).record_httptests replay pre-recorded JSON cassettes via aconftest.pyfixture that patches_get_json. curl-cffi operates at the C level and cannot be intercepted by vcrpy, so cassettes are served this way instead.tests/record/http/test_cme_fetchers/to satisfypytest_recorder's file-existence requirement.black,ruff,pylint(10/10), andmypypass with no errors.Test configuration: Python 3.12,
openbb-coreinstalled from local path viadev_install.py.Checklist
_get_json).feature/cme-provider.