Back to Openbb

How The OpenBB Platform Works

examples/platform_standardization.ipynb

4.7.02.3 KB
Original Source

How The OpenBB Platform Works

python
from openbb import obb
python
obb
python
obb.news
python
help(obb.news.world)

Uniform interface allows switching between providers

python
obb.news.world(limit=1, provider="intrinio").to_df().T
python
obb.news.world(limit=1, provider="benzinga").to_df().T

Standardization of input and output schemas is done with Pydantic models

This is a standard model

python
from openbb_core.provider.standard_models.world_news import WorldNewsData

WorldNewsData.__fields__

These are provider models

python
from openbb_intrinio.models.world_news import IntrinioWorldNewsData
from openbb_benzinga.models.world_news import BenzingaWorldNewsData
python
IntrinioWorldNewsData.__fields__
python
BenzingaWorldNewsData.__fields__

Inheritance, field mapping and quality assurance

Provider models inherit from Standard Models

python
issubclass(BenzingaWorldNewsData, WorldNewsData)

Provider models use aliases to map to standard fields

python
BenzingaWorldNewsData.__alias_dict__

Provider models implement field validation

python
IntrinioWorldNewsData.__dict__["__pydantic_decorators__"].field_validators
python
BenzingaWorldNewsData.__dict__["__pydantic_decorators__"].field_validators

Example:

python
@field_validator("date")
def date_validate(cls, v):
    """Return the date as a datetime object."""
    return datetime.strptime(v, "%a, %d %b %Y %H:%M:%S %z")

Modularity

python
obb

Each extension and provider integration is a separate python package

python
!pip list | grep openbb

Install/Uninstall a provider as python packages

python
!pip uninstall openbb-yfinance

To learn more about how it works, here are a few links to the documentation: