mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-11-15 21:53:58 +08:00
The options chains fetcher counted days to expiration from the machine's local calendar date, so one contract got a different DTE depending on where the machine was: five hours before it expires, a machine in America/Los_Angeles got 1 day where UTC and Tokyo got 0. It also disagreed with the provider's own analysis chain, which counts to the 08:00 UTC instant the exchange expires the contract at. Both now go through one helper, days_to_expiration(), which counts the whole days left to the expiration timestamp Deribit publishes. A contract listed without one falls back to 08:00 UTC on the date in its name. time-machine joins the dev group to freeze the clock and the local timezone in the tests. Refs #7611 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: dlee-bq <dlee@brightquery.com>
Providers
In this folder you can find the providers that were created or are supported by OpenBB.
Recommended structure
Every provider is located within a directory, with the following structure:
openbb_platform
└───providers
└───<provider_name>
| README.md
│ pyproject.toml
│ uv.lock
|───tests
└───openbb_<provider_name>
│ __init__.py
|───models
| |───<some model>.py
| └───...
└───utils
|───<some helper>.py
└───...
The models define the data structures that are used to query the provider endpoints and store the response data.
See CONTRIBUTING file for more details