Literal[api]/Literal[python] subclass overrides are covariant read-only narrowings. Subclass fields stay writable at runtime. - method_definition.py, options_chains.py: pydantic 2.14 types FieldInfo.annotation as TypeForm[Any] | None, which ty rejects in Union[]/Annotated[] and where is expected; bind it as Any. Use FieldInfo.get_default(call_default_factory=True) instead of calling the default_factory union directly. - economy_views.py: read data/obbject_item without None defaults in the IMF shipping views. charting always sets obbject_item, and data is only popped when present and not None.- finra, jodi, eia: annotate @asynccontextmanager/@contextmanager functions with AsyncGenerator/Generator instead of the deprecated AsyncIterator/Iterator return types. - charting: cast the darts forecast dataset to TimeSeries before indexing so .all_values resolves instead of hitting ndarray. - fred, imf, nasdaq, sec, tmx: turn off invalid-attribute-override and invalid-mutable-override for models/** only, following the cboe precedent. Provider models extend the standard models by narrowing query params to Literals or widening fields to Optional, which these rules flag by design. Co-authored-by: dlee-bq <325002271+dlee-bq@users.noreply.github.com>
OpenBB JODI Provider
This extension integrates the Joint Organisations Data Initiative (JODI) data provider into the OpenBB Platform.
JODI publishes free monthly petroleum and natural gas supply, demand, and stock statistics, self-reported by over 100 countries, through the JODI-Oil and JODI-Gas World Databases.
Installation
To install the extension:
pip install openbb-jodi
Endpoints
Each endpoint returns one presentation-ready view of the raw data, as a date-indexed table, with the series assessments and units in the results metadata.
obb.jodi.oil — JODI-Oil World Database (monthly, from January 2002)
balance— one country and product; one column per flow of the JODI questionnaire (production, trade, stocks, refinery activity).production— one primary product; one column per reporting country.demand— one refined product; one column per reporting country.demand_by_product— one country; one column per refined product (the demand barrel).imports/exports— one product; one column per reporting country.stocks— closing stock levels of one product; one column per reporting country.
Units: kb/d, kbbl, kl, kmt, and the barrels/kmt conversion factor.
obb.jodi.gas — JODI-Gas World Database (monthly, from January 2009)
balance— one country; one column per flow of the JODI questionnaire.production— one column per reporting country.demand— gross inland deliveries (observed or calculated); one column per reporting country.imports/exports— total, pipeline, or LNG; one column per reporting country.stocks— closing stock levels; one column per reporting country.
Units: million m3, TJ, and kmt of LNG.
OpenBB Workspace
The package bundles a "JODI Oil & Gas" app template (openbb_jodi/assets/apps.json), served at /api/v1/jodi/apps.json and folded into the Workspace app catalogue automatically when running openbb-api. It has three dashboards - Country Balances (oil balance, demand barrel, and gas balance, synchronized on one country), Oil Markets, and Gas Markets.
No API key is required. Source tables are cached under the OpenBB user cache directory, partitioned by product and flow; a table is downloaded again only when JODI publishes an update.
Documentation available here.