Files
OpenBB/openbb_platform/platform/provider
montezdesousa 565cafba53 Skip checking creds (#5737)
* skip checking creds

* fix bug

* ok mypy

* add comment

* rename required_credentials

* fix

* fix top_retail bug

* don't require creds in some nasdaq fetchers

* black

* this was not here before

* fix tests

* update fetcher test

* update contributing guidelines
2023-11-17 16:15:34 +00:00
..
2023-11-17 16:15:34 +00:00
2023-11-13 15:03:31 +00:00
2023-11-16 22:03:18 +00:00

Table of contents

Provider

The OpenBB Provider aims to give a coherent access to financial data providers by introducing standardization procedures.

What is Data Standardization?

It's like teaching everyone to speak the same language with their data so we can understand and compare it easily.

Think of it as a part of:

Data normalization, a bigger way of organizing data.

What We Do:

  • Match Column Names and Formats: Like making sure everyone calls a "closing price" the same thing.

  • For instance: Some might say "Close", others might say "c". We make sure everyone uses one term. Unify Date and Time Styles: Like having everyone use the same calendar format.

Example: Whether it's "YYYY-MM-DD" or "MM-DD-YYYY", we pick one style for everyone.

What We Don’t Do:

  • Cleaning Data: We don't act like data detectives and remove mistakes from what providers give us.

  • Change & Combine Data: Tweaking data or mixing data from different places.

Key Elements

  • QueryParams : The input model for a particular query. To load equity market data, we would have EquityPriceQueryParams, which would have fields like symbol, start_date, and end_date. You can find the standard query params inside the standard_models directory.
  • Data : The output model of a particular query. Equity market data would be EquityPriceData and have fields such as Open, High, Low, Close, and Volume. You can find the standard data models inside the standard_models directory.
  • Fetcher : Class containing a set of methods to receive query parameters, extract data and transform it. This class is responsible for implementing the standardization procedures.
  • Provider : Entry point class for each provider extension. Contains information about the provider, it's required credentials and available fetchers.
  • RegistryLoader : Loads the registry with the installed provider extensions.
  • Registry : Maintains a registry of provider extensions installed.
  • RegistryMap : Stores the complete characterization of each provider. It centralizes information like required credentials, standardized and extra query parameters/data by provider.
  • QueryExecutor : Executes a given query, routing it to the respective provider and fetcher.

Installation

To install the provider, run the following command in this folder:

pip install .