From 84d9895ba5dbc37fe8deb0009ef7b93d40e1cdf2 Mon Sep 17 00:00:00 2001 From: hjoaquim Date: Mon, 20 May 2024 18:20:29 +0100 Subject: [PATCH 1/6] ignore the env created on the dev container (which lives inside the project folder) --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index a16c29ef0d34..d83e60b4d3f6 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,6 @@ cli/openbb_cli/assets/styles/user/hub.richstyle.json # Platform openbb_platform/openbb/package/* + +# Dev Container env +obb/* From ffe5bdf6678541bc1a8c9cab5965c46e1f95b7d4 Mon Sep 17 00:00:00 2001 From: hjoaquim Date: Mon, 20 May 2024 18:20:44 +0100 Subject: [PATCH 2/6] broken urls --- cli/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cli/README.md b/cli/README.md index 8a83b426807b..150fad257df7 100644 --- a/cli/README.md +++ b/cli/README.md @@ -14,7 +14,7 @@ The OpenBB Platform CLI is a command line interface that wraps [OpenBB Platform] It offers a convenient way to interact with the OpenBB Platform and its extensions, as well as automate data collection via OpenBB Routine Scripts. -Find the most complete documentation, examples, and usage guides for the OpenBB Platform CLI [here](https://my.openbb.co/app/cli). +Find the most complete documentation, examples, and usage guides for the OpenBB Platform CLI [here](https://docs.openbb.co/cli). ## Installation @@ -24,7 +24,7 @@ The command below provides access to the all the available OpenBB extensions beh pip install openbb-cli ``` -> Note: Find the most complete installation hints and tips [here](https://my.openbb.co/app/cli/installation). +> Note: Find the most complete installation hints and tips [here](https://docs.openbb.co/cli/installation). After the installation is complete, you can deploy the OpenBB Platform CLI by running the following command: From e7187311822251f7139f6c367577c6081e6e6144 Mon Sep 17 00:00:00 2001 From: hjoaquim Date: Mon, 20 May 2024 18:21:49 +0100 Subject: [PATCH 3/6] remove endpoint --- .../extensions/etf/openbb_etf/etf_router.py | 22 ------------------- 1 file changed, 22 deletions(-) diff --git a/openbb_platform/extensions/etf/openbb_etf/etf_router.py b/openbb_platform/extensions/etf/openbb_etf/etf_router.py index 52c367864fe8..b74645dedac2 100644 --- a/openbb_platform/extensions/etf/openbb_etf/etf_router.py +++ b/openbb_platform/extensions/etf/openbb_etf/etf_router.py @@ -1,6 +1,5 @@ """ETF Router.""" -from openbb_core.app.deprecation import OpenBBDeprecationWarning from openbb_core.app.model.command_context import CommandContext from openbb_core.app.model.example import APIEx from openbb_core.app.model.obbject import OBBject @@ -171,27 +170,6 @@ async def holdings_date( return await OBBject.from_query(Query(**locals())) -@router.command( - model="EtfHoldingsPerformance", - deprecated=True, - deprecation=OpenBBDeprecationWarning( - message="This endpoint is deprecated; pass a list of holdings symbols directly to" - + " `/equity/price/performance` instead.", - since=(4, 1), - expected_removal=(4, 2), - ), - examples=[APIEx(parameters={"symbol": "XLK", "provider": "fmp"})], -) -async def holdings_performance( - cc: CommandContext, - provider_choices: ProviderChoices, - standard_params: StandardParams, - extra_params: ExtraParams, -) -> OBBject: - """Get the recent price performance of each ticker held in the ETF.""" - return await OBBject.from_query(Query(**locals())) - - @router.command( model="EtfEquityExposure", examples=[ From ca9ad3fc694c146989e4372fc9ef4c74815d1943 Mon Sep 17 00:00:00 2001 From: hjoaquim Date: Mon, 20 May 2024 18:22:04 +0100 Subject: [PATCH 4/6] empty file --- openbb_platform/core/tests/app/test_charting_manager.py | 1 - 1 file changed, 1 deletion(-) delete mode 100644 openbb_platform/core/tests/app/test_charting_manager.py diff --git a/openbb_platform/core/tests/app/test_charting_manager.py b/openbb_platform/core/tests/app/test_charting_manager.py deleted file mode 100644 index 06b5fb096915..000000000000 --- a/openbb_platform/core/tests/app/test_charting_manager.py +++ /dev/null @@ -1 +0,0 @@ -"""Test ChartingManager.""" From b32667b865fd2822342ec4433c080eeaae2cea32 Mon Sep 17 00:00:00 2001 From: hjoaquim Date: Mon, 20 May 2024 18:22:26 +0100 Subject: [PATCH 5/6] deprecate --- .../etf_holdings_performance.py | 14 - .../core/tests/app/test_deprecation.py | 3 - .../etf/integration/test_etf_api.py | 19 -- .../etf/integration/test_etf_python.py | 18 - .../providers/fmp/openbb_fmp/__init__.py | 2 - .../models/etf_holdings_performance.py | 77 ----- ..._fmp_etf_holdings_performance_fetcher.yaml | 318 ------------------ .../providers/fmp/tests/test_fmp_fetchers.py | 11 - 8 files changed, 462 deletions(-) delete mode 100644 openbb_platform/core/openbb_core/provider/standard_models/etf_holdings_performance.py delete mode 100644 openbb_platform/providers/fmp/openbb_fmp/models/etf_holdings_performance.py delete mode 100644 openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_etf_holdings_performance_fetcher.yaml diff --git a/openbb_platform/core/openbb_core/provider/standard_models/etf_holdings_performance.py b/openbb_platform/core/openbb_core/provider/standard_models/etf_holdings_performance.py deleted file mode 100644 index e081c89497b4..000000000000 --- a/openbb_platform/core/openbb_core/provider/standard_models/etf_holdings_performance.py +++ /dev/null @@ -1,14 +0,0 @@ -"""ETF Holdings Performance Standard Model.""" - -from .recent_performance import ( - RecentPerformanceData, - RecentPerformanceQueryParams, -) - - -class ETFHoldingsPerformanceQueryParams(RecentPerformanceQueryParams): - """ETF Holdings Performance Query.""" - - -class ETFHoldingsPerformanceData(RecentPerformanceData): - """ETF Holdings Performance Data.""" diff --git a/openbb_platform/core/tests/app/test_deprecation.py b/openbb_platform/core/tests/app/test_deprecation.py index 5bfebed99f8c..e9b637e9966f 100644 --- a/openbb_platform/core/tests/app/test_deprecation.py +++ b/openbb_platform/core/tests/app/test_deprecation.py @@ -10,9 +10,6 @@ class DeprecatedCommandsTest(unittest.TestCase): """Test deprecated commands.""" - @pytest.mark.skip( - "We forgot to deprecate /etf/holdings_performance. Check this endpoint next release." - ) def test_deprecated_commands(self): """Test deprecated commands.""" current_major_minor = get_major_minor(VERSION) diff --git a/openbb_platform/extensions/etf/integration/test_etf_api.py b/openbb_platform/extensions/etf/integration/test_etf_api.py index 04029f6d6d96..89254a95d589 100644 --- a/openbb_platform/extensions/etf/integration/test_etf_api.py +++ b/openbb_platform/extensions/etf/integration/test_etf_api.py @@ -463,25 +463,6 @@ def test_etf_discovery_active(params, headers): assert result.status_code == 200 -@parametrize( - "params", - [ - ({"symbol": "SPY", "provider": "fmp"}), - ({"symbol": "QQQ", "provider": "fmp"}), - ], -) -@pytest.mark.integration -def test_etf_holdings_performance(params, headers): - """Test the ETF holdings performance endpoint.""" - params = {p: v for p, v in params.items() if v} - - query_str = get_querystring(params, []) - url = f"http://0.0.0.0:8000/api/v1/etf/holdings_performance?{query_str}" - result = requests.get(url, headers=headers, timeout=10) - assert isinstance(result, requests.Response) - assert result.status_code == 200 - - @parametrize( "params", [ diff --git a/openbb_platform/extensions/etf/integration/test_etf_python.py b/openbb_platform/extensions/etf/integration/test_etf_python.py index ed8ba2f99cec..40185e7631ea 100644 --- a/openbb_platform/extensions/etf/integration/test_etf_python.py +++ b/openbb_platform/extensions/etf/integration/test_etf_python.py @@ -446,24 +446,6 @@ def test_etf_discovery_active(params, obb): assert len(result.results) > 0 -@parametrize( - "params", - [ - ({"symbol": "SPY", "provider": "fmp"}), - ({"symbol": "QQQ", "provider": "fmp"}), - ], -) -@pytest.mark.integration -def test_etf_holdings_performance(params, obb): - """Test the ETF holdings performance endpoint.""" - params = {p: v for p, v in params.items() if v} - - result = obb.etf.holdings_performance(**params) - assert result - assert isinstance(result, OBBject) - assert len(result.results) > 0 - - @parametrize( "params", [ diff --git a/openbb_platform/providers/fmp/openbb_fmp/__init__.py b/openbb_platform/providers/fmp/openbb_fmp/__init__.py index 01f9a5019e54..cb98280528ac 100644 --- a/openbb_platform/providers/fmp/openbb_fmp/__init__.py +++ b/openbb_platform/providers/fmp/openbb_fmp/__init__.py @@ -34,7 +34,6 @@ from openbb_fmp.models.etf_equity_exposure import FMPEtfEquityExposureFetcher from openbb_fmp.models.etf_holdings import FMPEtfHoldingsFetcher from openbb_fmp.models.etf_holdings_date import FMPEtfHoldingsDateFetcher -from openbb_fmp.models.etf_holdings_performance import FMPEtfHoldingsPerformanceFetcher from openbb_fmp.models.etf_info import FMPEtfInfoFetcher from openbb_fmp.models.etf_search import FMPEtfSearchFetcher from openbb_fmp.models.etf_sectors import FMPEtfSectorsFetcher @@ -102,7 +101,6 @@ "EtfEquityExposure": FMPEtfEquityExposureFetcher, "EtfHoldings": FMPEtfHoldingsFetcher, "EtfHoldingsDate": FMPEtfHoldingsDateFetcher, - "EtfHoldingsPerformance": FMPEtfHoldingsPerformanceFetcher, "EtfInfo": FMPEtfInfoFetcher, "EtfPricePerformance": FMPPricePerformanceFetcher, "EtfSearch": FMPEtfSearchFetcher, diff --git a/openbb_platform/providers/fmp/openbb_fmp/models/etf_holdings_performance.py b/openbb_platform/providers/fmp/openbb_fmp/models/etf_holdings_performance.py deleted file mode 100644 index 0a6f18b8339e..000000000000 --- a/openbb_platform/providers/fmp/openbb_fmp/models/etf_holdings_performance.py +++ /dev/null @@ -1,77 +0,0 @@ -"""FMP ETF Holdings Performance Model.""" - -# pylint: disable=unused-argument - -from typing import Any, Dict, List, Optional - -from openbb_core.provider.abstract.fetcher import Fetcher -from openbb_fmp.models.etf_holdings import FMPEtfHoldingsFetcher -from openbb_fmp.models.price_performance import ( - FMPPricePerformanceData, - FMPPricePerformanceFetcher, - FMPPricePerformanceQueryParams, -) -from pandas import DataFrame - - -class FMPEtfHoldingsPerformanceQueryParams(FMPPricePerformanceQueryParams): - """FMP ETF Holdings Performance Query.""" - - -class FMPEtfHoldingsPerformanceData(FMPPricePerformanceData): - """FMP ETF Holdings Performance Data.""" - - -class FMPEtfHoldingsPerformanceFetcher( - Fetcher[ - FMPEtfHoldingsPerformanceQueryParams, - List[FMPEtfHoldingsPerformanceData], - ] -): - """Transform the query, extract and transform the data from the FMP endpoints.""" - - @staticmethod - def transform_query(params: Dict[str, Any]) -> FMPEtfHoldingsPerformanceQueryParams: - """Transform the query.""" - return FMPEtfHoldingsPerformanceQueryParams(**params) - - @staticmethod - async def aextract_data( - query: FMPEtfHoldingsPerformanceQueryParams, - credentials: Optional[Dict[str, str]], - **kwargs: Any, - ) -> List[Dict]: - """Return the raw data from the FMP endpoint.""" - # Get the holdings data - holdings = await FMPEtfHoldingsFetcher().aextract_data( - FMPEtfHoldingsFetcher.transform_query({"symbol": query.symbol}), - credentials, - **kwargs, - ) - if holdings is None: - raise RuntimeError(f"No holdings data found for {query.symbol}.") - holdings_list = DataFrame(holdings).asset.unique().tolist() - # Split into chunks of 500 - chunks = [holdings_list[i : i + 500] for i in range(0, len(holdings_list), 500)] - # Get price performance for the holdings - holdings_performance: List[Dict] = [] - for holding_chunk in chunks: - holdings_str = ( - ",".join(holding_chunk) if len(holding_chunk) > 1 else holding_chunk[0] - ) - _performance = await FMPPricePerformanceFetcher().aextract_data( - FMPPricePerformanceFetcher.transform_query({"symbol": holdings_str}), - credentials, - **kwargs, - ) - holdings_performance.extend(_performance) - return holdings_performance - - @staticmethod - def transform_data( - query: FMPEtfHoldingsPerformanceQueryParams, - data: List[Dict], - **kwargs: Any, - ) -> List[FMPEtfHoldingsPerformanceData]: - """Return the transformed data.""" - return [FMPEtfHoldingsPerformanceData.model_validate(d) for d in data] diff --git a/openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_etf_holdings_performance_fetcher.yaml b/openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_etf_holdings_performance_fetcher.yaml deleted file mode 100644 index 5f2bdcb66599..000000000000 --- a/openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_etf_holdings_performance_fetcher.yaml +++ /dev/null @@ -1,318 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - method: GET - uri: https://financialmodelingprep.com/api/v3/etf-holder/QQQ?apikey=MOCK_API_KEY - response: - body: - string: !!binary | - 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 - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Allow-Headers: - - X-Requested-With, content-type, auth-token, Authorization, stripe-signature, - APPS, publicauthkey, privateauthkey - Access-Control-Allow-Methods: - - GET, POST, OPTIONS - Access-Control-Allow-Origin: - - '*' - Access-Control-Max-Age: - - '3600' - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 17 Apr 2024 16:43:17 GMT - Etag: - - W/"5e32-2V5eXB4F7xydvsbJCpdYbUQZt7g" - Server: - - nginx/1.18.0 (Ubuntu) - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - X-Frame-Options: - - SAMEORIGIN - X-Powered-By: - - Express - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - method: GET - uri: https://financialmodelingprep.com/api/v3/stock-price-change/MSFT,AAPL,NVDA,AMZN,META,AVGO,GOOGL,GOOG,COST,TSLA,NFLX,AMD,PEP,LIN,ADBE,CSCO,TMUS,QCOM,INTU,AMAT,CMCSA,INTC,TXN,AMGN,MU,ISRG,HON,LRCX,BKNG,VRTX,ADP,REGN,SBUX,ADI,KLAC,MDLZ,PANW,GILD,SNPS,ASML,CDNS,PDD,MAR,MELI,CSX,ABNB,CRWD,PYPL,CTAS,ORLY,PCAR,NXPI,CEG,MRVL,ROP,MNST,WDAY,CPRT,DXCM,DASH,FTNT,ADSK,ODFL,MCHP,ROST,PAYX,KHC,AEP,KDP,IDXX,LULU,AZN,FAST,MRNA,GEHC,DDOG,CHTR,FANG,EXC,TTD,CSGP,CTSH,EA,BKR,CDW,VRSK,CCEP,TEAM,XEL,ANSS,BIIB,ON,DLTR,GFS,ZS,MDB,TTWO,WBD,ILMN,WBA,SIRI?apikey=MOCK_API_KEY - response: - body: - string: !!binary | - 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 - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Allow-Headers: - - X-Requested-With, content-type, auth-token, Authorization, stripe-signature, - APPS, publicauthkey, privateauthkey - Access-Control-Allow-Methods: - - GET, POST, OPTIONS - Access-Control-Allow-Origin: - - '*' - Access-Control-Max-Age: - - '3600' - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 17 Apr 2024 16:43:18 GMT - Etag: - - W/"648e-k76Hijq+oGLG6HSSxeTTBMtZTLg" - Server: - - nginx/1.18.0 (Ubuntu) - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - X-Frame-Options: - - SAMEORIGIN - X-Powered-By: - - Express - status: - code: 200 - message: OK -version: 1 diff --git a/openbb_platform/providers/fmp/tests/test_fmp_fetchers.py b/openbb_platform/providers/fmp/tests/test_fmp_fetchers.py index 7bd48e003ee7..7980ab86344c 100644 --- a/openbb_platform/providers/fmp/tests/test_fmp_fetchers.py +++ b/openbb_platform/providers/fmp/tests/test_fmp_fetchers.py @@ -38,7 +38,6 @@ from openbb_fmp.models.etf_equity_exposure import FMPEtfEquityExposureFetcher from openbb_fmp.models.etf_holdings import FMPEtfHoldingsFetcher from openbb_fmp.models.etf_holdings_date import FMPEtfHoldingsDateFetcher -from openbb_fmp.models.etf_holdings_performance import FMPEtfHoldingsPerformanceFetcher from openbb_fmp.models.etf_info import FMPEtfInfoFetcher from openbb_fmp.models.etf_search import FMPEtfSearchFetcher from openbb_fmp.models.etf_sectors import FMPEtfSectorsFetcher @@ -649,16 +648,6 @@ def test_fmp_etf_countries_fetcher(credentials=test_credentials): assert result is None -@pytest.mark.record_http -def test_fmp_etf_holdings_performance_fetcher(credentials=test_credentials): - """Test FMP ETF holdings performance fetcher.""" - params = {"symbol": "QQQ"} - - fetcher = FMPEtfHoldingsPerformanceFetcher() - result = fetcher.test(params, credentials) - assert result is None - - @pytest.mark.record_http def test_fmp_discovery_filings_fetcher(credentials=test_credentials): """Test FMP discovery filings fetcher.""" From 1e5bc18ea130a53b56eb8bf3e17575f94e915f82 Mon Sep 17 00:00:00 2001 From: hjoaquim Date: Mon, 20 May 2024 18:47:36 +0100 Subject: [PATCH 6/6] ruff --- openbb_platform/core/tests/app/test_deprecation.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openbb_platform/core/tests/app/test_deprecation.py b/openbb_platform/core/tests/app/test_deprecation.py index e9b637e9966f..bca6c5381ae3 100644 --- a/openbb_platform/core/tests/app/test_deprecation.py +++ b/openbb_platform/core/tests/app/test_deprecation.py @@ -2,7 +2,6 @@ import unittest -import pytest from openbb_core.app.static.package_builder import PathHandler from openbb_core.app.version import VERSION, get_major_minor