summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormontezdesousa <79287829+montezdesousa@users.noreply.github.com>2024-05-10 20:16:09 +0100
committerGitHub <noreply@github.com>2024-05-10 19:16:09 +0000
commit5b7428070a32efb9644e30da2b6fc509e94e231a (patch)
treefa7eb3268dafaa3e6fc68b95a3ebd9d2d8f4782f
parentc29200aa17941d8c6ce8baee810961467427eacb (diff)
[Feature] - Create repo assets directory (#6384)
* feat: create scripts to generate repo assets * move script * publish.md * deletes unmaintained .md files * ruff * pylint * fix: website urls * fix: website urls * rename script * renames * create folder * mypy * PyDocstyle * fix: descriptions & websites * camelCase * change json structure * logo url * reprName * finra * logos * logo * logo * logo * logo * pylint --------- Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com>
-rw-r--r--assets/README.md5
-rw-r--r--assets/extensions/obbject.json6
-rw-r--r--assets/extensions/provider.json258
-rw-r--r--assets/extensions/router.json58
-rw-r--r--assets/scripts/generate_extension_data.py115
-rw-r--r--build/pypi/openbb_platform/PUBLISH.md7
-rw-r--r--openbb_platform/EXTENSIONS.md16
-rw-r--r--openbb_platform/PROVIDERS.md10
-rw-r--r--openbb_platform/assets/providers.json58
-rw-r--r--openbb_platform/core/openbb_core/app/model/extension.py4
-rw-r--r--openbb_platform/core/openbb_core/provider/abstract/provider.py21
-rw-r--r--openbb_platform/obbject_extensions/charting/openbb_charting/__init__.py31
-rw-r--r--openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/__init__.py17
-rw-r--r--openbb_platform/providers/benzinga/openbb_benzinga/__init__.py6
-rw-r--r--openbb_platform/providers/biztoc/openbb_biztoc/__init__.py16
-rw-r--r--openbb_platform/providers/cboe/openbb_cboe/__init__.py8
-rw-r--r--openbb_platform/providers/ecb/openbb_ecb/__init__.py8
-rw-r--r--openbb_platform/providers/econdb/openbb_econdb/__init__.py13
-rw-r--r--openbb_platform/providers/federal_reserve/openbb_federal_reserve/__init__.py7
-rw-r--r--openbb_platform/providers/finra/openbb_finra/__init__.py7
-rw-r--r--openbb_platform/providers/finviz/openbb_finviz/__init__.py2
-rw-r--r--openbb_platform/providers/fmp/openbb_fmp/__init__.py8
-rw-r--r--openbb_platform/providers/fred/openbb_fred/__init__.py10
-rw-r--r--openbb_platform/providers/government_us/openbb_government_us/__init__.py16
-rw-r--r--openbb_platform/providers/intrinio/openbb_intrinio/__init__.py8
-rw-r--r--openbb_platform/providers/nasdaq/openbb_nasdaq/__init__.py4
-rw-r--r--openbb_platform/providers/oecd/openbb_oecd/__init__.py7
-rw-r--r--openbb_platform/providers/polygon/openbb_polygon/__init__.py10
-rw-r--r--openbb_platform/providers/sec/openbb_sec/__init__.py4
-rw-r--r--openbb_platform/providers/seeking_alpha/openbb_seeking_alpha/__init__.py4
-rw-r--r--openbb_platform/providers/stockgrid/openbb_stockgrid/__init__.py14
-rw-r--r--openbb_platform/providers/tiingo/openbb_tiingo/__init__.py7
-rw-r--r--openbb_platform/providers/tmx/openbb_tmx/__init__.py26
-rw-r--r--openbb_platform/providers/tradier/openbb_tradier/__init__.py14
-rw-r--r--openbb_platform/providers/tradingeconomics/openbb_tradingeconomics/__init__.py12
-rw-r--r--openbb_platform/providers/wsj/openbb_wsj/__init__.py16
-rw-r--r--openbb_platform/providers/yfinance/openbb_yfinance/__init__.py8
37 files changed, 646 insertions, 195 deletions
diff --git a/assets/README.md b/assets/README.md
new file mode 100644
index 00000000000..85a39728b36
--- /dev/null
+++ b/assets/README.md
@@ -0,0 +1,5 @@
+# Assets
+
+This folder should hold assets read by OpenBB applications, such as OpenBB Hub or marketing website.
+
+The goal is to be more explicit about which assets are being used externally and cannot be deleted before checking where they are used.
diff --git a/assets/extensions/obbject.json b/assets/extensions/obbject.json
new file mode 100644
index 00000000000..ce70c67916b
--- /dev/null
+++ b/assets/extensions/obbject.json
@@ -0,0 +1,6 @@
+[
+ {
+ "packageName": "openbb-charting",
+ "description": "Create custom charts from OBBject data."
+ }
+] \ No newline at end of file
diff --git a/assets/extensions/provider.json b/assets/extensions/provider.json
new file mode 100644
index 00000000000..3e5b5c4ebb9
--- /dev/null
+++ b/assets/extensions/provider.json
@@ -0,0 +1,258 @@
+[
+ {
+ "packageName": "openbb-alpha-vantage",
+ "reprName": "Alpha Vantage",
+ "description": "Alpha Vantage provides realtime and historical\nfinancial market data through a set of powerful and developer-friendly data APIs\nand spreadsheets. From traditional asset classes (e.g., stocks, ETFs, mutual funds)\nto economic indicators, from foreign exchange rates to commodities,\nfrom fundamental data to technical indicators, Alpha Vantage\nis your one-stop-shop for enterprise-grade global market data delivered through\ncloud-based APIs, Excel, and Google Sheets. ",
+ "credentials": [
+ "alpha_vantage_api_key"
+ ],
+ "v3Credentials": [
+ "API_KEY_ALPHAVANTAGE"
+ ],
+ "website": "https://www.alphavantage.co",
+ "instructions": "Go to: https://www.alphavantage.co/support/#api-key\n\n![AlphaVantage](https://user-images.githubusercontent.com/46355364/207820936-46c2ba00-81ff-4cd3-98a4-4fa44412996f.png)\n\nFill out the form, pass Captcha, and click on, \"GET FREE API KEY\"."
+ },
+ {
+ "packageName": "openbb-benzinga",
+ "reprName": "Benzinga",
+ "description": "Benzinga is a financial data provider that offers an API\nfocused on information that moves the market.",
+ "credentials": [
+ "benzinga_api_key"
+ ],
+ "website": "https://www.benzinga.com",
+ "logoUrl": "https://www.benzinga.com/sites/all/themes/bz2/images/Benzinga-logo-navy.svg"
+ },
+ {
+ "packageName": "openbb-biztoc",
+ "reprName": "BizToc",
+ "description": "BizToc uses Rapid API for its REST API.\nYou may sign up for your free account at https://rapidapi.com/thma/api/biztoc.\n\nThe Base URL for all requests is:\n\n https://biztoc.p.rapidapi.com/\n\nIf you're not a developer but would still like to use Biztoc outside of the main website,\nwe've partnered with OpenBB, allowing you to pull in BizToc's news stream in their Terminal.",
+ "credentials": [
+ "biztoc_api_key"
+ ],
+ "v3Credentials": [
+ "API_BIZTOC_TOKEN"
+ ],
+ "website": "https://api.biztoc.com",
+ "instructions": "The BizToc API is hosted on RapidAPI. To set up, go to: https://rapidapi.com/thma/api/biztoc.\n\n![biztoc0](https://github.com/marban/OpenBBTerminal/assets/18151143/04cdd423-f65e-4ad8-ad5a-4a59b0f5ddda)\n\nIn the top right, select 'Sign Up'. After answering some questions, you will be prompted to select one of their plans.\n\n![biztoc1](https://github.com/marban/OpenBBTerminal/assets/18151143/9f3b72ea-ded7-48c5-aa33-bec5c0de8422)\n\nAfter signing up, navigate back to https://rapidapi.com/thma/api/biztoc. If you are logged in, you will see a header called X-RapidAPI-Key.\n\n![biztoc2](https://github.com/marban/OpenBBTerminal/assets/18151143/0f3b6c91-07e0-447a-90cd-a9e23522929f)",
+ "logoUrl": "https://c.biztoc.com/274/logo.svg"
+ },
+ {
+ "packageName": "openbb-cboe",
+ "reprName": "Chicago Board Options Exchange (CBOE)",
+ "description": "Cboe is the world's go-to derivatives and exchange network,\ndelivering cutting-edge trading, clearing and investment solutions to people\naround the world.",
+ "credentials": [],
+ "website": "https://www.cboe.com",
+ "logoUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/8/8a/Cboe_Global_Markets_Logo.svg/2880px-Cboe_Global_Markets_Logo.svg.png"
+ },
+ {
+ "packageName": "openbb-ecb",
+ "reprName": "European Central Bank (ECB)",
+ "description": "The ECB Data Portal provides access to all official ECB statistics.\nThe portal also provides options to download data and comprehensive metadata for each dataset.\nStatistical publications and dashboards offer a compilation of key data on selected topics.",
+ "credentials": [],
+ "website": "https://data.ecb.europa.eu",
+ "logoUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/c/cb/Logo_European_Central_Bank.svg/720px-Logo_European_Central_Bank.svg.png"
+ },
+ {
+ "packageName": "openbb-econdb",
+ "reprName": "EconDB",
+ "description": "The mission of the company is to process information in ways that\nfacilitate understanding of the economic situation at different granularity levels.\n\nThe sources of data include official statistics agencies and so-called alternative\ndata sources where we collect direct observations of the market and generate\naggregate statistics.",
+ "credentials": [
+ "econdb_api_key"
+ ],
+ "website": "https://econdb.com",
+ "logoUrl": "https://avatars.githubusercontent.com/u/21289885?v=4"
+ },
+ {
+ "packageName": "openbb-federal-reserve",
+ "reprName": "Federal Reserve (FED)",
+ "description": "Access data provided by the Federal Reserve System,\nthe Central Bank of the United States.",
+ "credentials": [],
+ "website": "https://www.federalreserve.gov/data.htm",
+ "logoUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Seal_of_the_United_States_Federal_Reserve_System.svg/498px-Seal_of_the_United_States_Federal_Reserve_System.svg.png"
+ },
+ {
+ "packageName": "openbb-finra",
+ "reprName": "Financial Industry Regulatory Authority (FINRA)",
+ "description": "FINRA Data provides centralized access to the abundance of data FINRA\nmakes available to the public, media, researchers and member firms.",
+ "credentials": [],
+ "website": "https://www.finra.org/finra-data",
+ "logoUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/9/95/FINRA_logo.svg/1024px-FINRA_logo.svg.png"
+ },
+ {
+ "packageName": "openbb-finviz",
+ "reprName": "FinViz",
+ "description": "Unofficial Finviz API - https://github.com/lit26/finvizfinance/releases",
+ "credentials": [],
+ "website": "https://finviz.com",
+ "logoUrl": "https://finviz.com/img/logo_3_2x.png"
+ },
+ {
+ "packageName": "openbb-fmp",
+ "reprName": "Financial Modeling Prep (FMP)",
+ "description": "Financial Modeling Prep is a new concept that informs you about\nstock market information (news, currencies, and stock prices).",
+ "credentials": [
+ "fmp_api_key"
+ ],
+ "v3Credentials": [
+ "API_KEY_FINANCIALMODELINGPREP"
+ ],
+ "website": "https://financialmodelingprep.com",
+ "instructions": "Go to: https://site.financialmodelingprep.com/developer/docs\n\n![FinancialModelingPrep](https://user-images.githubusercontent.com/46355364/207821920-64553d05-d461-4984-b0fe-be0368c71186.png)\n\nClick on, \"Get my API KEY here\", and sign up for a free account.\n\n![FinancialModelingPrep](https://user-images.githubusercontent.com/46355364/207822184-a723092e-ef42-4f87-8c55-db150f09741b.png)\n\nWith an account created, sign in and navigate to the Dashboard, which shows the assigned token. by pressing the \"Dashboard\" button which will show the API key.\n\n![FinancialModelingPrep](https://user-images.githubusercontent.com/46355364/207823170-dd8191db-e125-44e5-b4f3-2df0e115c91d.png)",
+ "logoUrl": "https://intelligence.financialmodelingprep.com//images/fmp-brain-original.svg"
+ },
+ {
+ "packageName": "openbb-fred",
+ "reprName": "Federal Reserve Economic Data | St. Louis FED (FRED)",
+ "description": "Federal Reserve Economic Data is a database maintained by the\nResearch division of the Federal Reserve Bank of St. Louis that has more than\n816,000 economic time series from various sources.",
+ "credentials": [
+ "fred_api_key"
+ ],
+ "v3Credentials": [
+ "API_FRED_KEY"
+ ],
+ "website": "https://fred.stlouisfed.org",
+ "instructions": "Go to: https://fred.stlouisfed.org\n\n![FRED](https://user-images.githubusercontent.com/46355364/207827137-d143ba4c-72cb-467d-a7f4-5cc27c597aec.png)\n\nClick on, \"My Account\", create a new account or sign in with Google:\n\n![FRED](https://user-images.githubusercontent.com/46355364/207827011-65cdd501-27e3-436f-bd9d-b0d8381d46a7.png)\n\nAfter completing the sign-up, go to \"My Account\", and select \"API Keys\". Then, click on, \"Request API Key\".\n\n![FRED](https://user-images.githubusercontent.com/46355364/207827577-c869f989-4ef4-4949-ab57-6f3931f2ae9d.png)\n\nFill in the box for information about the use-case for FRED, and by clicking, \"Request API key\", at the bottom of the page, the API key will be issued.\n\n![FRED](https://user-images.githubusercontent.com/46355364/207828032-0a32d3b8-1378-4db2-9064-aa1eb2111632.png)",
+ "logoUrl": "https://fred.stlouisfed.org/images/fred-logo-2x.png"
+ },
+ {
+ "packageName": "openbb-government-us",
+ "reprName": "Data.gov | United States Government",
+ "description": "Data.gov is the United States government's open data website.\nIt provides access to datasets published by agencies across the federal government.\nData.gov is intended to provide access to government open data to the public, achieve\nagency missions, drive innovation, fuel economic activity, and uphold the ideals of\nan open and transparent government.",
+ "credentials": [],
+ "website": "https://data.gov",
+ "logoUrl": "https://upload.wikimedia.org/wikipedia/commons/0/06/Muq55HrN_400x400.png"
+ },
+ {
+ "packageName": "openbb-intrinio",
+ "reprName": "Intrinio",
+ "description": "Intrinio is a financial data platform that provides real-time and\nhistorical financial market data to businesses and developers through an API.",
+ "credentials": [
+ "intrinio_api_key"
+ ],
+ "v3Credentials": [
+ "API_INTRINIO_KEY"
+ ],
+ "website": "https://intrinio.com",
+ "instructions": "Go to: https://intrinio.com/starter-plan\n\n![Intrinio](https://user-images.githubusercontent.com/85772166/219207556-fcfee614-59f1-46ae-bff4-c63dd2f6991d.png)\n\nAn API key will be issued with a subscription. Find the token value within the account dashboard.",
+ "logoUrl": "https://assets-global.website-files.com/617960145ff34fe4a9fe7240/617960145ff34f9a97fe72c8_Intrinio%20Logo%20-%20Dark.svg"
+ },
+ {
+ "packageName": "openbb-nasdaq",
+ "reprName": "NASDAQ",
+ "description": "Positioned at the nexus of technology and the capital markets, Nasdaq\nprovides premier platforms and services for global capital markets and beyond with\nunmatched technology, insights and markets expertise.",
+ "credentials": [
+ "nasdaq_api_key"
+ ],
+ "v3Credentials": [
+ "API_KEY_QUANDL"
+ ],
+ "website": "https://data.nasdaq.com",
+ "instructions": "Go to: https://www.quandl.com\n\n![Quandl](https://user-images.githubusercontent.com/46355364/207823899-208a3952-f557-4b73-aee6-64ac00faedb7.png)\n\nClick on, \"Sign Up\", and register a new account.\n\n![Quandl](https://user-images.githubusercontent.com/46355364/207824214-4b6b2b74-e709-4ed4-adf2-14803e6f3568.png)\n\nFollow the sign-up instructions, and upon completion the API key will be assigned.\n\n![Quandl](https://user-images.githubusercontent.com/46355364/207824664-3c82befb-9c69-42df-8a82-510d85c19a97.png)",
+ "logoUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/7/76/NASDAQ_logo.svg/1600px-NASDAQ_logo.svg.png"
+ },
+ {
+ "packageName": "openbb-oecd",
+ "reprName": "Organization for Economic Co-operation and Development (OECD)",
+ "description": "OECD.Stat includes data and metadata for OECD countries and selected\nnon-member economies.",
+ "credentials": [],
+ "website": "https://stats.oecd.org",
+ "logoUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a2/OECD_logo.svg/400px-OECD_logo.svg.png"
+ },
+ {
+ "packageName": "openbb-polygon",
+ "reprName": "Polygon",
+ "description": "The Polygon.io Stocks API provides REST endpoints that let you query\nthe latest market data from all US stock exchanges. You can also find data on\ncompany financials, stock market holidays, corporate actions, and more.",
+ "credentials": [
+ "polygon_api_key"
+ ],
+ "v3Credentials": [
+ "API_POLYGON_KEY"
+ ],
+ "website": "https://polygon.io",
+ "instructions": "Go to: https://polygon.io\n\n![Polygon](https://user-images.githubusercontent.com/46355364/207825623-fcd7f0a3-131a-4294-808c-754c13e38e2a.png)\n\nClick on, \"Get your Free API Key\".\n\n![Polygon](https://user-images.githubusercontent.com/46355364/207825952-ca5540ec-6ed2-4cef-a0ed-bb50b813932c.png)\n\nAfter signing up, the API Key is found at the bottom of the account dashboard page.\n\n![Polygon](https://user-images.githubusercontent.com/46355364/207826258-b1f318fa-fd9c-41d9-bf5c-fe16722e6601.png)",
+ "logoUrl": "https://polygon.io/_next/image?url=%2Flogo.svg&w=640&q=75"
+ },
+ {
+ "packageName": "openbb-sec",
+ "reprName": "Securities and Exchange Commission (SEC)",
+ "description": "SEC is the public listings regulatory body for the United States.",
+ "credentials": [],
+ "website": "https://www.sec.gov/data",
+ "logoUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/1/1c/Seal_of_the_United_States_Securities_and_Exchange_Commission.svg/1920px-Seal_of_the_United_States_Securities_and_Exchange_Commission.svg.png"
+ },
+ {
+ "packageName": "openbb-seeking-alpha",
+ "reprName": "Seeking Alpha",
+ "description": "Seeking Alpha is a data provider with access to news, analysis, and\nreal-time alerts on stocks.",
+ "credentials": [],
+ "website": "https://seekingalpha.com",
+ "logoUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Seeking_Alpha_Logo.svg/280px-Seeking_Alpha_Logo.svg.png"
+ },
+ {
+ "packageName": "openbb-stockgrid",
+ "reprName": "Stockgrid",
+ "description": "Stockgrid gives you a detailed view of what smart money is doing.\nGet in depth data about large option blocks being traded, including\nthe sentiment score, size, volume and order type. Stop guessing and\nbuild a strategy around the number 1 factor moving the market: money.",
+ "credentials": [],
+ "website": "https://www.stockgrid.io",
+ "logoUrl": "https://www.stockgrid.io/img/logo_white2.41ee5250.svg"
+ },
+ {
+ "packageName": "openbb-tiingo",
+ "reprName": "Tiingo",
+ "description": "A Reliable, Enterprise-Grade Financial Markets API. Tiingo's APIs\npower hedge funds, tech companies, and individuals.",
+ "credentials": [
+ "tiingo_token"
+ ],
+ "website": "https://tiingo.com",
+ "logoUrl": "https://www.tiingo.com/dist/images/tiingo/logos/tiingo_full_light_color.svg"
+ },
+ {
+ "packageName": "openbb-tmx",
+ "reprName": "TMX",
+ "description": "Unofficial TMX Data Provider Extension\n TMX Group Companies\n - Toronto Stock Exchange\n - TSX Venture Exchange\n - TSX Trust\n - Montr\u00e9al Exchange\n - TSX Alpha Exchange\n - Shorcan\n - CDCC\n - CDS\n - TMX Datalinx\n - Trayport\n ",
+ "credentials": [],
+ "website": "https://www.tmx.com",
+ "logoUrl": "https://www.tmx.com/assets/application/img/tmx_logo_en.1593799726.svg"
+ },
+ {
+ "packageName": "openbb-tradier",
+ "reprName": "Tradier",
+ "description": "Tradier provides a full range of services in a scalable, secure,\nand easy-to-use REST-based API for businesses and individual developers.\nFast, secure, simple. Start in minutes.\nGet access to trading, account management, and market-data for\nTradier Brokerage accounts through our APIs.",
+ "credentials": [
+ "tradier_api_key",
+ "tradier_account_type"
+ ],
+ "v3Credentials": [
+ "API_TRADIER_TOKEN"
+ ],
+ "website": "https://tradier.com",
+ "instructions": "Go to: https://documentation.tradier.com\n\n![Tradier](https://user-images.githubusercontent.com/46355364/207829178-a8bba770-f2ea-4480-b28e-efd81cf30980.png)\n\nClick on, \"Open Account\", to start the sign-up process. After the account has been setup, navigate to [Tradier Broker Dash](https://dash.tradier.com/login?redirect=settings.api) and create the application. Request a sandbox access token.",
+ "logoUrl": "https://tradier.com/assets/images/tradier-logo.svg"
+ },
+ {
+ "packageName": "openbb-tradingeconomics",
+ "reprName": "Trading Economics",
+ "description": "Trading Economics provides its users with accurate information for\n196 countries including historical data and forecasts for more than 20 million economic\nindicators, exchange rates, stock market indexes, government bond yields and commodity\nprices. Our data for economic indicators is based on official sources, not third party\ndata providers, and our facts are regularly checked for inconsistencies.\nTrading Economics has received nearly 2 billion page views from all around the\nworld.",
+ "credentials": [
+ "tradingeconomics_api_key"
+ ],
+ "website": "https://tradingeconomics.com",
+ "logoUrl": "https://developer.tradingeconomics.com/Content/Images/logo.svg"
+ },
+ {
+ "packageName": "openbb-wsj",
+ "reprName": "Wall Street Journal (WSJ)",
+ "description": "WSJ (Wall Street Journal) is a business-focused, English-language\ninternational daily newspaper based in New York City. The Journal is published six\ndays a week by Dow Jones & Company, a division of News Corp, along with its Asian\nand European editions. The newspaper is published in the broadsheet format and\nonline. The Journal has been printed continuously since its inception on\nJuly 8, 1889, by Charles Dow, Edward Jones, and Charles Bergstresser.\nThe WSJ is the largest newspaper in the United States, by circulation.\n ",
+ "credentials": [],
+ "website": "https://www.wsj.com",
+ "logoUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/WSJ_Logo.svg/1594px-WSJ_Logo.svg.png"
+ },
+ {
+ "packageName": "openbb-yfinance",
+ "reprName": "Yahoo Finance",
+ "description": "Yahoo! Finance is a web-based platform that offers financial news,\ndata, and tools for investors and individuals interested in tracking and analyzing\nfinancial markets and assets.",
+ "credentials": [],
+ "website": "https://finance.yahoo.com",
+ "logoUrl": "https://upload.wikimedia.org/wikipedia/commons/8/8f/Yahoo%21_Finance_logo_2021.png"
+ }
+] \ No newline at end of file
diff --git a/assets/extensions/router.json b/assets/extensions/router.json
new file mode 100644
index 00000000000..2f88caa82cf
--- /dev/null
+++ b/assets/extensions/router.json
@@ -0,0 +1,58 @@
+[
+ {
+ "packageName": "openbb-commodity",
+ "description": "Commodity market data."
+ },
+ {
+ "packageName": "openbb-crypto",
+ "description": "Cryptocurrency market data."
+ },
+ {
+ "packageName": "openbb-currency",
+ "description": "Foreign exchange (FX) market data."
+ },
+ {
+ "packageName": "openbb-derivatives",
+ "description": "Derivatives market data."
+ },
+ {
+ "packageName": "openbb-econometrics",
+ "description": "Econometrics analysis tools."
+ },
+ {
+ "packageName": "openbb-economy",
+ "description": "Economic data."
+ },
+ {
+ "packageName": "openbb-equity",
+ "description": "Equity market data."
+ },
+ {
+ "packageName": "openbb-etf",
+ "description": "Exchange Traded Funds market data."
+ },
+ {
+ "packageName": "openbb-fixedincome",
+ "description": "Fixed Income market data."
+ },
+ {
+ "packageName": "openbb-index",
+ "description": "Indices data."
+ },
+ {
+ "packageName": "openbb-news",
+ "description": "Financial market news data."
+ },
+ {
+ "packageName": "openbb-quantitative",
+ "description": "Quantitative analysis tools."
+ },
+ {
+ "packageName": "openbb-regulators",
+ "description": "Financial market regulators data."
+ },
+ {
+ "packageName": "openbb-technical",
+ "description": "Technical Analysis tools."
+ }
+] \ No newline at end of file
diff --git a/assets/scripts/generate_extension_data.py b/assets/scripts/generate_extension_data.py
new file mode 100644
index 00000000000..1949cafea4e
--- /dev/null
+++ b/assets/scripts/generate_extension_data.py
@@ -0,0 +1,115 @@
+"""Generate assets from modules."""
+
+from importlib import import_module
+from json import dump
+from pathlib import Path
+from typing import Any, Dict, List
+
+from poetry.core.pyproject.toml import PyProjectTOML
+
+THIS_DIR = Path(__file__).parent
+PROVIDERS_PATH = Path(THIS_DIR, "..", "..", "openbb_platform/providers")
+EXTENSIONS_PATH = Path(THIS_DIR, "..", "..", "openbb_platform/extensions")
+OBBJECT_EXTENSIONS_PATH = Path(
+ THIS_DIR, "..", "..", "openbb_platform/obbject_extensions"
+)
+
+
+def to_title(string: str) -> str:
+ """Format string to title."""
+ return " ".join(string.split("_")).title()
+
+
+def get_packages(path: Path, plugin_key: str) -> Dict[str, Any]:
+ """Get packages."""
+ SKIP = ["tests", "__pycache__"]
+ folders = [f for f in path.glob("*") if f.is_dir() and f.stem not in SKIP]
+ packages: Dict[str, Any] = {}
+ for f in folders:
+ pyproject = PyProjectTOML(Path(f, "pyproject.toml"))
+ poetry = pyproject.data["tool"]["poetry"]
+ name = poetry["name"]
+ plugin = poetry.get("plugins", {}).get(plugin_key)
+ packages[name] = list(plugin.values())[0] if plugin else ""
+ return packages
+
+
+def write(filename: str, data: Any):
+ """Write to json."""
+ with open(Path(THIS_DIR, "..", "extensions", f"{filename}.json"), "w") as json_file:
+ dump(data, json_file, indent=4)
+
+
+def to_camel(string: str):
+ """Convert string to camel case."""
+ components = string.split("_")
+ return components[0] + "".join(x.title() for x in components[1:])
+
+
+def createItem(package_name: str, obj: object, attrs: List[str]) -> Dict[str, str]:
+ """Create dictionary item from object attributes."""
+ item = {"packageName": package_name}
+ item.update(
+ {to_camel(a): getattr(obj, a) for a in attrs if getattr(obj, a) is not None}
+ )
+ return item
+
+
+def generate_provider_extensions() -> None:
+ """Generate providers_extensions.json."""
+ packages = get_packages(PROVIDERS_PATH, "openbb_provider_extension")
+ data: List[Dict[str, str]] = []
+ attrs = [
+ "repr_name",
+ "description",
+ "credentials",
+ "v3_credentials",
+ "website",
+ "instructions",
+ "logo_url",
+ ]
+
+ for pkg_name, plugin in sorted(packages.items()):
+ file_obj = plugin.split(":")
+ if len(file_obj) == 2:
+ file, obj = file_obj[0], file_obj[1]
+ module = import_module(file)
+ provider_obj = getattr(module, obj)
+ data.append(createItem(pkg_name, provider_obj, attrs))
+ write("provider", data)
+
+
+def generate_router_extensions() -> None:
+ """Generate router_extensions.json."""
+ packages = get_packages(EXTENSIONS_PATH, "openbb_core_extension")
+ data: List[Dict[str, str]] = []
+ attrs = ["description"]
+ for pkg_name, plugin in sorted(packages.i