diff --git a/openbb_platform/core/openbb_core/provider/standard_models/index_historical.py b/openbb_platform/core/openbb_core/provider/standard_models/index_historical.py index 5a0a9f31579..ad5c1ecea46 100644 --- a/openbb_platform/core/openbb_core/provider/standard_models/index_historical.py +++ b/openbb_platform/core/openbb_core/provider/standard_models/index_historical.py @@ -4,10 +4,10 @@ from datetime import ( date as dateType, datetime, ) -from typing import Literal, Optional, Union +from typing import Optional, Union from dateutil import parser -from pydantic import Field, PositiveInt, StrictFloat, field_validator +from pydantic import Field, StrictFloat, field_validator from openbb_core.provider.abstract.data import Data, ForceInt from openbb_core.provider.abstract.query_params import QueryParams @@ -31,14 +31,6 @@ class IndexHistoricalQueryParams(QueryParams): default="1d", description=QUERY_DESCRIPTIONS.get("interval", ""), ) - limit: Optional[PositiveInt] = Field( - default=10000, - description=QUERY_DESCRIPTIONS.get("limit", ""), - ) - sort: Optional[Literal["asc", "desc"]] = Field( - default="asc", - description="Sort the data in ascending or descending order.", - ) @field_validator("symbol", mode="before", check_fields=False) @classmethod diff --git a/openbb_platform/core/tests/app/test_query.py b/openbb_platform/core/tests/app/test_query.py index 54e6a5f5e2a..42cee25f79b 100644 --- a/openbb_platform/core/tests/app/test_query.py +++ b/openbb_platform/core/tests/app/test_query.py @@ -86,7 +86,7 @@ def test_filter_extra_params_wrong_param(query): extra = query.filter_extra_params(extra_params, "fmp") assert isinstance(extra, dict) - assert len(extra) == 1 + assert len(extra) == 0 @pytest.fixture diff --git a/openbb_platform/extensions/crypto/integration/test_crypto_api.py b/openbb_platform/extensions/crypto/integration/test_crypto_api.py index e91f92be6c5..161bf9960a8 100644 --- a/openbb_platform/extensions/crypto/integration/test_crypto_api.py +++ b/openbb_platform/extensions/crypto/integration/test_crypto_api.py @@ -43,30 +43,11 @@ def test_crypto_search(params, headers): [ ( { - "symbol": "BTC-USD", - "start_date": "2023-01-01", - "end_date": "2023-01-06", - "provider": "polygon", - } - ), - ( - { - "interval": "1min", + "interval": "1d", "provider": "fmp", "symbol": "BTCUSD", "start_date": "2023-01-01", "end_date": "2023-01-02", - "timeseries": 1, - } - ), - ( - { - "interval": "15min", - "provider": "fmp", - "symbol": "BTCUSD", - "start_date": "2023-01-01", - "end_date": "2023-01-03", - "timeseries": 1, } ), ( @@ -94,18 +75,17 @@ def test_crypto_search(params, headers): ( { "interval": "1d", - "period": "max", "provider": "yfinance", "symbol": "BTCUSD", "start_date": "2023-01-01", - "end_date": "2023-01-03", + "end_date": "2023-01-04", } ), ( { "provider": "tiingo", - "interval": "1day", - "exchanges": ["POLONIEX", "GDAX"], + "interval": "1d", + "exchanges": None, "symbol": "BTCUSD", "start_date": "2023-01-01", "end_date": "2023-06-06", @@ -114,7 +94,7 @@ def test_crypto_search(params, headers): ( { "provider": "tiingo", - "interval": "1hour", + "interval": "1h", "exchanges": ["POLONIEX", "GDAX"], "symbol": "BTCUSD", "start_date": "2023-01-01", diff --git a/openbb_platform/extensions/crypto/integration/test_crypto_python.py b/openbb_platform/extensions/crypto/integration/test_crypto_python.py index 4376855d0e4..6d3f49e1ae2 100644 --- a/openbb_platform/extensions/crypto/integration/test_crypto_python.py +++ b/openbb_platform/extensions/crypto/integration/test_crypto_python.py @@ -38,29 +38,11 @@ def test_crypto_search(params, obb): [ ( { - "symbol": "BTCUSD", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - } - ), - ( - { - "interval": "1min", + "interval": "1d", "provider": "fmp", "symbol": "BTCUSD", "start_date": "2023-01-01", "end_date": "2023-01-02", - "timeseries": 1, - } - ), - ( - { - "interval": "15min", - "provider": "fmp", - "symbol": "BTCUSD", - "start_date": "2023-01-01", - "end_date": "2023-01-03", - "timeseries": 1, } ), ( @@ -88,7 +70,6 @@ def test_crypto_search(params, obb): ( { "interval": "1d", - "period": "max", "provider": "yfinance", "symbol": "BTCUSD", "start_date": "2023-01-01", @@ -98,8 +79,8 @@ def test_crypto_search(params, obb): ( { "provider": "tiingo", - "interval": "1day", - "exchanges": ["POLONIEX", "GDAX"], + "interval": "1d", + "exchanges": None, "symbol": "BTCUSD", "start_date": "2023-01-01", "end_date": "2023-06-06", @@ -108,7 +89,7 @@ def test_crypto_search(params, obb): ( { "provider": "tiingo", - "interval": "1hour", + "interval": "1h", "exchanges": ["POLONIEX", "GDAX"], "symbol": "BTCUSD", "start_date": "2023-01-01", diff --git a/openbb_platform/extensions/currency/integration/test_currency_api.py b/openbb_platform/extensions/currency/integration/test_currency_api.py index 9cdfee0063e..90449a69e3f 100644 --- a/openbb_platform/extensions/currency/integration/test_currency_api.py +++ b/openbb_platform/extensions/currency/integration/test_currency_api.py @@ -64,21 +64,12 @@ def test_currency_search(params, headers): ( { "symbol": "EURUSD", + "interval": "1d", "start_date": "2023-01-01", "end_date": "2023-06-06", - "interval": "1day", "provider": "fmp", } ), - ( - { - "interval": "1min", - "provider": "fmp", - "symbol": "EURUSD", - "start_date": "2023-01-01", - "end_date": "2023-01-02", - } - ), ( { "interval": "1m", @@ -87,7 +78,7 @@ def test_currency_search(params, headers): "provider": "polygon", "symbol": "EURUSD", "start_date": "2023-01-01", - "end_date": "2023-01-02", + "end_date": "2023-01-10", } ), ( @@ -101,29 +92,27 @@ def test_currency_search(params, headers): "end_date": "2023-06-06", } ), - ( - { - "interval": "5m", - "period": "max", - "provider": "yfinance", - "symbol": "EURUSD", - "start_date": "2023-01-01", - "end_date": "2023-01-02", - } - ), ( { "interval": "1d", - "period": "max", "provider": "yfinance", "symbol": "EURUSD", "start_date": "2023-01-01", - "end_date": "2023-06-06", + "end_date": "2023-01-10", } ), ( { - "interval": "1hour", + "interval": "1m", + "provider": "yfinance", + "symbol": "EURUSD", + "start_date": None, + "end_date": None, + } + ), + ( + { + "interval": "1h", "provider": "tiingo", "symbol": "EURUSD", "start_date": "2023-05-21", @@ -132,7 +121,7 @@ def test_currency_search(params, headers): ), ( { - "interval": "1day", + "interval": "1d", "provider": "tiingo", "symbol": "EURUSD", "start_date": "2023-05-21", diff --git a/openbb_platform/extensions/currency/integration/test_currency_python.py b/openbb_platform/extensions/currency/integration/test_currency_python.py index a2be2302101..0c91b7b19b0 100644 --- a/openbb_platform/extensions/currency/integration/test_currency_python.py +++ b/openbb_platform/extensions/currency/integration/test_currency_python.py @@ -59,21 +59,12 @@ def test_currency_search(params, obb): ( { "symbol": "EURUSD", - "interval": "1day", + "interval": "1d", "start_date": "2023-01-01", "end_date": "2023-06-06", "provider": "fmp", } ), - ( - { - "interval": "1min", - "provider": "fmp", - "symbol": "EURUSD", - "start_date": "2023-01-01", - "end_date": "2023-01-02", - } - ), ( { "interval": "1m", @@ -82,7 +73,7 @@ def test_currency_search(params, obb): "provider": "polygon", "symbol": "EURUSD", "start_date": "2023-01-01", - "end_date": "2023-01-02", + "end_date": "2023-01-10", } ), ( @@ -99,26 +90,24 @@ def test_currency_search(params, obb): ( { "interval": "1d", - "period": "max", "provider": "yfinance", "symbol": "EURUSD", "start_date": "2023-01-01", - "end_date": "2023-01-02", + "end_date": "2023-01-10", } ), ( { - "interval": "1d", - "period": "max", + "interval": "1m", "provider": "yfinance", "symbol": "EURUSD", - "start_date": "2023-01-01", - "end_date": "2023-06-06", + "start_date": None, + "end_date": None, } ), ( { - "interval": "1hour", + "interval": "1h", "provider": "tiingo", "symbol": "EURUSD", "start_date": "2023-05-21", @@ -127,7 +116,7 @@ def test_currency_search(params, obb): ), ( { - "interval": "1day", + "interval": "1d", "provider": "tiingo", "symbol": "EURUSD", "start_date": "2023-05-21", diff --git a/openbb_platform/extensions/econometrics/integration/test_econometrics_api.py b/openbb_platform/extensions/econometrics/integration/test_econometrics_api.py index 240749e3aab..0cf0851b451 100644 --- a/openbb_platform/extensions/econometrics/integration/test_econometrics_api.py +++ b/openbb_platform/extensions/econometrics/integration/test_econometrics_api.py @@ -48,7 +48,7 @@ def get_crypto_data(): return data["crypto_data"] # TODO : add more crypto providers and symbols - symbol = random.choice(["BTC"]) # noqa: S311 + symbol = random.choice(["BTCUSD"]) # noqa: S311 provider = random.choice(["fmp"]) # noqa: S311 data["crypto_data"] = request_data( diff --git a/openbb_platform/extensions/econometrics/integration/test_econometrics_python.py b/openbb_platform/extensions/econometrics/integration/test_econometrics_python.py index e4caa1ce123..ec67c062f36 100644 --- a/openbb_platform/extensions/econometrics/integration/test_econometrics_python.py +++ b/openbb_platform/extensions/econometrics/integration/test_econometrics_python.py @@ -46,7 +46,7 @@ def get_crypto_data(): return data["crypto_data"] # TODO : add more crypto providers and symbols - symbol = random.choice(["BTC"]) # noqa: S311 + symbol = random.choice(["BTCUSD"]) # noqa: S311 provider = random.choice(["fmp"]) # noqa: S311 data["crypto_data"] = openbb.obb.crypto.price.historical( diff --git a/openbb_platform/extensions/equity/integration/test_equity_api.py b/openbb_platform/extensions/equity/integration/test_equity_api.py index 465513c42b0..76d0602f955 100644 --- a/openbb_platform/extensions/equity/integration/test_equity_api.py +++ b/openbb_platform/extensions/equity/integration/test_equity_api.py @@ -1,7 +1,6 @@ """API integration tests for equity extension.""" import base64 -from datetime import time import pytest import requests @@ -457,7 +456,7 @@ def test_equity_fundamental_income_growth(params, headers): { "symbol": "RY", "provider": "tmx", - "limit": None, + "limit": 0, } ), ( @@ -902,153 +901,122 @@ def test_equity_compare_groups(params, headers): [ ( { - "symbol": "AAPL", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - "interval": "1d", - "provider": "yfinance", - } - ), - ( - { - "adjusted": True, + "adjustment": "unadjusted", "extended_hours": True, - "month": "2023-01", - "output_size": "full", "provider": "alpha_vantage", "symbol": "AAPL", "start_date": "2023-01-01", - "end_date": "2023-01-02", - "interval": "1m", + "end_date": "2023-06-06", + "interval": "15m", } ), ( { - "adjusted": True, + "provider": "cboe", + "symbol": "AAPL", + "start_date": None, + "end_date": None, + "interval": "1m", + "use_cache": False, + } + ), + ( + { + "provider": "cboe", + "symbol": "AAPL", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + "interval": "1d", + "use_cache": False, + } + ), + ( + { + "provider": "fmp", + "symbol": "AAPL", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + "interval": "1d", + } + ), + ( + { + "timezone": "UTC", + "source": "realtime", + "start_time": None, + "end_time": None, + "provider": "intrinio", + "symbol": "AAPL", + "start_date": "2023-06-01", + "end_date": "2023-06-03", + "interval": "1h", + } + ), + ( + { + "timezone": None, + "source": "delayed", + "start_time": None, + "end_time": None, + "provider": "intrinio", + "symbol": "AAPL", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + "interval": "1d", + } + ), + ( + { + "sort": "desc", + "limit": "49999", + "adjustment": "unadjusted", + "provider": "polygon", + "symbol": "AAPL", + "start_date": "2023-01-01", + "end_date": "2023-01-03", + "interval": "1m", "extended_hours": False, - "output_size": "full", - "month": "2023-01", - "provider": "alpha_vantage", - "symbol": "AAPL", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - "interval": "1d", - } - ), - ( - { - "provider": "cboe", - "symbol": "AAPL", - "start_date": "2024-02-19", - "end_date": "2024-02-20", - "interval": "1m", - "use_cache": False, - } - ), - ( - { - "provider": "cboe", - "symbol": "AAPL", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - "interval": "1d", - "use_cache": False, - } - ), - ( - { - "limit": "30", - "provider": "fmp", - "symbol": "AAPL", - "start_date": "2023-01-01", - "end_date": "2023-01-02", - "interval": "1m", - } - ), - ( - { - "limit": "30", - "provider": "fmp", - "symbol": "AAPL", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - "interval": "1d", - } - ), - ( - { - "timezone": "UTC", - "source": "realtime", - "start_time": time(5, 30, 0), - "end_time": time(12, 0, 0), - "provider": "intrinio", - "symbol": "AAPL", - "start_date": "2023-06-01", - "end_date": "2023-06-03", - "interval": "1h", - } - ), - ( - { - "timezone": "UTC", - "source": "realtime", - "start_time": time(5, 30, 0), - "end_time": time(12, 0, 0), - "provider": "intrinio", - "symbol": "AAPL", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - "interval": "1d", } ), ( { "sort": "desc", "limit": "49999", - "adjusted": "True", - "provider": "polygon", - "symbol": "AAPL", - "start_date": "2023-01-01", - "end_date": "2023-01-04", - "interval": "1m", - } - ), - ( - { - "sort": "desc", - "limit": "49999", - "adjusted": "True", + "adjustment": "splits_only", "provider": "polygon", "symbol": "AAPL", "start_date": "2023-01-01", "end_date": "2023-06-06", "interval": "1d", + "extended_hours": False, } ), ( { - "prepost": False, - "include": True, - "adjusted": False, - "ignore_tz": True, + "extended_hours": False, + "include_actions": False, + "adjustment": "splits_and_dividends", "provider": "yfinance", "symbol": "AAPL", "start_date": "2023-06-01", "end_date": "2023-06-03", "interval": "1h", + "adjusted": False, + "prepost": False, } ), ( { - "prepost": False, - "include": True, - "adjusted": False, - "ignore_tz": True, + "extended_hours": False, + "include_actions": True, + "adjustment": "splits_only", "provider": "yfinance", "symbol": "AAPL", "start_date": "2023-01-01", "end_date": "2023-06-06", "interval": "1d", + "adjusted": False, + "prepost": False, } ), ( @@ -1083,8 +1051,6 @@ def test_equity_compare_groups(params, headers): ) @pytest.mark.integration def test_equity_price_historical(params, headers): - if params.get("provider") == "alpha_vantage": - pytest.skip("Alpha Vantage is premium.") params = {p: v for p, v in params.items() if v} query_str = get_querystring(params, []) diff --git a/openbb_platform/extensions/equity/integration/test_equity_python.py b/openbb_platform/extensions/equity/integration/test_equity_python.py index 5dcef760320..7182c1f249e 100644 --- a/openbb_platform/extensions/equity/integration/test_equity_python.py +++ b/openbb_platform/extensions/equity/integration/test_equity_python.py @@ -1,6 +1,6 @@ """Python interface integration tests for the equity extension.""" -from datetime import date, time, timedelta +from datetime import date, timedelta import pytest from extensions.tests.conftest import parametrize @@ -423,7 +423,7 @@ def test_equity_fundamental_income_growth(params, obb): { "symbol": "RY", "provider": "tmx", - "limit": None, + "limit": 0, } ), ( @@ -840,36 +840,13 @@ def test_equity_compare_groups(params, obb): [ ( { - "symbol": "AAPL", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - "interval": "1d", - } - ), - ( - { - "adjusted": True, + "adjustment": "unadjusted", "extended_hours": True, - "month": "2023-01", - "output_size": "full", - "provider": "alpha_vantage", - "symbol": "AAPL", - "start_date": "2023-01-01", - "end_date": "2023-01-02", - "interval": "1m", - } - ), - ( - { - "adjusted": True, - "extended_hours": False, - "output_size": "full", - "month": "2023-01", "provider": "alpha_vantage", "symbol": "AAPL", "start_date": "2023-01-01", "end_date": "2023-06-06", - "interval": "1d", + "interval": "15m", } ), ( @@ -894,17 +871,6 @@ def test_equity_compare_groups(params, obb): ), ( { - "limit": "30", - "provider": "fmp", - "symbol": "AAPL", - "start_date": "2023-01-02", - "end_date": "2023-01-03", - "interval": "1m", - } - ), - ( - { - "limit": "30", "provider": "fmp", "symbol": "AAPL", "start_date": "2023-01-01", @@ -916,8 +882,8 @@ def test_equity_compare_groups(params, obb): { "timezone": "UTC", "source": "realtime", - "start_time": time(5, 30, 0), - "end_time": time(12, 0, 0), + "start_time": None, + "end_time": None, "provider": "intrinio", "symbol": "AAPL", "start_date": "2023-06-01", @@ -927,10 +893,10 @@ def test_equity_compare_groups(params, obb): ), ( { - "timezone": "UTC", - "source": "realtime", - "start_time": time(5, 30, 0), - "end_time": time(12, 0, 0), + "timezone": None, + "source": "delayed", + "start_time": None, + "end_time": None, "provider": "intrinio", "symbol": "AAPL", "start_date": "2023-01-01", @@ -942,50 +908,54 @@ def test_equity_compare_groups(params, obb): { "sort": "desc", "limit": "49999", - "adjusted": "True", + "adjustment": "unadjusted", "provider": "polygon", "symbol": "AAPL", "start_date": "2023-01-01", "end_date": "2023-01-03", "interval": "1m", + "extended_hours": False, } ), ( { "sort": "desc", "limit": "49999", - "adjusted": "True", + "adjustment": "splits_only", "provider": "polygon", "symbol": "AAPL", "start_date": "2023-01-01", "end_date": "2023-06-06", "interval": "1d", + "extended_hours": False, } ), ( { - "prepost": False, - "include": True, - "adjusted": False, - "ignore_tz": True, + "extended_hours": False, + "include_actions": False, + "adjustment": "splits_and_dividends", "provider": "yfinance", "symbol": "AAPL", "start_date": "2023-06-01", "end_date": "2023-06-03", "interval": "1h", + "adjusted": True, + "prepost": False, } ), ( { - "prepost": False, - "include": True, - "adjusted": False, - "ignore_tz": True, + "extended_hours": False, + "include_actions": True, + "adjustment": "splits_only", "provider": "yfinance", "symbol": "AAPL", "start_date": "2023-01-01", "end_date": "2023-06-06", "interval": "1d", + "adjusted": False, + "prepost": False, } ), ( @@ -1020,9 +990,6 @@ def test_equity_compare_groups(params, obb): ) @pytest.mark.integration def test_equity_price_historical(params, obb): - if params.get("provider") == "alpha_vantage": - pytest.skip("skipping alpha_vantage") - result = obb.equity.price.historical(**params) assert result assert isinstance(result, OBBject) diff --git a/openbb_platform/extensions/etf/integration/test_etf_api.py b/openbb_platform/extensions/etf/integration/test_etf_api.py index 4073a89631a..4c6e7b33d3a 100644 --- a/openbb_platform/extensions/etf/integration/test_etf_api.py +++ b/openbb_platform/extensions/etf/integration/test_etf_api.py @@ -50,18 +50,150 @@ def test_etf_search(params, headers): [ ( { - "symbol": "IOO", + "adjustment": "unadjusted", + "extended_hours": True, + "provider": "alpha_vantage", + "symbol": "SPY", "start_date": "2023-01-01", "end_date": "2023-06-06", - "provider": "yfinance", + "interval": "15m", } ), ( { - "symbol": "MISL", + "provider": "cboe", + "symbol": "SPY", + "start_date": None, + "end_date": None, + "interval": "1m", + "use_cache": False, + } + ), + ( + { + "provider": "cboe", + "symbol": "SPY", "start_date": "2023-01-01", "end_date": "2023-06-06", + "interval": "1d", + "use_cache": False, + } + ), + ( + { + "provider": "fmp", + "symbol": "SPY", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + "interval": "1d", + } + ), + ( + { + "timezone": "UTC", + "source": "realtime", + "start_time": None, + "end_time": None, + "provider": "intrinio", + "symbol": "SPY", + "start_date": "2023-06-01", + "end_date": "2023-06-03", + "interval": "1h", + } + ), + ( + { + "timezone": None, + "source": "delayed", + "start_time": None, + "end_time": None, + "provider": "intrinio", + "symbol": "AAPL", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + "interval": "1d", + } + ), + ( + { + "sort": "desc", + "limit": "49999", + "adjustment": "unadjusted", + "provider": "polygon", + "symbol": "SPY", + "start_date": "2023-01-01", + "end_date": "2023-01-03", + "interval": "1m", + "extended_hours": False, + } + ), + ( + { + "sort": "desc", + "limit": "49999", + "adjustment": "splits_only", + "provider": "polygon", + "symbol": "SPY", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + "interval": "1d", + "extended_hours": False, + } + ), + ( + { + "extended_hours": False, + "include_actions": False, + "adjustment": "splits_and_dividends", "provider": "yfinance", + "symbol": "SPY", + "start_date": "2023-06-01", + "end_date": "2023-06-03", + "interval": "1h", + "adjusted": True, + "prepost": False, + } + ), + ( + { + "extended_hours": False, + "include_actions": True, + "adjustment": "splits_only", + "provider": "yfinance", + "symbol": "SPY", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + "interval": "1d", + "adjusted": False, + "prepost": False, + } + ), + ( + { + "provider": "tiingo", + "symbol": "SPY", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + "interval": "1d", + } + ), + ( + { + "provider": "tiingo", + "symbol": "SPY", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + "interval": "1M", + } + ), + ( + { + "provider": "tmx", + "symbol": "SPY:US", + "start_date": "2023-01-01", + "end_date": "2023-12-31", + "interval": "1d", + "adjustment": "splits_only", } ), ], diff --git a/openbb_platform/extensions/etf/integration/test_etf_python.py b/openbb_platform/extensions/etf/integration/test_etf_python.py index 43be1ac4f53..c54c53737d4 100644 --- a/openbb_platform/extensions/etf/integration/test_etf_python.py +++ b/openbb_platform/extensions/etf/integration/test_etf_python.py @@ -48,27 +48,157 @@ def test_etf_search(params, obb): [ ( { - "symbol": "IOO", + "adjustment": "unadjusted", + "extended_hours": True, + "provider": "alpha_vantage", + "symbol": "SPY", "start_date": "2023-01-01", "end_date": "2023-06-06", - "provider": "yfinance", + "interval": "15m", } ), ( { - "symbol": "MISL", + "provider": "cboe", + "symbol": "SPY", + "start_date": None, + "end_date": None, + "interval": "1m", + "use_cache": False, + } + ), + ( + { + "provider": "cboe", + "symbol": "SPY", "start_date": "2023-01-01", "end_date": "2023-06-06", + "interval": "1d", + "use_cache": False, + } + ), + ( + { + "provider": "fmp", + "symbol": "SPY", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + "interval": "1d", + } + ), + ( + { + "timezone": "UTC", + "source": "realtime", + "start_time": None, + "end_time": None, + "provider": "intrinio", + "symbol": "SPY", + "start_date": "2023-06-01", + "end_date": "2023-06-03", + "interval": "1h", + } + ), + ( + { + "timezone": None, + "source": "delayed", + "start_time": None, + "end_time": None, + "provider": "intrinio", + "symbol": "AAPL", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + "interval": "1d", + } + ), + ( + { + "sort": "desc", + "limit": "49999", + "adjustment": "unadjusted", + "provider": "polygon", + "symbol": "SPY", + "start_date": "2023-01-01", + "end_date": "2023-01-03", + "interval": "1m", + "extended_hours": False, + } + ), + ( + { + "sort": "desc", + "limit": "49999", + "adjustment": "splits_only", + "provider": "polygon", + "symbol": "SPY", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + "interval": "1d", + "extended_hours": False, + } + ), + ( + { + "extended_hours": False, + "include_actions": False, + "adjustment": "splits_and_dividends", "provider": "yfinance", + "symbol": "SPY", + "start_date": "2023-06-01", + "end_date": "2023-06-03", + "interval": "1h", + "adjusted": True, + "prepost": False, + } + ), + ( + { + "extended_hours": False, + "include_actions": True, + "adjustment": "splits_only", + "provider": "yfinance", + "symbol": "SPY", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + "interval": "1d", + "adjusted": False, + "prepost": False, + } + ), + ( + { + "provider": "tiingo", + "symbol": "SPY", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + "interval": "1d", + } + ), + ( + { + "provider": "tiingo", + "symbol": "SPY", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + "interval": "1M", + } + ), + ( + { + "provider": "tmx", + "symbol": "SPY:US", + "start_date": "2023-01-01", + "end_date": "2023-12-31", + "interval": "1d", + "adjustment": "splits_only", } ), ], ) @pytest.mark.integration def test_etf_historical(params, obb): - params = {p: v for p, v in params.items() if v} - - result = obb.etf.historical(**params) + result = obb.equity.price.historical(**params) assert result assert isinstance(result, OBBject) assert len(result.results) > 0 diff --git a/openbb_platform/extensions/index/integration/test_index_api.py b/openbb_platform/extensions/index/integration/test_index_api.py index 430c5c605bd..cd6e2868384 100644 --- a/openbb_platform/extensions/index/integration/test_index_api.py +++ b/openbb_platform/extensions/index/integration/test_index_api.py @@ -41,18 +41,6 @@ def test_index_constituents(params, headers): @parametrize( "params", [ - ( - { - "interval": "1m", - "provider": "cboe", - "symbol": "AAVE100", - "start_date": "2024-01-01", - "end_date": "2024-02-05", - "use_cache": False, - "sort": None, - "limit": None, - } - ), ( { "interval": "1d", @@ -61,39 +49,22 @@ def test_index_constituents(params, headers): "start_date": "2023-01-01", "end_date": "2023-06-06", "use_cache": False, - "sort": None, - "limit": None, } ), ( { - "interval": "1min", + "interval": "1d", "provider": "fmp", "symbol": "^DJI", "start_date": "2024-01-01", "end_date": "2024-02-05", - "timeseries": 1, - "sort": "desc", - "limit": None, - } - ), - ( - { - "interval": "1day", - "provider": "fmp", - "symbol": "^DJI", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - "timeseries": 1, - "sort": "desc", - "limit": None, } ), ( { + "interval": "1m", "sort": "desc", "limit": 49999, - "interval": "1m", "provider": "polygon", "symbol": "NDX", "start_date": "2023-01-01", @@ -114,15 +85,10 @@ def test_index_constituents(params, headers): ( { "interval": "1d", - "period": "max", - "prepost": True, - "rounding": True, "provider": "yfinance", "symbol": "DJI", "start_date": "2023-01-01", "end_date": "2023-06-06", - "sort": None, - "limit": None, } ), ( @@ -132,7 +98,6 @@ def test_index_constituents(params, headers): "start_date": "2023-01-01", "end_date": "2023-06-06", "symbol": "DJI", - "sort": "desc", "limit": 100, } ), @@ -152,29 +117,6 @@ def test_index_price_historical(params, headers): @parametrize( "params", [ - ( - { - "symbol": "^DJI", - "start_date": "2023-01-01", - "end_date": "2023-03-03", - "provider": "fmp", - "sort": "desc", - "interval": "1day", - "limit": None, - } - ), - ( - { - "interval": "1m", - "provider": "cboe", - "symbol": "AAVE100", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - "use_cache": True, - "limit": None, - "sort": None, - } - ), ( { "interval": "1d", @@ -183,92 +125,62 @@ def test_index_price_historical(params, headers): "start_date": "2023-01-01", "end_date": "2023-06-06", "use_cache": False, - "limit": None, - "sort": None, - } - ), - ( - { - "interval": "1min", - "provider": "fmp", - "symbol": "^DJI", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - "timeseries": 1, - "sort": "desc", - "limit": None, - } - ), - ( - { - "interval": "1day", - "provider": "fmp", - "symbol": "^DJI", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - "timeseries": 1, - "sort": "desc", - "limit": None, - } - ), - ( - { - "timespan": "minute", - "sort": "desc", - "limit": 49999, - "adjusted": True, - "multiplier": 1, - "provider": "polygon", - "symbol": "NDX", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - "interval": None, - } - ), - ( - { - "timespan": "day", - "sort": "desc", - "limit": 49999, - "adjusted": True, - "multiplier": 1, - "provider": "polygon", - "symbol": "NDX", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - "interval": None, } ), ( { "interval": "1d", - "period": "max", - "prepost": True, - "rounding": True, - "provider": "yfinance", - "symbol": "DJI", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - "limit": None, - "sort": None, + "provider": "fmp", + "symbol": "^DJI", + "start_date": "2024-01-01", + "end_date": "2024-02-05", } ), ( { + "interval": "1m", + "sort": "desc", + "limit": 49999, + "provider": "polygon", + "symbol": "NDX", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + } + ), + ( + { + "interval": "1d", + "sort": "desc", + "limit": 49999, + "provider": "polygon", + "symbol": "NDX", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + } + ), + ( + { + "interval": "1d", + "provider": "yfinance", + "symbol": "DJI", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + } + ), + ( + { + "interval": "1d", "provider": "intrinio", "start_date": "2023-01-01", "end_date": "2023-06-06", - "symbol": "$DJI", - "tag": "level", - "sort": "desc", + "symbol": "DJI", "limit": 100, - "type": None, - "interval": None, } ), ], ) @pytest.mark.integration +@pytest.mark.skip(reason="Deprecating this endpoint") def test_index_market(params, headers): params = {p: v for p, v in params.items() if v} diff --git a/openbb_platform/extensions/index/integration/test_index_python.py b/openbb_platform/extensions/index/integration/test_index_python.py index fa73aaa5e48..29f20b5f34a 100644 --- a/openbb_platform/extensions/index/integration/test_index_python.py +++ b/openbb_platform/extensions/index/integration/test_index_python.py @@ -42,47 +42,18 @@ def test_index_constituents(params, obb): "interval": "1d", "provider": "cboe", "symbol": "AAVE100", - "start_date": "2024-01-01", - "end_date": "2024-02-05", + "start_date": "2023-01-01", + "end_date": "2023-06-06", "use_cache": False, - "sort": None, - "limit": None, } ), ( { "interval": "1d", - "provider": "cboe", - "symbol": "AAVE100", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - "use_cache": False, - "sort": None, - "limit": None, - } - ), - ( - { - "interval": "1min", "provider": "fmp", "symbol": "^DJI", "start_date": "2024-01-01", "end_date": "2024-02-05", - "timeseries": 1, - "sort": "desc", - "limit": None, - } - ), - ( - { - "interval": "1day", - "provider": "fmp", - "symbol": "^DJI", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - "timeseries": 1, - "sort": "desc", - "limit": None, } ), ( @@ -110,15 +81,10 @@ def test_index_constituents(params, obb): ( { "interval": "1d", - "period": "max", - "prepost": True, - "rounding": True, "provider": "yfinance", "symbol": "DJI", "start_date": "2023-01-01", "end_date": "2023-06-06", - "sort": None, - "limit": None, } ), ( @@ -128,7 +94,6 @@ def test_index_constituents(params, obb): "start_date": "2023-01-01", "end_date": "2023-06-06", "symbol": "DJI", - "sort": "desc", "limit": 100, } ), @@ -145,123 +110,70 @@ def test_index_price_historical(params, obb): @parametrize( "params", [ - ( - { - "symbol": "^DJI", - "start_date": "2023-01-01", - "end_date": "2023-03-03", - "provider": "fmp", - "sort": "desc", - "interval": "1day", - "limit": None, - } - ), ( { "interval": "1d", "provider": "cboe", "symbol": "AAVE100", "start_date": "2023-01-01", - "end_date": "2023-01-05", - "use_cache": True, - "limit": None, - "sort": None, - } - ), - ( - { - "interval": "1d", - "provider": "cboe", - "symbol": "AAVE100", - "start_date": "2024-01-01", - "end_date": "2024-02-06", + "end_date": "2023-06-06", "use_cache": False, - "limit": None, - "sort": None, - } - ), - ( - { - "interval": "1min", - "provider": "fmp", - "symbol": "^DJI", - "start_date": "2024-02-01", - "end_date": "2024-02-03", - "timeseries": 1, - "sort": "desc", - "limit": None, - } - ), - ( - { - "interval": "1day", - "provider": "fmp", - "symbol": "^DJI", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - "timeseries": 1, - "sort": "desc", - "limit": None, - } - ), - ( - { - "timespan": "minute", - "sort": "desc", - "limit": 49999, - "adjusted": True, - "multiplier": 1, - "provider": "polygon", - "symbol": "NDX", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - "interval": None, - } - ), - ( - { - "timespan": "day", - "sort": "desc", - "limit": 49999, - "adjusted": True, - "multiplier": 1, - "provider": "polygon", - "symbol": "NDX", - "start_date": "2023-01-01", - "end_date": "2023-06-06", - "interval": None, } ), ( { "interval": "1d", - "period": "max", - "prepost": True, - "rounding": True, + "provider": "fmp", + "symbol": "^DJI", + "start_date": "2024-01-01", + "end_date": "2024-02-05", + } + ), + ( + { + "interval": "1m", + "sort": "desc", + "limit": 49999, + "provider": "polygon", + "symbol": "NDX", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + } + ), + ( + { + "interval": "1d", + "sort": "desc", + "limit": 49999, + "provider": "polygon", + "symbol": "NDX", + "start_date": "2023-01-01", + "end_date": "2023-06-06", + } + ), + ( + { + "interval": "1d", "provider": "yfinance", "symbol": "DJI", "start_date": "2023-01-01", "end_date": "2023-06-06", - "limit": None, - "sort": None, } ), ( { + "interval": "1d", "provider": "intrinio", "start_date": "2023-01-01", "end_date": "2023-06-06", - "symbol": "$DJI", - "tag": "level", - "sort": "desc", + "symbol": "DJI", "limit": 100, - "type": None, - "interval": None, } ), ], ) @pytest.mark.integration +@pytest.mark.skip(reason="Deprecating this endpoint") def test_index_market(params, obb): result = obb.index.market(**params) assert result diff --git a/openbb_platform/extensions/quantitative/integration/test_quantitative_api.py b/openbb_platform/extensions/quantitative/integration/test_quantitative_api.py index ecb4960c4d4..e42c06c24ad 100644 --- a/openbb_platform/extensions/quantitative/integration/test_quantitative_api.py +++ b/openbb_platform/extensions/quantitative/integration/test_quantitative_api.py @@ -57,7 +57,7 @@ def get_crypto_data(): return data["crypto_data"] # TODO : add more crypto providers and symbols - symbol = random.choice(["BTC"]) # noqa: S311 + symbol = random.choice(["BTCUSD"]) # noqa: S311 provider = random.choice(["fmp"]) # noqa: S311 data["crypto_data"] = request_data( diff --git a/openbb_platform/extensions/quantitative/integration/test_quantitative_python.py b/openbb_platform/extensions/quantitative/integration/test_quantitative_python.py index 5c55621a8ae..d84c6981d61 100644 --- a/openbb_platform/extensions/quantitative/integration/test_quantitative_python.py +++ b/openbb_platform/extensions/quantitative/integration/test_quantitative_python.py @@ -45,7 +45,7 @@ def get_crypto_data(): return data["crypto_data"] # TODO : add more crypto providers and symbols - symbol = random.choice(["BTC"]) # noqa: S311 + symbol = random.choice(["BTCUSD"]) # noqa: S311 provider = random.choice(["fmp"]) # noqa: S311 data["crypto_data"] = openbb.obb.crypto.price.historical( diff --git a/openbb_platform/extensions/technical/integration/test_technical_api.py b/openbb_platform/extensions/technical/integration/test_technical_api.py index f14df504110..9c3f7f11ec9 100644 --- a/openbb_platform/extensions/technical/integration/test_technical_api.py +++ b/openbb_platform/extensions/technical/integration/test_technical_api.py @@ -56,7 +56,7 @@ def get_crypto_data(): return data["crypto_data"] # TODO : add more crypto providers and symbols - symbol = random.choice(["BTC"]) # noqa: S311 + symbol = random.choice(["BTCUSD"]) # noqa: S311 provider = random.choice(["fmp"]) # noqa: S311 data["crypto_data"] = request_data( diff --git a/openbb_platform/extensions/technical/integration/test_technical_python.py b/openbb_platform/extensions/technical/integration/test_technical_python.py index 6787bb9029d..c060b3ec0d4 100644 --- a/openbb_platform/extensions/technical/integration/test_technical_python.py +++ b/openbb_platform/extensions/technical/integration/test_technical_python.py @@ -45,7 +45,7 @@ def get_crypto_data(): return data["crypto_data"] # TODO : add more crypto providers and symbols - symbol = random.choice(["BTC"]) # noqa: S311 + symbol = random.choice(["BTCUSD"]) # noqa: S311 provider = random.choice(["fmp"]) # noqa: S311 data["crypto_data"] = openbb.obb.crypto.price.historical( diff --git a/openbb_platform/extensions/tests/utils/integration_tests_testers.py b/openbb_platform/extensions/tests/utils/integration_tests_testers.py index 1e7027f86df..fc1ff20edd0 100644 --- a/openbb_platform/extensions/tests/utils/integration_tests_testers.py +++ b/openbb_platform/extensions/tests/utils/integration_tests_testers.py @@ -235,8 +235,11 @@ def check_integration_tests( command_params: Dict[str, Dict[str, dict]] = provider_interface_map[ model ] - function_params = functions[function].pytestmark[1].args[1] - + try: + function_params = functions[function].pytestmark[1].args[1] + except IndexError: + # Another decorator is below the parametrize decorator + function_params = functions[function].pytestmark[2].args[1] missing_items = check_function( command_params, function_params, function, False ) @@ -255,7 +258,11 @@ def check_integration_tests( processing_command_params = [ {k: "" for k in get_test_params_data_processing(hints)} ] - function_params = functions[function].pytestmark[1].args[1] + try: + function_params = functions[function].pytestmark[1].args[1] + except IndexError: + # Another decorator is below the parametrize decorator + function_params = functions[function].pytestmark[2].args[1] missing_items = check_function( processing_command_params, function_params, function, True # type: ignore diff --git a/openbb_platform/openbb/package/crypto_price.py b/openbb_platform/openbb/package/crypto_price.py index 23ad4ec0a86..0572eacd4ef 100644 --- a/openbb_platform/openbb/package/crypto_price.py +++ b/openbb_platform/openbb/package/crypto_price.py @@ -26,7 +26,7 @@ class ROUTER_crypto_price(Container): symbol: Annotated[ Union[str, List[str]], OpenBBCustomParameter( - description="Symbol to get data for. Can use CURR1-CURR2 or CURR1CURR2 format. Multiple items allowed for provider(s): fmp, polygon, yfinance." + description="Symbol to get data for. Can use CURR1-CURR2 or CURR1CURR2 format. Multiple items allowed for provider(s): fmp, polygon, tiingo, yfinance." ), ], start_date: Annotated[ @@ -49,7 +49,7 @@ class ROUTER_crypto_price(Container): Parameters ---------- symbol : Union[str, List[str]] - Symbol to get data for. Can use CURR1-CURR2 or CURR1CURR2 format. Multiple items allowed for provider(s): fmp, polygon, yfinance. + Symbol to get data for. Can use CURR1-CURR2 or CURR1CURR2 format. Multiple items allowed for provider(s): fmp, polygon, tiingo, yfinance. start_date : Union[datetime.date, None, str] Start date of the data, in YYYY-MM-DD format. end_date : Union[datetime.date, None, str] @@ -58,18 +58,14 @@ class ROUTER_crypto_price(Container): The provider to use for the query, by default None. If None, the provider specified in defaults is selected or 'fmp' if there is no default. - timeseries : Optional[Annotated[int, Ge(ge=0)]] - Number of days to look back. (provider: fmp) - interval : Optional[Union[Literal['1min', '5min', '15min', '30min', '1hour', '4hour', '1day'], str, Literal['1m', '2m', '5m', '15m', '30m', '60m', '90m', '1h', '1d', '5d', '1wk', '1mo', '3mo']]] - Data granularity. (provider: fmp, polygon, tiingo, yfinance) + interval : Union[Literal['1m', '5m', '15m', '30m', '1h', '4h', '1d'], str, Literal['1m', '2m', '5m', '15m', '30m', '60m', '90m', '1h', '1d', '5d', '1W', '1M', '1Q']] + Time interval of the data to return. (provider: fmp, polygon, tiingo, yfinance) sort : Literal['asc', 'desc'] - Sort order of the data. (provider: polygon) + Sort order of the data. This impacts the results in combination with the 'limit' parameter. The results are always returned in ascending order by date. (provider: polygon) limit : int The number of data entries to return. (provider: polygon) exchanges : Optional[List[str]] To limit the query to a subset of exchanges e.g. ['POLONIEX', 'GDAX'] (provider: tiingo) - period : Optional[Literal['1d', '5d', '1mo', '3mo', '6mo', '1y', '2y', '5y', '10y', 'ytd', 'max']] - Time period of the data to return. (provider: yfinance) Returns ------- @@ -103,16 +99,10 @@ class ROUTER_crypto_price(Container): Volume Weighted Average Price over the period. adj_close : Optional[float] The adjusted close price. (provider: fmp) - unadjusted_volume : Optional[float] - Unadjusted volume of the symbol. (provider: fmp) change : Optional[float] - Change in the price of the symbol from the previous day. (provider: fmp) + Change in the price from the previous close. (provider: fmp) change_percent : Optional[float] - Change % in the price of the symbol. (provider: fmp) - label : Optional[str] - Human readable format of the date. (provider: fmp) - change_over_time : Optional[float] - Change % in the price of the symbol over a period of time. (provider: fmp) + Change in the price from the previous close, as a normalized percent. (provider: fmp) transactions : Optional[Union[Annotated[int, Gt(gt=0)], int]] Number of transactions for the symbol in the time period. (provider: polygon, tiingo) volume_notional : Optional[float] @@ -145,7 +135,14 @@ class ROUTER_crypto_price(Container): }, extra_params=kwargs, extra_info={ - "symbol": {"multiple_items_allowed": ["fmp", "polygon", "yfinance"]} + "symbol": { + "multiple_items_allowed": [ + "fmp", + "polygon", + "tiingo", + "yfinance", + ] + } }, ) ) diff --git a/openbb_platform/openbb/package/currency_price.py b/openbb_platform/openbb/package/currency_price.py index 1262aeb1754..2be0e311fe9 100644 --- a/openbb_platform/openbb/package/currency_price.py +++ b/openbb_platform/openbb/package/currency_price.py @@ -26,7 +26,7 @@ class ROUTER_currency_price(Container): symbol: Annotated[ Union[str, List[str]], OpenBBCustomParameter( - description="Symbol to get data for. Can use CURR1-CURR2 or CURR1CURR2 format. Multiple items allowed for provider(s): polygon, yfinance." + description="Symbol to get data for. Can use CURR1-CURR2 or CURR1CURR2 format. Multiple items allowed for provider(s): fmp, polygon, tiingo, yfinance." ), ], start_date: Annotated[ @@ -56,7 +56,7 @@ class ROUTER_currency_price(Container): Parameters ---------- symbol : Union[str, List[str]] - Symbol to get data for. Can use CURR1-CURR2 or CURR1CURR2 format. Multiple items allowed for provider(s): polygon, yfinance. + Symbol to get data for. Can use CURR1-CURR2 or CURR1CURR2 format. Multiple items allowed for provider(s): fmp, polygon, tiingo, yfinance. start_date : Union[datetime.date, None, str] Start date of the data, in YYYY-MM-DD format. end_date : Union[datetime.date, None, str] @@ -65,14 +65,12 @@ class ROUTER_currency_price(Container): The provider to use for the query, by default None. If None, the provider specified in defaults is selected or 'fmp' if there is no default. - interval : Optional[Union[Literal['1min', '5min', '15min', '30min', '1hour', '4hour', '1day'], str, Literal['1m', '2m', '5m', '15m', '30m', '60m', '90m', '1h', '1d', '5d', '1wk', '1mo', '3mo']]] - Data granularity. (provider: fmp, polygon, tiingo, yfinance) + interval : Union[Literal['1m', '5m', '15m', '30m', '1h', '4h', '1d'], str, Literal['1m', '2m', '5m', '15m', '30m', '60m', '90m', '1h', '1d', '5d', '1W', '1M', '1Q']] + Time interval of the data to return. (provider: fmp, polygon, tiingo, yfinance) sort : Literal['asc', 'desc'] - Sort order of the data. (provider: polygon) + Sort order of the data. This impacts the results in combination with the 'limit' parameter. The results are always returned in ascending order by date. (provider: polygon) limit : int The number of data entries to return. (provider: polygon) - period : Optional[Literal['1d', '5d', '1mo', '3mo', '6mo', '1y', '2y', '5y', '10y', 'ytd', 'max']] - Time period of the data to return. (provider: yfinance) Returns ------- @@ -106,16 +104,10 @@ class ROUTER_currency_price(Container): Volume Weighted Average Price over the period. adj_close : Optional[float] The adjusted close price. (provider: fmp) - unadjusted_volume : Optional[float] - Unadjusted volume of the symbol. (provider: fmp) change : Optional[float] - Change in the price of the symbol from the previous day. (provider: fmp) + Change in the price from the previous close. (provider: fmp) change_percent : Optional[float] - Change % in the price of the symbol. (provider: fmp) - label : Optional[str] - Human readable format of the date. (provider: fmp) - change_over_time : Optional[float] - Change % in the price of the symbol over a period of time. (provider: fmp) + Change in the price from the previous close, as a normalized percent. (provider: fmp) transactions : Optional[Annotated[int, Gt(gt=0)]] Number of transactions for the symbol in the time period. (provider: polygon) @@ -146,7 +138,14 @@ class ROUTER_currency_price(Container): }, extra_params=kwargs, extra_info={ - "symbol": {"multiple_items_allowed": ["polygon", "yfinance"]} + "symbol": { + "multiple_items_allowed": [ + "fmp", + "polygon", + "tiingo", + "yfinance", + ] + } }, ) ) diff --git a/openbb_platform/openbb/package/equity_price.py b/openbb_platform/openbb/package/equity_price.py index 57506be8a8f..3a525a4dcff 100644 --- a/openbb_platform/openbb/package/equity_price.py +++ b/openbb_platform/openbb/package/equity_price.py @@ -69,28 +69,24 @@ class ROUTER_equity_price(Container): The provider to use for the query, by default None. If None, the provider specified in defaults is selected or 'fmp' if there is no default. - limit : Optional[Union[Annotated[int, Ge(ge=0)], int]] - Number of days to look back (Only for interval 1d). (provider: fmp); - The number of data entries to return. (provider: polygon) start_time : Optional[datetime.time] Return intervals starting at the specified time on the `start_date` formatted as 'HH:MM:SS'. (provider: intrinio) end_time : Optional[datetime.time] Return intervals stopping at the specified time on the `end_date` formatted as 'HH:MM:SS'. (provider: intrinio) - timezone : str + timezone : Optional[str] Timezone of the data, in the IANA format (Continent/City). (provider: intrinio) source : Literal['realtime', 'delayed', 'nasdaq_basic'] The source of the data. (provider: intrinio) + adjustment : Union[Literal['splits_only', 'unadjusted'], Literal['splits_only', 'splits_and_dividends']] + The adjustment factor to apply. Default is splits only. (provider: polygon, yfinance) + extended_hours : bool + Include Pre and Post market data. (provider: polygon, yfinance) sort : Literal['asc', 'desc'] - Sort order of the data. (provider: polygon) - adjusted : bool - Output time series is adjusted by historical split and dividend events. (provider: polygon); - Adjust all OHLC data automatically. (provider: yfinance) - prepost : bool - Include Pre and Post market data. (provider: yfinance) - include : bool - Include Dividends and Stock Splits in results. (provider: yfinance) - ignore_tz : bool - When combining from different timezones, ignore that part of datetime. (provider: yfinance) + Sort order of the data. This impacts the results in combination with the 'limit' parameter. The results are always returned in ascending order by date. (provider: polygon) + limit : int + The number of data entries to return. (provider: polygon) + include_actions : bool + Include dividends and stock splits in results. (provider: yfinance) Returns ------- @@ -122,48 +118,42 @@ class ROUTER_equity_price(Container): The trading volume. vwap : Optional[float] Volume Weighted Average Price over the period. - label : Optional[str] - Human readable format of the date. (provider: fmp) adj_close : Optional[float] - The adjusted close price. (provider: fmp); - Adjusted closing price during the period. (provider: intrinio); - Adjusted closing price during the period. (provider: tiingo) + The adjusted close price. (provider: fmp, intrinio, tiingo) unadjusted_volume : Optional[float] Unadjusted volume of the symbol. (provider: fmp) change : Optional[float] - Change in the price of the symbol from the previous day. (provider: fmp, intrinio) + Change in the price from the previous close. (provider: fmp); + Change in the price of the symbol from the previous day. (provider: intrinio) change_percent : Optional[float] - Change % in the price of the symbol. (provider: fmp) - change_over_time : Optional[float] - Change % in the price of the symbol over a period of time. (provider: fmp) - close_time : Optional[datetime] - The timestamp that represents the end of the interval span. (provider: intrinio) - interval : Optional[str] - The data time frequency. (provider: intrinio) + Change in the price from the previous close, as a normalized percent. (provider: fmp); + Percent change in the price of the symbol from the previous day. (provider: intrinio) average : Optional[float] Average trade price of an individual equity during the interval. (provider: intrinio) - intra_period : Optional[bool] - If true, the equity price represents an unfinished period (be it day, week, quarter, month, or year), meaning that the close price is the latest price available, not the official close price for the period (provider: intrinio) adj_open : Optional[float] - Adjusted open price during the period. (provider: intrinio, tiingo) + The adjusted open price. (provider: intrinio, tiingo) adj_high : Optional[float] - Adjusted high price during the period. (provider: intrinio, tiingo) + The adjusted high price. (provider: intrinio, tiingo) adj_low : Optional[float] - Adjusted low price during the period. (provider: intrinio, tiingo) + The adjusted low price. (provider: intrinio, tiingo) adj_volume : Optional[float] - Adjusted volume during the period. (provider: intrinio, tiingo) - factor : Optional[float] - factor by which to multiply equity prices before this date, in order to calculate historically-adjusted equity prices. (provider: intrinio) - split_ratio : Optional[float] - Ratio of the equity split, if a equity split occurred. (provider: intrinio, tiingo, yfinance) - dividend : Optional[float] - Dividend amount, if a dividend was paid. (provider: intrinio, tiingo, yfinance) - percent_change : Optional[float] - Percent change in the price of the symbol from the previous day. (provider: intrinio) + The adjusted volume. (provider: intrinio, tiingo) fifty_two_week_high : Optional[float] 52 week high price for the symbol. (provider: intrinio) fifty_two_week_low : Optional[float] 52 week low price for the symbol. (provider: intrinio) + factor : Optional[float] + factor by which to multiply equity prices before this date, in order to calculate historically-adjusted equity prices. (provider: intrinio) + split_ratio : Optional[float] + Ratio of the equity split, if a split occurred. (provider: intrinio, tiingo, yfinance) + dividend : Optional[float] + Dividend amount, if a dividend was paid. (provider: intrinio, tiingo, yfinance) + close_time : Optional[datetime] + The timestamp that represents the end of the interval span. (provider: intrinio) + interval : Optional[str] + The data time frequency. (provider: intrinio) + intra_period : Optional[bool] + If true, the equity price represents an unfinished period (be it day, week, quarter, month, or year), meaning that the close price is the latest price available, not the official close price for the period (provider: intrinio) transactions : Optional[Annotated[int, Gt(gt=0)]] Number of transactions for the symbol in the time period. (provider: polygon) diff --git a/openbb_platform/openbb/package/etf.py b/openbb_platform/openbb/package/etf.py index 2f6ddf5aca1..62945ff4355 100644 --- a/openbb_platform/openbb/package/etf.py +++ b/openbb_platform/openbb/package/etf.py @@ -177,8 +177,15 @@ class ROUTER_etf(Container): def historical( self, symbol: Annotated[ - str, OpenBBCustomParameter(description="Symbol to get data for. (ETF)") + Union[str, List[str]], + OpenBBCustomParameter( + description="Symbol to get data for. Multiple items allowed for provider(s): fmp, polygon, tiingo, yfinance." + ), ], + interval: Annotated[ + Optional[str], + OpenBBCustomParameter(description="Time interval of the data to return."), + ] = "1d", start_date: Annotated[ Union[datetime.date, None, str], OpenBBCustomParameter( @@ -191,30 +198,52 @@ class ROUTER_etf(Container): description="End date of the data, in YYYY-MM-DD format." ), ] = None, - provider: Optional[Literal["yfinance"]] = None, + provider: Optional[ + Literal["fmp", "intrinio", "polygon", "tiingo", "yfinance"] + ] = None, **kwargs ) -> OBBject: """ETF Historical Market Price. Parameters ---------- - symbol : str - Symbol to get data for. (ETF) + symbol : Union[str, List[str]] + Symbol to get data for. Multiple items allowed for provider(s): fmp, polygon, tiingo, yfinance. + interval : Optional[str] + Time interval of the data to return. start_date : Union[datetime.date, None, str] Start date of the data, in YYYY-MM-DD format. end_date : Union[datetime.date, None, str] End date of the data, in YYYY-MM-DD format. - provider : Optional[Literal['yfinance']] + provider : Optional[Literal['fmp', 'intrinio', 'polygon', 'tiingo', 'yfinanc... The provider to use for the query, by default None. - If None, the provider specified in defaults is selected or 'yfinance' if there is + If None, the provider specified in defaults is selected or 'fmp' if there is no default. + start_time : Optional[datetime.time] + Return intervals starting at the specified time on the `start_date` formatted as 'HH:MM:SS'. (provider: intrinio) + end_time : Optional[datetime.time] + Return intervals stopping at the specified time on the `end_date` formatted as 'HH:MM:SS'. (provider: intrinio) + timezone : Optional[str] + Timezone of the data, in the IANA format (Continent/City). (provider: intrinio) + source : Literal['realtime', 'delayed', 'nasdaq_basic'] + The source of the data. (provider: intrinio) + adjustment : Union[Literal['splits_only', 'unadjusted'], Literal['splits_only', 'splits_and_dividends']] + The adjustment factor to apply. Default is splits only. (provider: polygon, yfinance) + extended_hours : bool + Include Pre and Post market data. (provider: polygon, yfinance) + sort : Literal['asc', 'desc'] + Sort order of the data. This impacts the results in combination with the 'limit' parameter. The results are always returned in ascending order by date. (provider: polygon) + limit : int + The number of data entries to return. (provider: polygon) + include_actions : bool + Include dividends and stock splits in results. (provider: yfinance) Returns ------- OBBject results : List[EtfHistorical] Serializable results. - provider : Optional[Literal['yfinance']] + provider : Optional[Literal['fmp', 'intrinio', 'polygon', 'tiingo', 'yfinance']] Provider name. warnings : Optional[List[Warning_]] List of warnings. @@ -235,15 +264,53 @@ class ROUTER_etf(Container): The low price. close : float The close price. - volume : Optional[Annotated[int, Ge(ge=0)]] + volume : Optional[Union[float, int]] The trading volume. + vwap : Optional[float] + Volume Weighted Average Price over the period. adj_close : Optional[float] - The adjusted closing price of the ETF. (provider: yfinance) + The adjusted close price. (provider: fmp, intrinio, tiingo) + unadjusted_volume : Optional[float] + Unadjusted volume of the symbol. (provider: fmp) + change : Optional[float] + Change in the price from the previous close. (provider: fmp); + Change in the price of the symbol from the previous day. (provider: intrinio) + change_percent : Optional[float] + Change in the price from the previous close, as a normalized percent. (provider: fmp); + Percent change in the price of the symbol from the previous day. (provider: intrinio) + average : Optional[float] + Average trade price of an individual equity during the interval. (provider: intrinio) + adj_open : Optional[float] + The adjusted open price. (provider: intrinio, tiingo) + adj_high : Optional[float] + The adjusted high price. (provider: intrinio, tiingo) + adj_low : Optional[float] + The adjusted low price. (provider: intrinio, tiingo) + adj_volume : Optional[float] + The adjusted volume. (provider: intrinio, tiingo) + fifty_two_week_high : Optional[float] + 52 week high price for the symbol. (provider: intrinio) + fifty_two_week_low : Optional[float] + 52 week low price for the symbol. (provider: intrinio) + factor : Optional[float] + factor by which to multiply equity prices before this date, in order to calculate historically-adjusted equity prices. (provider: intrinio) + split_ratio : Optional[float] + Ratio of the equity split, if a split occurred. (provider: intrinio, tiingo, yfinance) + dividend : Optional[float] + Dividend amount, if a dividend was paid. (provider: intrinio, tiingo, yfinance) + close_time : Optional[datetime] + The timestamp that represents the end of the interval span. (provider: intrinio) + interval : Optional[str] + The data time frequency. (provider: intrinio) + intra_period : Optional[bool] + If true, the equity price represents an unfinished period (be it day, week, quarter, month, or year), meaning that the close price is the latest price available, not the official close price for the period (provider: intrinio) + transactions : Optional[Annotated[int, Gt(gt=0)]] + Number of transactions for the symbol in the time period. (provider: polygon) Example ------- >>> from openbb import obb - >>> obb.etf.historical(symbol="SPY") + >>> obb.etf.historical(symbol="SPY", interval="1d") >>> obb.etf.historical("SPY", provider="yfinance") >>> #### This function accepts multiple tickers. #### >>> obb.etf.historical("SPY,IWM,QQQ,DJIA", provider="yfinance") @@ -256,15 +323,26 @@ class ROUTER_etf(Container): "provider": self._get_provider( provider, "/etf/historical", - ("yfinance",), + ("fmp", "intrinio", "polygon", "tiingo", "yfinance"), ) }, standard_params={ "symbol": symbol, + "interval": interval, "start_date": start_date, "end_date": end_date, }, extra_params=kwargs, + extra_info={ + "symbol": { + "multiple_items_allowed": [ + "fmp", + "polygon", + "tiingo", + "yfinance", + ] + } + }, ) ) diff --git a/openbb_platform/openbb/package/index.py b/openbb_platform/openbb/package/index.py index 60734afb166..a65de36b82a 100644 --- a/openbb_platform/openbb/package/index.py +++ b/openbb_platform/openbb/package/index.py @@ -212,7 +212,7 @@ class ROUTER_index(Container): no default. timeseries : Optional[Annotated[int, Ge(ge=0)]] Number of days to look back. (provider: fmp) - interval : Optional[Union[Literal['1min', '5min', '15min', '30min', '1hour', '4hour', '1day'], Literal['1m', '2m', '5m', '15m', '30m', '60m', '90m', '1h', '1d', '5d', '1wk', '1mo', '3mo']]] + interval : Optional[Union[Literal['1min', '5min', '15min', '30min', '1hour', '4hour', '1day'], Literal['1m', '2m', '5m', '15m', '30m', '60m', '90m', '1h', '1d', '5d', '1W', '1M', '1Q']]] Data granularity. (provider: fmp, yfinance) sort : Literal['asc', 'desc'] Sort the data in ascending or descending order. (provider: fmp); diff --git a/openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/__init__.py b/openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/__init__.py index b8591af6750..08b633c2e72 100644 --- a/openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/__init__.py +++ b/openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/__init__.py @@ -18,5 +18,6 @@ alpha_vantage_provider = Provider( fetcher_dict={ "EquityHistorical": AVEquityHistoricalFetcher, "HistoricalEps": AVHistoricalEpsFetcher, + "EtfHistorical": AVEquityHistoricalFetcher, }, ) diff --git a/openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/models/equity_historical.py b/openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/models/equity_historical.py index 98a5194b955..766551251ac 100644 --- a/openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/models/equity_historical.py +++ b/openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/models/equity_historical.py @@ -1,11 +1,17 @@ """Alpha Vantage Equity Historical Price Model.""" -from datetime import datetime, timedelta +# pylint: disable=unused-argument + +import asyncio +from datetime import datetime +from io import BytesIO from typing import Any, Dict, List, Literal, Optional +from warnings import warn from dateutil.relativedelta import relativedelta from openbb_alpha_vantage.utils.helpers import ( - extract_key_name, + INTERVALS_DICT, + calculate_adjusted_prices, get_interval, ) from openbb_core.provider.abstract.fetcher import Fetcher @@ -17,14 +23,16 @@ from openbb_core.provider.utils.descriptions import ( DATA_DESCRIPTIONS, QUERY_DESCRIPTIONS, ) -from openbb_core.provider.utils.helpers import amake_request, get_querystring -from pandas import to_datetime +from openbb_core.provider.utils.helpers import ( + amake_request, + amake_requests, + get_querystring, +) +from pandas import date_range, read_csv, to_datetime from pydantic import ( Field, NonNegativeFloat, PositiveFloat, - PrivateAttr, - field_validator, model_validator, ) @@ -41,95 +49,54 @@ class AVEquityHistoricalQueryParams(EquityHistoricalQueryParams): default="1d", description=QUERY_DESCRIPTIONS.get("interval", ""), ) - adjusted: Optional[bool] = Field( - description="Output time series is adjusted by historical split and dividend events.", - default=False, + adjustment: Literal["splits_only", "splits_and_dividends", "unadjusted"] = Field( + description="The adjustment factor to apply. 'splits_only' is not supported for intraday data.", + default="splits_only", ) extended_hours: Optional[bool] = Field( - description="Extended trading hours during pre-market and after-hours." - "Only available for intraday data.", + description="Include Pre and Post market data.", default=False, ) - month: Optional[str] = Field( - description="Query a specific month in history (in YYYY-MM format).", - default=None, - ) - output_size: Optional[Literal["compact", "full"]] = Field( - description="Compact returns only the latest 100 data points in the intraday " - "time series; full returns trailing 30 days of the most recent intraday data " - "if the month parameter is not specified, or the full intraday data for a" - "specific month in history if the month parameter is specified.", - default="full", - alias="outputsize", + adjusted: bool = Field( + default=False, + exclude=True, + description="This field is deprecated (4.1.5) and will be removed in a future version." + + " Use 'adjustment' set as 'splits_and_dividends' instead.", + json_schema_extra={"deprecated": True}, ) - _function: Literal[ - "TIME_SERIES_INTRADAY", - "TIME_SERIES_DAILY", - "TIME_SERIES_WEEKLY", - "TIME_SERIES_MONTHLY", - "TIME_SERIES_DAILY_ADJUSTED", - "TIME_SERIES_WEEKLY_ADJUSTED", - "TIME_SERIES_MONTHLY_ADJUSTED", - ] = PrivateAttr( - default="TIME_SERIES_DAILY", - ) - - _datatype: Literal["json", "csv"] = PrivateAttr(default="json") - - @field_validator("month", mode="before") + @model_validator(mode="before") @classmethod - def month_validate(cls, v): - """Validate month, check if the month is in YYYY-MM format.""" - if v is not None: - try: - datetime.strptime(v, "%Y-%m") - except ValueError as e: - raise e - return v - - # pylint: disable=protected-access - @model_validator(mode="after") - @classmethod - def get_function_value(cls, values: "AVEquityHistoricalQueryParams"): - """Get the function from the provided interval for the Alpha Vantage API.""" - functions = { - "m": "TIME_SERIES_INTRADAY", - "d": "TIME_SERIES_DAILY", - "W": "TIME_SERIES_WEEKLY", - "M": "TIME_SERIES_MONTHLY", - } - - adjusted_value = { - False: "", - True: "_ADJUSTED", - } - - if values.interval[-1] == "m": - values._function = f"{functions[values.interval[-1]]}" - else: - values._function = ( - f"{functions[values.interval[-1]]}{adjusted_value[values.adjusted]}" - ) - + def validate_deprecated_params(cls, values): + """Validate the deprecated parameters.""" + for k, v in values.copy().items(): + if k in ["adjusted"] and v is True: + warn( + f"The '{k}' parameter is deprecated and will be removed in a future version." + ) + values["adjustment"] = "splits_and_dividends" return values class AVEquityHistoricalData(EquityHistoricalData): """Alpha Vantage Equity Historical Price Data.""" - __alias_dict__ = {"date": "timestamp", "adj_close": "adjusted_close"} + __alias_dict__ = { + "adj_close": "adjusted_close", + "dividend": "dividend_amount", + "split_ratio": "split_factor", + } adj_close: Optional[PositiveFloat] = Field( default=None, description=DATA_DESCRIPTIONS.get("adj_close", "") ) - dividend_amount: Optional[NonNegativeFloat] = Field( + dividend: Optional[NonNegativeFloat] = Field( default=None, - description="Dividend amount paid for the corresponding date.", + description="Dividend amount, if a dividend was paid.", ) - split_coefficient: Optional[NonNegativeFloat] = Field( + split_ratio: Optional[NonNegativeFloat] = Field( default=None, - description="Split coefficient for the corresponding date.", + description="Split coefficient, if a split occurred.", ) @@ -160,58 +127,176 @@ class AVEquityHistoricalFetcher( query: AVEquityHistoricalQueryParams, credentials: Optional[Dict[str, str]], **kwargs: Any, - ) -> Dict: + ) -> List[Dict]: """Return the raw data from the Alpha Vantage endpoint.""" api_key = credentials.get("alpha_vantage_api_key") if credentials else "" - + intraday = False interval = get_interval(query.interval) query_str = get_querystring( query.model_dump(by_alias=True), - ["start_date", "end_date", "interval", "symbol"], + [ + "start_date", + "end_date", + "interval", + "symbol", + "adjustment", + "extended_hours", + ], ) - query_str += f"&function={query._function}&interval={interval}" # pylint: disable=protected-access - url = f"https://www.alphavantage.co/query?{query_str}&apikey={api_key}" - data = {} + function = INTERVALS_DICT[query.interval[-1]] - for symbol in query.symbol.split(","): - raw_data = await amake_request(f"{url}&symbol={symbol}", **kwargs) - dynamic_key = (set(raw_data.keys()) - {"Meta Data"}).pop() - data[symbol] = raw_data[dynamic_key] + if query.adjustment != "unadjusted": + function += "_ADJUSTED" + query_str += f"&function={function}&outputsize=full&datatype=csv" - return data + if "INTRADAY" in function: + query_str += f"&interval={interval}&extended_hours={str(query.extended_hours).lower()}" + intraday = True + + results = [] + + async def callback(response, _): + """Callback function to process the response.""" + return await response.read() + + async def intraday_callback(response, _): + """Callback function to process the intraday response.""" + symbol = response.url.query.get("symbol", None) + data = await response.read() + if data: + df = read_csv(BytesIO(data)) + if len(df) > 0: + df.rename( + columns={ + "timestamp": "date", + }, + inplace=True, + ) + if len(query.symbol.split(",")) > 1: + df.loc[:, "symbol"] = symbol + results.extend(df.to_dict("records")) + if not data: + warn(f"Symbol Error: No data found for {symbol}") + return results + + async def get_one(symbol, intraday: bool = False): + """Get data for one symbol.""" + + if intraday is True: + adjusted = query.adjustment != "unadjusted" + if query.adjustment == "splits_only": + warn( + "Intraday does not support 'splits_only'. Using 'splits_and_dividends' instead." + ) + url = ( + f"https://www.alphavantage.co/query?{query_str.replace('_ADJUSTED', '')}" + f"&symbol={symbol}&adjusted={str(adjusted).lower()}" + ) + dates = ( + date_range(start=query.start_date, end=query.end_date) + .strftime("%Y-%m") + .unique() + .tolist() + ) + urls = [f"{url}&month={date}&apikey={api_key}" for date in dates] + return await amake_requests(urls, response_callback=intraday_callback) + + # We will resample the intervals ourselves to get the correct data. + url = ( + f"https://www.alphavantage.co/query?{query_str.replace('MONTHLY', 'DAILY').replace('WEEKLY', 'DAILY')}" + f"&symbol={symbol}&apikey={api_key}" + ) + result = await amake_request(url, response_callback=callback) + if not result: + warn(f"Symbol Error: No data found for {symbol}") + if result: + data = read_csv(BytesIO(result)) # type: ignore + if len(data) > 0: + data.rename( + columns={ + "timestamp": "date", + "dividend_amount": "dividend", + "adjusted close": "adj_close", + "dividend amount": "dividend", + "adjusted_close": "adj_close", + "split_coefficient": "split_factor", + }, + inplace=True, + ) + data["date"] = data["date"].apply(to_datetime) + data.set_index("date", inplace=True) + # The returned data when 'adjusted=true' from the API does not return a usable OHLCV data set. + # We need to calculate the adjusted prices manually. + if query.adjustment != "unadjusted": + temp = data.copy() + temp["dividend_factor"] = ( + temp["close"] - temp["dividend"] + ) / temp["close"] + temp["volume_factor"] = temp["split_factor"] + temp["split_factor"] = 1 / temp["split_factor"] + adj_cols = ["open", "high", "low", "close", "volume"] + divs = query.adjustment == "splits_and_dividends" + for col in adj_cols: + divs = False if col == "volume" else divs + if col in temp.columns: + temp = calculate_adjusted_prices(temp, col, divs) + temp["adj_dividend"] = ( + temp["adj_close"] * (1 - temp["dividend_factor"]) + if query.adjustment == "splits_only" + else temp["close"] * (1 - temp["dividend_factor"]) + ) + data["open"] = round(temp["adj_open"], 4) + data["high"] = round(temp["adj_high"], 4) + data["low"] = round(temp["adj_low"], 4) + data["close"] = round(temp["adj_close"], 4) + data["volume"] = round(temp["adj_volume"]).astype(int) + data["dividend"] = round(temp["adj_dividend"], 4) + data.drop(columns=["adj_close"], inplace=True) + # Resample the daily data for the interval requested. + freq = "" + agg_dict = { + "open": "first", + "high": "max", + "low": "min", + "close": "last", + "volume": "sum", + "dividend": "sum", + "split_factor": "prod", + } + if query.adjustment == "unadjusted": + agg_dict.pop("dividend") + agg_dict.pop("split_factor") + if query.interval == "1M": + freq = "M" + if query.interval == "1W": + freq = "W-FRI" + if freq in ["M", "W-FRI"]: + data = data.resample(freq).agg({**agg_dict}) + if len(query.symbol.split(",")) > 1: + data.loc[:, "symbol"] = symbol + + results.extend(data.reset_index().to_dict("records")) + + return results + + tasks = [get_one(symbol, intraday) for symbol in query.symbol.split(",")] + await asyncio.gather(*tasks) + + return results - # pylint: disable=unused-argument @staticmethod def transform_data( - query: AVEquityHistoricalQueryParams, data: Dict, **kwargs: Any + query: AVEquityHistoricalQueryParams, data: List[Dict], **kwargs: Any ) -> List[AVEquityHistoricalData]: """Transform the data to the standard format.""" - transformed_data = [] - for symbol, content in data.items(): - if not isinstance(content, dict): - # if the content isn't a dict, it means that the API returned an error - # most likely too many requests without premium account - raise Exception(content) - d = [ - { - **({"symbol": symbol} if "," in query.symbol else {}), - "date": date, - **{extract_key_name(k): v for k, v in values.items()}, - } - for date, values in content.items() - ] - if query.start_date and query.end_date: - transformed_data = list( - filter( - lambda x: to_datetime(query.start_date) - <= to_datetime(x["date"]) - <= to_datetime(query.end_date) + timedelta(days=1), - d, - ) - ) - return [ AVEquityHistoricalData.model_validate(d) - for d in sorted(transformed_data, key=lambda x: x["date"], reverse=False) + for d in sorted( + data, + key=( + lambda x: (x["date"], x["symbol"]) if "symbol" in x else x["date"] + ), + ) + if query.start_date <= to_datetime(d["date"]).date() <= query.end_date ] diff --git a/openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/utils/helpers.py b/openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/utils/helpers.py index 14c4ed70a9d..88c6bffda35 100644 --- a/openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/utils/helpers.py +++ b/openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/utils/helpers.py @@ -1,151 +1,18 @@ """Alpha Vantage Helpers Module.""" -import json import re from datetime import datetime -from io import StringIO -from typing import Any, Dict, List, Optional, TypeVar, Union +from typing import Any, Dict, List -import requests -from openbb_core.provider import helpers -from openbb_core.provider.utils.errors import EmptyDataError -from openbb_core.provider.utils.helpers import get_querystring -from pydantic import BaseModel -from requests.exceptions import SSLError +import numpy as np +import pandas as pd -T = TypeVar("T", bound=BaseModel) - - -class BasicResponse: - """Basic Response class.""" - - def __init__(self, response: StringIO): - """Initialize the BasicResponse class.""" - # Find a way to get the status code - self.status_code = 200 - response.seek(0) - self.text = response.read() - - def json(self) -> dict: - """Return the response as a dictionary.""" - return json.loads(self.text) - - -def request(url: str) -> BasicResponse: - """Request function for PyScript. - - Pass in Method and make sure to await! - - Parameters - ---------- - url: str - URL to make request to - - Return - ------ - response: BasicRequest - BasicRequest object with status_code and text attributes - """ - # pylint: disable=import-outside-toplevel - from pyodide.http import open_url # type: ignore - - response = open_url(url) - return BasicResponse(response) - - -def get_data(url: str, **kwargs: Any) -> Union[list, dict]: - """Get data from Alpha Vantage endpoint.""" - try: - r: Union[requests.Response, BasicResponse] = helpers.make_request(url, **kwargs) - except SSLError: - r = request(url) - if r.status_code == 404: - raise RuntimeError("Alpha Vantage endpoint doesn't exist") - - data = r.json() - if "Information" in data: - raise RuntimeError(f"Error in Alpha Vantage request -> {data['Information']}") - - if len(data) == 0: - raise EmptyDataError() - - return data - - -def create_url( - version: int, - endpoint: str, - api_key: Optional[str], - query: Optional[BaseModel] = None, - exclude: Optional[List[str]] = None, -) -> str: - """Return a URL for the Alpha Vantage API. - - Parameters - ---------- - version: int - The version of the API to use. - endpoint: str - The endpoint to use. - api_key: str - The API key to use. - query: Optional[BaseModel] - The dictionary to be turned into a querystring. - exclude: List[str] - The keys to be excluded from the querystring. - - Returns - ------- - str - The querystring. - """ - the_dict = {} if not query else query.model_dump() - query_string = get_querystring(the_dict, exclude or []) - base_url = f"https://financialmodelingprep.com/api/v{version}/" - return f"{base_url}{endpoint}?{query_string}&apikey={api_key}" - - -def get_data_many( - url: str, sub_dict: Optional[str] = None, **kwargs: Any -) -> List[dict]: - """Get data from Alpha Vantage endpoint and convert to list of schemas. - - Parameters - ---------- - url: str - The URL to get the data from. - sub_dict: Optional[str] - The sub-dictionary to use. - - Returns - ------- - List[dict] - Dictionary of data. - """ - data = get_data(url, **kwargs) - if sub_dict and isinstance(data, dict): - data = data.get(sub_dict, []) - if isinstance(data, dict): - raise ValueError("Expected list of dicts, got dict") - if len(data) == 0: - raise EmptyDataError() - - return data - - -def get_data_one(url: str, **kwargs: Any) -> dict: - """Get data from Alpha Vantage endpoint and convert to schema.""" - data = get_data(url, **kwargs) - if isinstance(data, list): - if len(data) == 0: - raise ValueError("Expected dict, got empty list") - - try: - data = {i: data[i] for i in range(len(data))} if len(data) > 1 else data[0] - except TypeError as e: - raise ValueError("Expected dict, got list of dicts") from e - - return data +INTERVALS_DICT = { + "m": "TIME_SERIES_INTRADAY", + "d": "TIME_SERIES_DAILY", + "W": "TIME_SERIES_WEEKLY", + "M": "TIME_SERIES_MONTHLY", +} def get_interval(value: str) -> str: @@ -178,3 +45,45 @@ def filter_by_dates( data, ) ) + + +def calculate_adjusted_prices(df: pd.DataFrame, column: str, dividends: bool = False): + """Calculates the split-adjusted prices, or split and dividend adjusted prices. + + Parameters + ------------ + df: pd.DataFrame + DataFrame with unadjusted OHLCV values + split_factor + dividend + column: str + The column name to adjust. + dividends: bool + Whether to adjust for both splits and dividends. Default is split-adjusted only. + + Returns + -------- + pd.DataFrame + DataFrame with adjusted prices. + """ + + df = df.copy() + adj_column = "adj_" + column + + # Reverse the DataFrame order, sorting by date in descending order + df.sort_index(ascending=False, inplace=True) + + price_col = df[column].values + split_col = df["volume_factor"] if column == "volume" else df["split_factor"].values + dividend_col = df["dividend"].values if dividends else np.zeros(len(price_col)) + adj_price_col = np.zeros(len(df.index)) + adj_price_col[0] = price_col[0] + + for i in range(1, len(price_col)): + adj_price_col[i] = adj_price_col[i - 1] + adj_price_col[i - 1] * ( + ((price_col[i] * split_col[i - 1]) - price_col[i - 1] - dividend_col[i - 1]) + / price_col[i - 1] + ) + df[adj_column] = adj_price_col + + # Change the DataFrame order back to dates ascending + df.sort_index(ascending=True, inplace=True) + return df diff --git a/openbb_platform/providers/alpha_vantage/tests/record/http/test_alpha_vantage_fetchers/test_av_equity_historical_fetcher.yaml b/openbb_platform/providers/alpha_vantage/tests/record/http/test_alpha_vantage_fetchers/test_av_equity_historical_fetcher.yaml index 87b076be810..7ba0272bfd4 100644 --- a/openbb_platform/providers/alpha_vantage/tests/record/http/test_alpha_vantage_fetchers/test_av_equity_historical_fetcher.yaml +++ b/openbb_platform/providers/alpha_vantage/tests/record/http/test_alpha_vantage_fetchers/test_av_equity_historical_fetcher.yaml @@ -2,36 +2,304 @@ interactions: - request: body: null headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate Connection: - - close - Host: - - www.alphavantage.co + - keep-alive method: GET - uri: https://www.alphavantage.co/query?apikey=MOCK_API_KEY&datatype=csv&function=TIME_SERIES_DAILY_ADJUSTED&outputsize=full&period=daily&symbol=AAPL + uri: https://www.alphavantage.co/query?adjusted=true&apikey=MOCK_API_KEY&datatype=csv&extended_hours=false&function=TIME_SERIES_INTRADAY&interval=15min&month=2023-01&outputsize=full&symbol=AAPL response: body: - string: "{\n \"Information\": \"Thank you for using Alpha Vantage! This is - a premium endpoint. You may subscribe to any of the premium plans at https://www.alphavantage.co/premium/ - to instantly unlock all premium endpoints\"\n}" + string: "timestamp,open,high,low,close,volume\r\n2023-01-31 15:45:00,142.4710,143.3640,142.1380,143.3200,6111148\r\n2023-01-31 + 15:30:00,142.3220,142.6090,142.3120,142.4800,1466236\r\n2023-01-31 15:15:00,142.7790,142.7980,142.2770,142.3310,1409505\r\n2023-01-31 + 15:00:00,142.8880,143.0660,142.6600,142.7730,1206452\r\n2023-01-31 14:45:00,142.9580,143.0260,142.8230,142.8830,852602\r\n2023-01-31 + 14:30:00,142.8490,143.0160,142.8040,142.9720,856467\r\n2023-01-31 14:15:00,142.7340,142.9170,142.6250,142.8480,705206\r\n2023-01-31 + 14:00:00,142.6450,142.9370,142.5450,142.7440,951014\r\n2023-01-31 13:45:00,142.4610,142.7680,142.4160,142.6540,909265\r\n2023-01-31 + 13:30:00,142.4410,142.5590,142.3170,142.4650,611083\r\n2023-01-31 13:15:00,142.4560,142.4700,142.1780,142.4410,1006968\r\n2023-01-31 + 13:00:00,142.5610,142.6360,142.3270,142.4550,655584\r\n2023-01-31 12:45:00,142.5460,142.6880,142.4560,142.5600,630828\r\n2023-01-31 + 12:30:00,142.5410,142.6680,142.4160,142.5550,590808\r\n2023-01-31 12:15:00,142.3220,142.6680,142.2620,142.5600,974220\r\n2023-01-31 + 12:00:00,142.2820,142.3950,141.9990,142.3070,929554\r\n2023-01-31 11:45:00,142.3520,142.5140,142.1780,142.2850,844479\r\n2023-01-31 + 11:30:00,142.5560,142.6680,142.2970,142.3260,969895\r\n2023-01-31 11:15:00,142.2330,142.6190,142.1280,142.5500,1187882\r\n2023-01-31 + 11:00:00,142.1930,142.4600,142.0090,142.2470,1107755\r\n2023-01-31 10:45:00,142.1600,142.3210,141.8200,142.1870,1388137\r\n2023-01-31 + 10:30:00,142.2130,142.3800,141.9790,142.1670,1226566\r\n2023-01-31 10:15:00,142.1040,142.3700,141.6520,142.1970,1825953\r\n2023-01-31 + 10:00:00,141.6770,142.2110,141.4330,142.1080,2150277\r\n2023-01-31 09:45:00,141.7070,142.7780,141.4030,141.6760,2822577\r\n2023-01-31 + 09:30:00,141.7160,142.4800,141.3040,141.7110,4394928\r\n2023-01-30 15:45:00,142.4070,142.5490,141.8700,142.0580,4775426\r\n2023-01-30 + 15:30:00,142.0840,142.4600,141.9990,142.4110,1792886\r\n2023-01-30 15:15:00,142.0840,142.1620,141.9490,142.0830,1765526\r\n2023-01-30 + 15:00:00,142.2130,142.4900,142.0490,142.0780,1650201\r\n2023-01-30 14:45:00,142.2280,142.2810,141.9010,142.2170,1669205\r\n2023-01-30 + 14:30:00,142.1780,142.5460,142.0890,142.2320,1432781\r\n2023-01-30 14:15:00,142.4070,142.4350,142.0490,142.1770,1464175\r\n2023-01-30 + 14:00:00,142.3920,142.6190,142.2970,142.4110,998241\r\n2023-01-30 13:45:00,142.1930,142.4500,142.0790,142.4010,1198176\r\n2023-01-30 + 13:30:00,142.5110,142.5190,142.0290,142.1970,1309283\r\n2023-01-30 13:15:00,142.5110,142.8470,142.4260,142.5230,1064570\r\n2023-01-30 + 13:00:00,142.4310,142.6780,142.3270,142.5200,875111\r\n2023-01-30 12:45:00,142.6400,142.6490,142.1880,142.4410,1400651\r\n2023-01-30 + 12:30:00,142.6950,142.8120,142.4960,142.6440,1181401\r\n2023-01-30 12:15:00,142.9780,142.9910,142.4910,142.6990,1609852\r\n2023-01-30 + 12:00:00,143.1960,143.2840,142.1680,142.9820,1400170\r\n2023-01-30 11:45:00,142.8780,143.2150,142.5160,143.2090,1185883\r\n2023-01-30 + 11:30:00,142.8880,143.2540,142.7840,142.8840,1110391\r\n2023-01-30 11:15:00,142.9680,143.3440,142.7240,142.9020,1375517\r\n2023-01-30 + 11:00:00,143.0080,143.1850,142.7440,142.9770,1391660\r\n2023-01-30 10:45:00,142.6300,143.0560,142.5850,143.0170,1923936\r\n2023-01-30 + 10:30:00,143.2060,143.2540,142.3860,142.6560,2033741\r\n2023-01-30 10:15:00,143.6230,143.6520,142.8630,143.2100,2312830\r\n2023-01-30 + 10:00:00,144.1890,144.3670,143.5290,143.6180,1980967\r\n2023-01-30 09:45:00,143.7520,144.2870,143.1820,144.1990,2799333\r\n2023-01-30 + 09:30:00,143.9660,144.5650,143.5190,143.7380,4153218\r\n2023-01-27 15:45:00,145.6890,145.7180,144.8000,144.9780,4867213\r\n2023-01-27 + 15:30:00,145.9470,146.2340,145.6640,145.7230,2420991\r\n2023-01-27 15:15:00,145.8880,145.9760,145.6140,145.9620,1956807\r\n2023-01-27 + 15:00:00,145.8930,146.1650,145.8130,145.8920,1674321\r\n2023-01-27 14:45:00,145.6790,146.0260,145.6350,145.9020,1811395\r\n2023-01-27 + 14:30:00,145.7780,145.8470,145.5050,145.6830,1394494\r\n2023-01-27 14:15:00,145.5150,145.9560,145.5050,145.7740,1614957\r\n2023-01-27 + 14:00:00,145.3510,145.5340,145.2470,145.5190,1092587\r\n2023-01-27 13:45:00,145.3610,145.4300,145.1870,145.3560,913236\r\n2023-01-27 + 13:30:00,145.2020,145.5690,145.1570,145.3680,1454188\r\n2023-01-27 13:15:00,145.3170,145.3300,144.9880,145.1920,957452\r\n2023-01-27 + 13:00:00,145.3610,145.4730,145.0930,145.3260,1005769\r\n2023-01-27 12:45:00,145.5600,145.6480,145.3420,145.3760,1052779\r\n2023-01-27 + 12:30:00,145.3790,145.8320,145.1670,145.5560,1618834\r\n2023-01-27 12:15:00,145.3710,145.8960,145.3360,145.3680,2099327\r\n2023-01-27 + 12:00:00,145.0530,145.4790,144.9190,145.3760,1804374\r\n2023-01-27 11:45:00,144.8910,145.2010,144.7600,145.0580,1691657\r\n2023-01-27 + 11:30:00,144.2690,145.1020,144.1740,144.8990,2256364\r\n2023-01-27 11:15:00,143.9210,144.3670,143.9060,144.2630,1467439\r\n2023-01-27 + 11:00:00,143.7130,144.1090,143.6180,143.9250,1730147\r\n2023-01-27 10:45:00,143.9460,143.9660,143.3900,143.6970,1896399\r\n2023-01-27 + 10:30:00,144.4380,144.5410,143.8560,143.9450,1922267\r\n2023-01-27 10:15:00,144.1700,144.5160,143.8150,144.4420,2081938\r\n2023-01-27 + 10:00:00,143.7230,144.4960,143.3990,144.1700,2810931\r\n2023-01-27 09:45:00,143.0670,144.2280,143.0620,143.7170,3425862\r\n2023-01-27 + 09:30:00,142.2030,143.5720,142.0980,143.0810,3713990\r\n2023-01-26 15:45:00,142.4960,143.0660,142.3370,142.9420,4251294\r\n2023-01-26 + 15:30:00,142.5360,142.6980,142.4360,142.4990,1378195\r\n2023-01-26 15:15:00,142.4530,142.7380,142.4060,142.5450,1175706\r\n2023-01-26 + 15:00:00,142.5510,142.6190,142.2670,142.4550,962291\r\n2023-01-26 14:45:00,142.6000,142.7380,142.2970,142.5450,1092977\r\n2023-01-26 + 14:30:00,142.5560,142.7880,142.4760,142.6000,1073885\r\n2023-01-26 14:15:00,142.4710,142.8600,142.3670,142.5550,1332790\r\n2023-01-26 + 14:00:00,142.1730,142.5240,141.9490,142.4800,1239469\r\n2023-01-26 13:45:00,142.2530,142.4600,142.0390,142.1770,937106\r\n2023-01-26 + 13:30:00,141.8950,142.3700,141.8900,142.2580,1131056\r\n2023-01-26 13:15:00,141.7460,141.9430,141.5720,141.8890,584464\r\n2023-01-26 + 13:00:00,141.8450,142.0330,141.5130,141.7500,944902\r\n2023-01-26 12:45:00,141.7810,142.0530,141.6120,141.8400,985075\r\n2023-01-26 + 12:30:00,141.8850,142.1120,141.7410,141.7800,744875\r\n2023-01-26 12:15:00,142.0240,142.0630,141.8300,141.8990,806807\r\n2023-01-26 + 12:00:00,141.7060,142.3010,141.6810,142.0190,1289752\r\n2023-01-26 11:45:00,141.7360,141.7740,141.4980,141.7100,1008489\r\n2023-01-26 + 11:30:00,141.3790,141.8240,141.2150,141.7400,1161425\r\n2023-01-26 11:15:00,141.6090,141.8940,140.9270,141.3930,1742592\r\n2023-01-26 + 11:00:00,141.4180,141.7550,141.2440,141.6210,1386633\r\n2023-01-26 10:45:00,142.1950,142.4250,141.2840,141.4230,1650420\r\n2023-01-26 + 10:30:00,142.5460,142.6780,141.9890,142.1870,1349288\r\n2023-01-26 10:15:00,142.1430,143.0160,142.1080,142.5500,2312979\r\n2023-01-26 + 10:00:00,142.2820,142.4500,141.6910,142.1480,2328421\r\n2023-01-26 09:45:00,142.5410,142.8270,141.9490,142.2770,2821276\r\n2023-01-26 + 09:30:00,142.1930,143.2740,141.8010,142.5540,4245796\r\n2023-01-25 15:45:00,140.6340,140.9200,140.3060,140.8860,3237880\r\n2023-01-25 + 15:30:00,140.8680,140.9900,140.5490,140.6380,1771140\r\n2023-01-25 15:15:00,141.2690,141.3470,140.5590,140.8660,1936429\r\n2023-01-25 + 15:00:00,140.8320,141.4670,140.8180,141.2690,2421977\r\n2023-01-25 14:45:00,140.6590,141.0100,140.5390,140.8270,1470841\r\n2023-01-25 + 14:30:00,140.6340,140.7220,140.4000,140.6580,1164244\r\n2023-01-25 14:15:00,140.5690,141.0100,140.4900,140.6380,1611771\r\n2023-01-25 + 14:00:00,140.1170,140.6120,139.9940,140.5680,1191679\r\n2023-01-25 13:45:00,140.0080,140.3720,139.9230,140.1210,1563186\r\n2023-01-25 + 13:30:00,140.1170,140.2150,139.8840,140.0120,1159314\r\n2023-01-25 13:15:00,139.8730,140.1650,139.8440,140.1210,1254572\r\n2023-01-25 + 13:00:00,139.4820,139.9170,139.4460,139.8830,1183834\r\n2023-01-25 12:45:00,139.5010,139.5600,139.3180,139.4860,627376\r\n2023-01-25 + 12:30:00,139.2730,139.6790,139.1890,139.5060,851021\r\n2023-01-25 12:15:00,139.4020,139.5450,139.1690,139.2670,942255\r\n2023-01-25 + 12:00:00,139.5230,139.7580,139.1590,139.4060,1523908\r\n2023-01-25 11:45:00,139.2090,139.8870,139.0590,139.5260,1828568\r\n2023-01-25 + 11:30:00,139.1440,139.4800,138.9400,139.2080,1836959\r\n2023-01-25 11:15:00,138.8360,139.4800,138.6520,139.1480,2337626\r\n2023-01-25 + 11:00:00,138.3640,138.8670,138.1950,138.8250,2253429\r\n2023-01-25 10:45:00,138.0370,138.5170,137.9170,138.3680,1814184\r\n2023-01-25 + 10:30:00,138.8760,139.0530,137.8580,138.0380,2898756\r\n2023-01-25 10:15:00,138.7960,139.1520,138.5030,138.8700,1978515\r\n2023-01-25 + 10:00:00,138.7670,139.5100,138.6720,138.8130,2455229\r\n2023-01-25 09:45:00,139.1540,139.8480,138.7420,138.7650,2785027\r\n2023-01-25 + 09:30:00,139.9290,140.1360,138.5230,139.1680,5433804\r\n2023-01-24 15:45:00,141.1110,141.7550,140.9760,141.5320,3648415\r\n2023-01-24 + 15:30:00,141.4580,141.4960,140.9320,141.1160,1630244\r\n2023-01-24 15:15:00,141.2730,141.5160,141.2290,141.4530,1194031\r\n2023-01-24 + 15:00:00,141.4780,141.5960,141.2150,141.2840,1237871\r\n2023-01-24 14:45:00,141.5370,141.6450,141.3240,141.4770,1127294\r\n2023-01-24 + 14:30:00,141.6970,141.8340,141.4930,141.5420,1114856\r\n2023-01-24 14:15:00,141.3870,141.7450,141.3440,141.6910,1147658\r\n2023-01-24 + 14:00:00,141.6770,141.6950,141.2240,141.3890,1588811\r\n2023-01-24 13:45:00,142.1040,142.1720,141.6620,141.6860,1196879\r\n2023-01-24 + 13:30:00,141.9450,142.1920,141.8020,142.1070,1808716\r\n2023-01-24 13:15:00,141.4530,141.9530,141.3340,141.9390,1330135\r\n2023-01-24 + 13:00:00,141.4980,141.6160,141.0740,141.4520,1142190\r\n2023-01-24 12:45:00,141.3790,141.6840,141.3140,141.5020,946467\r\n2023-01-24 + 12:30:00,141.7260,141.7350,141.3140,141.3930,1023572\r\n2023-01-24 12:15:00,141.5900,141.9040,141.5040,141.7350,1803709\r\n2023-01-24 + 12:00:00,141.1250,141.6060,140.8370,141.5960,1393518\r\n2023-01-24 11:45:00,141.0810,141.2780,140.9760,141.1350,849995\r\n2023-01-24 + 11:30:00,141.4880,141.5340,140.9360,141.0850,1372549\r\n2023-01-24 11:15:00,141.0410,141.5060,140.7880,141.4860,1584463\r\n2023-01-24 + 11:00:00,141.2890,141.4370,140.9360,141.0450,1732817\r\n2023-01-24 10:45:00,140.7700,141.3470,140.6480,141.2880,1605822\r\n2023-01-24 + 10:30:00,140.9370,141.2480,140.3160,140.7570,1972197\r\n2023-01-24 10:15:00,140.9220,141.3080,140.6580,140.9460,2067111\r\n2023-01-24 + 10:00:00,140.4950,140.9800,140.1220,140.9510,2593950\r\n2023-01-24 09:45:00,140.8920,141.1690,140.4000,140.4840,2829536\r\n2023-01-24 + 09:30:00,139.3480,140.9700,139.3380,140.9260,4358939\r\n2023-01-23 15:45:00,139.8190,140.3040,139.7350,140.1410,4645025\r\n2023-01-23 + 15:30:00,139.6310,139.8960,139.4370,139.8240,1884649\r\n2023-01-23 15:15:00,139.7500,139.8620,139.3970,139.6300,1818166\r\n2023-01-23 + 15:00:00,140.0180,140.0760,139.5260,139.7490,1990630\r\n2023-01-23 14:45:00,140.3450,140.3540,139.6490,140.0220,2453913\r\n2023-01-23 + 14:30:00,140.8130,140.9900,140.2910,140.3450,1559522\r\n2023-01-23 14:15:00,140.8420,141.0200,140.6800,140.7970,1560035\r\n2023-01-23 + 14:00:00,140.9910,141.0200,140.5390,140.8470,1642722\r\n2023-01-23 13:45:00,141.0860,141.3470,140.9070,140.9860,1484231\r\n2023-01-23 + 13:30:00,141.2990,141.3670,141.0160,141.0880,1461935\r\n2023-01-23 13:15:00,141.1500,141.3970,141.1250,141.3030,1420401\r\n2023-01-23 + 13:00:00,141.1800,141.5260,141.0260,141.1590,1908956\r\n2023-01-23 12:45:00,141.3990,141.5360,140.9660,141.1940,2187698\r\n2023-01-23 + 12:30:00,141.4880,141.5560,141.2640,141.4080,1232067\r\n2023-01-23 12:15:00,141.3190,141.5960,141.2340,141.4850,1623032\r\n2023-01-23 + 12:00:00,141.9250,141.9330,141.1850,141.3270,2063424\r\n2023-01-23 11:45:00,141.7060,142.3460,141.4630,141.9290,3303263\r\n2023-01-23 + 11:30:00,141.3690,141.9040,141.2750,141.7010,2377490\r\n2023-01-23 11:15:00,141.1800,141.8340,141.0460,141.3730,3140109\r\n2023-01-23 + 11:00:00,140.2460,141.4760,140.1520,141.1840,3848507\r\n2023-01-23 10:45:00,139.8890,140.5230,139.7890,140.2560,2573732\r\n2023-01-23 + 10:30:00,139.5070,140.0810,139.5010,139.8930,2673807\r\n2023-01-23 10:15:00,138.7670,139.6890,138.7220,139.5130,2817622\r\n2023-01-23 + 10:00:00,138.9260,139.3010,138.6130,138.7630,2921125\r\n2023-01-23 09:45:00,138.3790,139.0530,138.2450,138.9200,3265100\r\n2023-01-23 + 09:30:00,137.1870,138.7000,136.9540,138.3730,5056958\r\n2023-01-20 15:45:00,136.5220,137.0860,136.3680,136.9030,6716655\r\n2023-01-20 + 15:30:00,136.5420,136.6990,136.3190,136.5260,1999873\r\n2023-01-20 15:15:00,136.7900,136.9570,136.4180,136.5410,1923821\r\n2023-01-20 + 15:00:00,136.2340,136.8380,136.1930,136.7940,1984953\r\n2023-01-20 14:45:00,136.3090,136.3320,135.9510,136.2380,1357015\r\n2023-01-20 + 14:30:00,136.0110,136.3510,136.0010,136.3170,1573283\r\n2023-01-20 14:15:00,135.7180,136.0630,135.7130,136.0150,1156358\r\n2023-01-20 + 14:00:00,135.9060,135.9640,135.7030,135.7200,1389922\r\n2023-01-20 13:45:00,135.2160,135.9240,135.2110,135.9000,1939879\r\n2023-01-20 + 13:30:00,134.7740,135.3580,134.7640,135.2250,1584364\r\n2023-01-20 13:15:00,134.8830,134.9210,134.4510,134.7680,1119167\r\n2023-01-20 + 13:00:00,134.8430,135.1400,134.5310,134.8820,1816572\r\n2023-01-20 12:45:00,134.7350,135.0300,134.7050,134.8480,1029414\r\n2023-01-20 + 12:30:00,134.7170,134.9200,134.6500,134.7380,894106\r\n2023-01-20 12:15:00,134.5160,134.8420,134.5110,134.7230,1007840\r\n2023-01-20 + 12:00:00,134.3870,134.6930,134.3770,134.5190,1156870\r\n2023-01-20 11:45:00,134.2130,134.5640,134.1730,134.3870,1349757\r\n2023-01-20 + 11:30:00,134.6150,134.7540,134.1140,134.2120,1643713\r\n2023-01-20 11:15:00,134.5260,134.6530,134.2530,134.6190,1431922\r\n2023-01-20 + 11:00:00,134.0990,134.6030,134.0740,134.5490,1798442\r\n2023-01-20 10:45:00,134.1970,134.4150,134.0440,134.0930,1654390\r\n2023-01-20 + 10:30:00,134.1380,134.5730,134.0240,134.2020,2212750\r\n2023-01-20 10:15:00,133.8720,134.2850,133.6620,134.1320,2023685\r\n2023-01-20 + 10:00:00,133.6920,134.1070,133.3990,133.8790,2329429\r\n2023-01-20 09:45:00,133.8900,134.2850,133.4510,133.6870,2681150\r\n2023-01-20 + 09:30:00,134.3470,134.3750,133.2990,133.8920,8775063\r\n2023-01-19 15:45:00,134.6050,134.7820,134.1730,134.3630,3781028\r\n2023-01-19 + 15:30:00,134.7840,134.9110,134.5380,134.6190,1423205\r\n2023-01-19 15:15:00,134.7140,134.9510,134.5800,134.7880,1394818\r\n2023-01-19 + 15:00:00,135.0120,135.1300,134.6400,134.7130,1353232\r\n2023-01-19 14:45:00,135.1420,135.3280,134.8290,135.0010,1167922\r\n2023-01-19 + 14:30:00,134.9530,135.3280,134.7390,135.1360,1746550\r\n2023-01-19 14:15:00,134.5700,135.1300,134.4860,134.9620,1472276\r\n2023-01-19 + 14:00:00,134.3470,134.6330,134.1330,134.5690,1224657\r\n2023-01-19 13:45:00,134.3170,134.4150,134.0940,134.3610,1026564\r\n2023-01-19 + 13:30:00,133.8400,134.6330,133.8360,134.3190,1605626\r\n2023-01-19 13:15:00,133.9700,134.1960,133.7060,133.8340,1227478\r\n2023-01-19 + 13:00:00,133.6820,134.0770,133.6640,133.9740,1131186\r\n2023-01-19 12:45:00,133.5750,133.6900,133.4280,133.6840,776887\r\n2023-01-19 + 12:30:00,133.5240,133.7390,133.3490,133.5860,848018\r\n2023-01-19 12:15:00,133.6720,133.9180,133.4280,133.5270,1023364\r\n2023-01-19 + 12:00:00,133.4730,133.8190,133.4280,133.6770,1147155\r\n2023-01-19 11:45:00,133.4630,133.7690,133.3490,133.4870,1169913\r\n2023-01-19 + 11:30:00,133.5620,133.6500,133.2690,133.4670,1339811\r\n2023-01-19 11:15:00,134.2530,134.2850,133.4680,133.5760,1994443\r\n2023-01-19 + 11:00:00,133.1950,134.4740,133.1300,134.2580,2519967\r\n2023-01-19 10:45:00,133.5430,133.5500,132.8520,133.1890,1615427\r\n2023-01-19 + 10:30:00,133.5590,133.7690,133.1700,133.5350,1652092\r\n2023-01-19 10:15:00,133.4930,134.1550,133.2510,133.5560,1873714\r\n2023-01-19 + 10:00:00,134.1290,134.1360,133.3690,133.4960,2281444\r\n2023-01-19 09:45:00,133.5230,134.4100,133.0920,134.1420,2975242\r\n2023-01-19 + 09:30:00,133.1750,134.2760,132.9420,133.5270,3892475\r\n2023-01-18 15:45:00,134.5260,134.6330,134.1040,134.2810,3752501\r\n2023-01-18 + 15:30:00,134.8340,134.9010,134.4310,134.5250,1498963\r\n2023-01-18 15:15:00,134.9580,135.1100,134.7090,134.8390,1230618\r\n2023-01-18 + 15:00:00,134.8730,135.1890,134.7440,134.9670,1312264\r\n2023-01-18 14:45:00,135.0320,135.1140,134.7890,134.8820,946124\r\n2023-01-18 + 14:30:00,135.1320,135.2390,134.9280,135.0410,1066617\r\n2023-01-18 14:15:00,134.9970,135.1890,134.7190,135.1460,1014389\r\n2023-01-18 + 14:00:00,135.1420,135.1640,134.7390,135.0130,1097723\r\n2023-01-18 13:45:00,134.7540,135.3480,134.7290,135.1360,1695408\r\n2023-01-18 + 13:30:00,134.8040,134.8520,134.4510,134.7630,1103844\r\n2023-01-18 13:15:00,134.5260,134.8410,134.4020,134.7980,1099141\r\n2023-01-18 + 13:00:00,134.7740,135.0400,134.4310,134.5300,1319586\r\n2023-01-18 12:45:00,134.6650,134.8910,134.6200,134.7780,1085836\r\n2023-01-18 + 12:30:00,134.6550,134.9060,134.4910,134.6790,1143111\r\n2023-01-18 12:15:00,135.0120,135.2040,134.5110,134.6620,1499372\r\n2023-01-18 + 12:00:00,135.2290,135.3580,134.5310,135.0060,1697851\r\n2023-01-18 11:45:00,135.0420,135.2890,134.8680,135.2310,1642756\r\n2023-01-18 + 11:30:00,135.7470,135.8050,134.9780,135.0560,2083783\r\n2023-01-18 11:15:00,136.0060,136.0530,135.4640,135.7510,1994107\r\n2023-01-18 + 11:00:00,136.1150,136.4410,135.6930,136.0100,1869131\r\n2023-01-18 10:45:00,135.9660,136.1810,135.6130,136.1240,2004550\r\n2023-01-18 + 10:30:00,137.0480,137.0670,135.8910,135.9710,2364947\r\n2023-01-18 10:15:00,136.8360,137.1450,136.2690,137.0440,2611453\r\n2023-01-18 + 10:00:00,137.0390,137.6720,136.6760,136.8340,4058899\r\n2023-01-18 09:45:00,136.2340,137.0670,136.0600,137.0430,3768402\r\n2023-01-18 + 09:30:00,135.8860,136.6590,135.7420,136.2510,5413109\r\n2023-01-17 15:45:00,134.8140,135.0800,134.6800,135.0060,3661056\r\n2023-01-17 + 15:30:00,134.7690,135.0200,134.7390,134.8180,1396688\r\n2023-01-17 15:15:00,134.8540,134.9210,134.6700,134.7830,1085677\r\n2023-01-17 + 15:00:00,134.9680,135.1600,134.7790,134.8530,1015091\r\n2023-01-17 14:45:00,135.1120,135.1490,134.8580,134.9840,847545\r\n2023-01-17 + 14:30:00,134.7390,135.1600,134.7340,135.1260,1158455\r\n2023-01-17 14:15:00,134.7440,134.8520,134.4710,134.7390,1141209\r\n2023-01-17 + 14:00:00,135.1320,135.1690,134.5710,134.7480,1023901\r\n2023-01-17 13:45:00,135.3880,135.4770,135.0670,135.1310,820502\r\n2023-01-17 + 13:30:00,135.1320,135.4180,134.9980,135.3940,823247\r\n2023-01-17 13:15:00,135.0570,135.2190,134.9970,135.1260,830634\r\n2023-01-17 + 13:00:00,135.3100,135.3880,134.9780,135.0610,1181279\r\n2023-01-17 12:45:00,134.8580,135.3580,134.7690,135.3240,1478105\r\n2023-01-17 + 12:30:00,134.6650,135.0300,134.6300,134.8630,942795\r\n2023-01-17 12:15:00,134.6450,134.7310,134.3820,134.6690,1127715\r\n2023-01-17 + 12:00:00,134.9430,135.0400,134.6200,134.6490,1002075\r\n2023-01-17 11:45:00,134.9810,135.1890,134.7690,134.9370,909778\r\n2023-01-17 + 11:30:00,134.4660,135.2190,134.4320,134.9870,1983101\r\n2023-01-17 11:15:00,133.9050,134.6030,133.8960,134.4750,1919804\r\n2023-01-17 + 11:00:00,134.6100,134.7520,133.7560,133.9040,2282180\r\n2023-01-17 10:45:00,134.7440,134.9910,134.4120,134.6190,2035772\r\n2023-01-17 + 10:30:00,135.7670,135.8750,134.4910,134.7480,2918185\r\n2023-01-17 10:15:00,135.3300,136.3610,135.2310,135.7610,3519018\r\n2023-01-17 + 10:00:00,134.2680,135.6360,134.2630,135.3390,3639677\r\n2023-01-17 09:45:00,133.9550,134.6930,133.9500,134.2710,2644061\r\n2023-01-17 + 09:30:00,133.9100,134.6130,133.2100,133.9540,5496289\r\n2023-01-13 15:45:00,133.8950,133.9180,133.5380,133.7850,3746397\r\n2023-01-13 + 15:30:00,133.6870,134.0070,133.6120,133.9090,2118978\r\n2023-01-13 15:15:00,133.3830,133.6990,133.3590,133.6900,1403037\r\n2023-01-13 + 15:00:00,133.2250,133.4810,133.1500,133.3830,1302750\r\n2023-01-13 14:45:00,133.2150,133.3420,133.1200,133.2200,1038935\r\n2023-01-13 + 14:30:00,133.3340,133.5110,133.1900,133.2290,1223800\r\n2023-01-13 14:15:00,133.1550,133.3720,133.0310,133.3340,1228248\r\n2023-01-13 + 14:00:00,133.2250,133.3220,132.9710,133.1500,1205640\r\n2023-01-13 13:45:00,133.2550,133.4710,133.1400,133.2250,1246043\r\n2023-01-13 + 13:30:00,132.7480,133.4210,132.7130,133.2630,1761614\r\n2023-01-13 13:15:00,132.5690,132.8060,132.4250,132.7370,1035880\r\n2023-01-13 + 13:00:00,132.6290,132.7060,132.3860,132.5680,852197\r\n2023-01-13 12:45:00,132.5100,132.6960,132.3760,132.6320,1047491\r\n2023-01-13 + 12:30:00,132.6090,132.6270,132.2470,132.5140,911447\r\n2023-01-13 12:15:00,132.3810,132.6960,132.2860,132.6030,900112\r\n2023-01-13 + 12:00:00,132.3010,132.4780,132.2170,132.3940,926455\r\n2023-01-13 11:45:00,132.1820,132.3490,131.8440,132.3080,1375165\r\n2023-01-13 + 11:30:00,132.1320,132.2690,131.8700,132.1910,1106358\r\n2023-01-13 11:15:00,132.5340,132.5670,132.0580,132.1360,1778202\r\n2023-01-13 + 11:00:00,132.8370,133.0540,132.4650,132.5380,1838158\r\n2023-01-13 10:45:00,132.7480,133.0490,132.5740,132.8410,1750994\r\n2023-01-13 + 10:30:00,132.5990,133.0640,132.3260,132.7370,2121920\r\n2023-01-13 10:15:00,132.4000,132.6470,132.0880,132.6030,2077111\r\n2023-01-13 + 10:00:00,131.6360,132.5570,131.4920,132.3990,2886214\r\n2023-01-13 09:45:00,131.2730,131.7920,131.0250,131.6640,2642394\r\n2023-01-13 + 09:30:00,131.0500,132.0340,130.7570,131.2820,4253768\r\n2023-01-12 15:45:00,132.2220,132.6570,131.8590,132.4790,3432538\r\n2023-01-12 + 15:30:00,132.2810,132.5270,132.1680,132.2250,1620731\r\n2023-01-12 15:15:00,132.0630,132.4830,131.9190,132.2800,1587928\r\n2023-01-12 + 15:00:00,132.4450,132.5270,131.9980,132.0740,1307882\r\n2023-01-12 14:45:00,132.4600,132.6560,132.1070,132.4440,1363280\r\n2023-01-12 + 14:30:00,132.2890,132.6170,132.0980,132.4630,1472133\r\n2023-01-12 14:15:00,132.7880,132.8450,132.2270,132.2930,1239464\r\n2023-01-12 + 14:00:00,133.1060,133.2030,132.6650,132.7970,1375847\r\n2023-01-12 13:45:00,132.7130,133.2820,132.6640,133.1140,1518268\r\n2023-01-12 + 13:30:00,131.8940,132.7660,131.5120,132.7220,2435122\r\n2023-01-12 13:15:00,132.8030,133.0640,131.8490,131.9080,1607829\r\n2023-01-12 + 13:00:00,132.8030,133.0440,132.4850,132.8110,1395646\r\n2023-01-12 12:45:00,133.0260,133.2130,132.7930,132.8110,1155360\r\n2023-01-12 + 12:30:00,133.0960,133.3120,132.9320,133.0400,1572799\r\n2023-01-12 12:15:00,132.3810,133.1780,132.3460,133.0990,1890439\r\n2023-01-12 + 12:00:00,132.1720,132.5570,131.9040,132.3850,1373934\r\n2023-01-12 11:45:00,131.9340,132.2700,131.6110,132.1760,1321383\r\n2023-01-12 + 11:30:00,131.5160,132.0210,131.1640,131.9470,1416688\r\n2023-01-12 11:15:00,131.8440,131.8820,131.2630,131.5150,1249922\r\n2023-01-12 + 11:00:00,131.5460,131.8420,131.0850,131.8380,1809483\r\n2023-01-12 10:45:00,131.7050,132.0470,131.4620,131.5450,1951060\r\n2023-01-12 + 10:30:00,132.0730,132.5270,131.5910,131.6990,2217902\r\n2023-01-12 10:15:00,132.4550,132.8900,131.9290,132.0670,2758195\r\n2023-01-12 + 10:00:00,131.3970,132.7460,131.2430,132.4540,3312376\r\n2023-01-12 09:45:00,131.2500,131.6240,130.5380,131.4010,3848820\r\n2023-01-12 + 09:30:00,132.9370,133.3520,131.2240,131.2320,5781275\r\n2023-01-11 15:45:00,132.0230,132.6070,131.8690,132.5730,5987351\r\n2023-01-11 + 15:30:00,132.0230,132.0610,131.7500,132.0320,1705148\r\n2023-01-11 15:15:00,131.8990,132.1600,131.8890,132.0190,1463953\r\n2023-01-11 + 15:00:00,131.6260,132.0210,131.5860,131.9080,1612124\r\n2023-01-11 14:45:00,131.8980,131.9220,131.4920,131.6290,1128502\r\n2023-01-11 + 14:30:00,131.5050,131.9710,131.4120,131.8990,1342064\r\n2023-01-11 14:15:00,131.4770,131.7530,131.4420,131.5050,1185374\r\n2023-01-11 + 14:00:00,131.5070,131.5540,131.2580,131.4760,1155058\r\n2023-01-11 13:45:00,131.5660,131.6040,131.3030,131.5010,1085825\r\n2023-01-11 + 13:30:00,131.9020,131.9760,131.5310,131.5700,1208250\r\n2023-01-11 13:15:00,132.1770,132.2000,131.5020,131.8980,1413961\r\n2023-01-11 + 13:00:00,131.8540,132.3390,131.8260,132.1730,1760838\r\n2023-01-11 12:45:00,131.6900,132.0310,131.6700,131.8480,1149297\r\n2023-01-11 + 12:30:00,131.8940,132.0210,131.6010,131.6990,1778715\r\n2023-01-11 12:15:00,131.6650,131.9610,131.5760,131.8980,1762701\r\n2023-01-11 + 12:00:00,131.3970,131.7330,131.3220,131.6690,1552365\r\n2023-01-11 11:45:00,131.1390,131.4750,131.0750,131.3910,1619366\r\n2023-01-11 + 11:30:00,130.7820,131.1760,130.5680,131.1380,1610293\r\n2023-01-11 11:15:00,130.7390,130.8990,130.6970,130.7900,1310190\r\n2023-01-11 + 11:00:00,130.5830,130.7990,130.4740,130.7440,1602640\r\n2023-01-11 10:45:00,130.3840,130.8190,130.3300,130.5820,2102564\r\n2023-01-11 + 10:30:00,131.1190,131.1770,130.1910,130.3980,2607748\r\n2023-01-11 10:15:00,130.4740,131.2150,130.2700,131.1230,3144073\r\n2023-01-11 + 10:00:00,130.0020,130.6010,129.5950,130.4680,2645272\r\n2023-01-11 09:45:00,129.9770,130.6400,129.6740,129.9890,2976233\r\n2023-01-11 + 09:30:00,130.3450,130.7000,129.5650,129.9910,4522200\r\n2023-01-10 15:45:00,129.2120,129.8660,129.1410,129.8620,3453530\r\n2023-01-10 + 15:30:00,129.2520,129.4880,129.1180,129.2160,1458131\r\n2023-01-10 15:15:00,129.1330,129.3690,129.1080,129.2660,1355369\r\n2023-01-10 + 15:00:00,129.2270,129.2550,128.8700,129.1420,1511889\r\n2023-01-10 14:45:00,129.2170,129.3190,129.0880,129.2310,1185254\r\n2023-01-10 + 14:30:00,129.4800,129.5380,129.1580,129.2210,1117021\r\n2023-01-10 14:15:00,129.5450,129.6520,129.2870,129.4750,1402732\r\n2023-01-10 + 14:00:00,129.3410,129.8060,129.3370,129.5540,1898998\r\n2023-01-10 13:45:00,128.9190,129.3890,128.9050,129.3400,1924753\r\n2023-01-10 + 13:30:00,128.7650,129.1310,128.6810,128.9280,1215419\r\n2023-01-10 13:15:00,128.7750,128.9020,128.5320,128.7790,1378739\r\n2023-01-10 + 13:00:00,128.8450,129.1210,128.7210,128.7840,1838773\r\n2023-01-10 12:45:00,128.6860,128.9820,128.5820,128.8490,1003492\r\n2023-01-10 + 12:30:00,128.2290,128.9420,128.1660,128.7000,1493521\r\n2023-01-10 12:15:00,128.2690,128.3660,128.0850,128.2430,1271746\r\n2023-01-10 + 12:00:00,127.9910,128.3660,127.5690,128.2820,1736393\r\n2023-01-10 11:45:00,128.0400,128.2070,127.7770,128.0040,1613180\r\n2023-01-10 + 11:30:00,128.1400,128.3160,127.8870,128.0490,1312371\r\n2023-01-10 11:15:00,128.1500,128.3560,127.8470,128.1530,1892243\r\n2023-01-10 + 11:00:00,128.2190,128.3260,127.9160,128.1430,1987704\r\n2023-01-10 10:45:00,127.3450,128.3260,127.2410,128.2130,2569791\r\n2023-01-10 + 10:30:00,128.5170,128.5250,127.3520,127.3600,2983706\r\n2023-01-10 10:15:00,129.4520,129.9520,128.4430,128.5310,2795482\r\n2023-01-10 + 10:00:00,129.1030,129.7870,128.7210,129.4540,2942621\r\n2023-01-10 09:45:00,129.2070,129.5280,128.6220,129.1070,3409102\r\n2023-01-10 + 09:30:00,129.3910,130.3760,128.9050,129.2160,4395905\r\n2023-01-09 15:45:00,129.6190,129.6370,128.9990,129.3050,3582553\r\n2023-01-09 + 15:30:00,129.5600,129.6870,129.2670,129.6130,1778658\r\n2023-01-09 15:15:00,129.4770,129.8160,129.4460,129.5590,1566557\r\n2023-01-09 + 15:00:00,129.7880,129.9350,129.4660,129.4840,1533054\r\n2023-01-09 14:45:00,130.1960,130.2730,129.6940,129.7820,1401037\r\n2023-01-09 + 14:30:00,130.5930,130.6770,130.0520,130.1990,1517874\r\n2023-01-09 14:15:00,130.5680,130.7690,130.3990,130.6020,1619617\r\n2023-01-09 + 14:00:00,130.4930,130.8350,130.3410,130.5770,2115867\r\n2023-01-09 13:45:00,130.7220,130.7350,130.2900,130.5020,1882895\r\n2023-01-09 + 13:30:00,131.5910,131.6140,130.6670,130.7260,1901786\r\n2023-01-09 13:15:00,131.5170,131.6720,131.4420,131.5950,1053537\r\n2023-01-09 + 13:00:00,131.5560,131.7430,131.3530,131.5200,1217802\r\n2023-01-09 12:45:00,131.3580,131.6340,131.3480,131.5590,1062284\r\n2023-01-09 + 12:30:00,131.8340,131.9320,131.3430,131.3610,1151819\r\n2023-01-09 12:15:00,131.9040,131.9430,131.6900,131.8430,1207244\r\n2023-01-09 + 12:00:00,132.0330,132.0560,131.6610,131.9180,1424082\r\n2023-01-09 11:45:00,132.0610,132.2200,131.8990,132.0420,1413133\r\n2023-01-09 + 11:30:00,132.1820,132.2790,131.8890,132.0670,1784388\r\n2023-01-09 11:15:00,132.3210,132.5080,132.0580,132.1810,2077028\r\n2023-01-09 + 11:00:00,131.8340,132.4380,131.7600,132.3050,2311810\r\n2023-01-09 10:45:00,131.8240,132.2390,131.7500,131.8380,2441800\r\n2023-01-09 + 10:30:00,131.6700,131.9390,131.5550,131.8330,2233026\r\n2023-01-09 10:15:00,131.2430,131.8370,131.0550,131.6640,3068089\r\n2023-01-09 + 10:00:00,131.1090,131.7330,131.0660,131.2320,3445151\r\n2023-01-09 09:45:00,130.1560,131.1670,130.1470,131.1180,3518419\r\n2023-01-09 + 09:30:00,129.5900,130.5510,129.5700,130.1600,5025104\r\n2023-01-06 15:45:00,128.9140,129.0910,128.4530,128.6200,6354069\r\n2023-01-06 + 15:30:00,128.9290,129.1700,128.8650,128.9180,2525589\r\n2023-01-06 15:15:00,129.1130,129.2350,128.8100,128.9280,2147402\r\n2023-01-06 + 15:00:00,128.9640,129.4090,128.9190,129.1120,2938553\r\n2023-01-06 14:45:00,128.8940,129.1110,128.7210,128.9670,2026129\r\n2023-01-06 + 14:30:00,128.4570,128.9820,128.4180,128.8880,2234996\r\n2023-01-06 14:15:00,128.2790,128.6740,128.2290,128.4560,2248827\r\n2023-01-06 + 14:00:00,127.9710,128.3660,127.9000,128.2810,1971350\r\n2023-01-06 13:45:00,127.7470,128.0080,127.6480,127.9700,1230499\r\n2023-01-06 + 13:30:00,127.3650,127.8890,127.3600,127.7560,1691721\r\n2023-01-06 13:15:00,127.3100,127.5310,127.1810,127.3790,1132078\r\n2023-01-06 + 13:00:00,127.0870,127.4320,127.0130,127.3180,1332157\r\n2023-01-06 12:45:00,127.2250,127.3330,126.9030,127.0910,1294385\r\n2023-01-06 + 12:30:00,127.4460,127.5220,127.1520,127.2250,1443007\r\n2023-01-06 12:15:00,127.3100,127.6110,127.1320,127.4580,1651090\r\n2023-01-06 + 12:00:00,127.0170,127.4920,127.0030,127.3090,1931796\r\n2023-01-06 11:45:00,126.4910,127.1540,126.4370,127.0110,2060642\r\n2023-01-06 + 11:30:00,126.3820,126.8260,126.1390,126.4850,2155018\r\n2023-01-06 11:15:00,126.5160,126.7830,126.2880,126.3800,1787798\r\n2023-01-06 + 11:00:00,126.5750,127.1740,126.4370,126.5150,2734482\r\n2023-01-06 10:45:00,126.1930,126.6470,126.1640,126.5440,2136941\r\n2023-01-06 + 10:30:00,125.5130,126.6380,125.4730,126.1870,2610878\r\n2023-01-06 10:15:00,125.9250,126.4890,125.3840,125.5160,2660372\r\n2023-01-06 + 10:00:00,124.9420,126.3890,124.9370,125.9240,4373930\r\n2023-01-06 09:45:00,124.1070,125.8330,124.0630,124.9450,3777542\r\n2023-01-06 + 09:30:00,125.1400,126.3300,124.0330,124.1210,6070023\r\n2023-01-05 15:45:00,124.2270,124.4230,123.9040,124.1810,5635648\r\n2023-01-05 + 15:30:00,124.3160,124.4520,124.1420,124.2250,2448840\r\n2023-01-05 15:15:00,124.3090,124.5120,124.1720,124.3100,2082922\r\n2023-01-05 + 15:00:00,124.6290,124.6810,124.1720,124.3150,2384281\r\n2023-01-05 14:45:00,125.0610,125.2870,124.6140,124.6270,2445827\r\n2023-01-05 + 14:30:00,125.0310,125.5250,125.0160,125.0740,1644570\r\n2023-01-05 14:15:00,125.2000,125.3660,124.9470,125.0330,1147697\r\n2023-01-05 + 14:00:00,125.4180,125.6150,125.1550,125.1940,1344445\r\n2023-01-05 13:45:00,125.6670,125.7040,125.3140,125.4120,1195432\r\n2023-01-05 + 13:30:00,125.6270,126.1810,125.5830,125.6620,1881027\r\n2023-01-05 13:15:00,124.9520,126.0120,124.9370,125.6210,2540822\r\n2023-01-05 + 13:00:00,125.3840,125.4140,124.9470,124.9630,1339449\r\n2023-01-05 12:45:00,125.4880,125.6190,125.3140,125.3900,931652\r\n2023-01-05 + 12:30:00,125.6370,125.9420,125.4340,125.4920,1089572\r\n2023-01-05 12:15:00,125.6960,125.7730,125.3340,125.6440,1292385\r\n2023-01-05 + 12:00:00,125.8160,126.0960,125.6320,125.7000,1352333\r\n2023-01-05 11:45:00,126.0490,126.2200,125.7510,125.8190,1653343\r\n2023-01-05 + 11:30:00,125.6870,126.0910,125.5630,126.0530,2128183\r\n2023-01-05 11:15:00,125.9350,126.0810,125.4530,125.7000,1723457\r\n2023-01-05 + 11:00:00,125.5570,126.1410,125.2850,125.9340,2088956\r\n2023-01-05 10:45:00,126.0140,126.1710,125.4140,125.5610,2108908\r\n2023-01-05 + 10:30:00,125.9050,126.0910,125.2950,126.0180,2943035\r\n2023-01-05 10:15:00,126.2230,126.3400,125.7710,125.8990,2681010\r\n2023-01-05 + 10:00:00,126.5010,126.9060,126.0390,126.2460,3669287\r\n2023-01-05 09:45:00,124.9910,126.6270,124.5990,126.5150,4995536\r\n2023-01-05 + 09:30:00,126.2630,126.3000,124.4600,125.0050,5613002\r\n2023-01-04 15:45:00,124.5150,125.6240,124.4210,125.5210,4882683\r\n2023-01-04 + 15:30:00,124.9610,125.0880,124.4210,124.5180,2596098\r\n2023-01-04 15:15:00,125.4880,125.6840,124.9570,124.9850,2132671\r\n2023-01-04 + 15:00:00,125.6070,125.9920,125.3740,125.4950,1965013\r\n2023-01-04 14:45:00,124.9520,125.6540,124.8380,125.6140,2090591\r\n2023-01-04 + 14:30:00,124.8620,125.2470,124.5200,124.9470,2788347\r\n2023-01-04 14:15:00,125.8450,126.4790,124.7580,124.8710,3016051\r\n2023-01-04 + 14:00:00,126.3020,127.0050,125.4140,125.8590,3477195\r\n2023-01-04 13:45:00,126.5410,126.6180,126.1980,126.3270,1069981\r\n2023-01-04 + 13:30:00,126.3970,126.6260,126.3570,126.5510,964507\r\n2023-01-04 13:15:00,126.3520,126.6380,126.3080,126.3950,1030293\r\n2023-01-04 + 13:00:00,126.3670,126.4390,126.0590,126.3560,1376606\r\n2023-01-04 12:45:00,127.0460,127.0540,126.3570,126.3660,1270344\r\n2023-01-04 + 12:30:00,127.2010,127.3530,126.8840,127.0510,1124897\r\n2023-01-04 12:15:00,127.2160,127.7850,127.1520,127.1950,1844230\r\n2023-01-04 + 12:00:00,126.8980,127.3030,126.8440,127.2160,1512221\r\n2023-01-04 11:45:00,127.2460,127.2730,126.8640,126.9020,1749357\r\n2023-01-04 + 11:30:00,126.5210,127.5710,126.5060,127.2500,3407396\r\n2023-01-04 11:15:00,126.2230,126.6380,126.0990,126.5150,2253557\r\n2023-01-04 + 11:00:00,126.0940,126.2550,125.6320,126.2230,2088713\r\n2023-01-04 10:45:00,125.7350,126.1610,125.7170,126.1270,2471002\r\n2023-01-04 + 10:30:00,125.1300,125.8830,124.4740,125.7400,2750473\r\n2023-01-04 10:15:00,124.8820,125.1480,124.6090,125.1420,2828869\r\n2023-01-04 + 10:00:00,125.7760,126.4790,124.2220,124.8660,5121969\r\n2023-01-04 09:45:00,125.3040,125.9990,125.0760,125.7990,4056481\r\n2023-01-04 + 09:30:00,126.0240,126.6920,125.2650,125.3070,8179169\r\n2023-01-03 15:45:00,124.1370,124.5720,123.9540,124.2000,6493878\r\n2023-01-03 + 15:30:00,123.7800,124.1540,123.7700,124.1310,2933961\r\n2023-01-03 15:15:00,123.8590,124.1840,123.6860,123.7730,2645981\r\n2023-01-03 + 15:00:00,123.7800,123.9760,123.5470,123.8530,2165456\r\n2023-01-03 14:45:00,123.9680,124.4820,123.5860,123.7820,3196386\r\n2023-01-03 + 14:30:00,123.7280,124.0150,123.3180,123.9620,2152954\r\n2023-01-03 14:15:00,123.8190,123.9760,123.5660,123.7240,1509326\r\n2023-01-03 + 14:00:00,123.9680,124.1540,123.7650,123.8230,1688964\r\n2023-01-03 13:45:00,123.7600,123.9960,123.3380,123.9670,2134910\r\n2023-01-03 + 13:30:00,123.8190,123.9860,123.6560,123.7730,1525935\r\n2023-01-03 13:15:00,123.4420,123.8960,123.3380,123.8030,1892722\r\n2023-01-03 + 13:00:00,123.7500,123.9160,123.3580,123.4410,1700993\r\n2023-01-03 12:45:00,123.8040,123.8560,123.4970,123.7440,1995756\r\n2023-01-03 + 12:30:00,123.8090,124.0950,123.7060,123.8130,1632983\r\n2023-01-03 12:15:00,124.1270,124.1400,123.4960,123.8130,2260197\r\n2023-01-03 + 12:00:00,123.8990,124.2090,123.8350,124.1310,2027857\r\n2023-01-03 11:45:00,124.1070,124.1450,123.6360,123.8950,3044469\r\n2023-01-03 + 11:30:00,124.4950,124.5220,123.9740,124.1170,2546604\r\n2023-01-03 11:15:00,123.9780,124.6110,123.9050,124.4930,2773011\r\n2023-01-03 + 11:00:00,124.7380,125.0190,123.8740,123.9790,4858972\r\n2023-01-03 10:45:00,124.5140,124.8750,124.3710,124.7420,3326033\r\n2023-01-03 + 10:30:00,124.6040,124.9290,124.1920,124.4980,4825857\r\n2023-01-03 10:15:00,125.0610,125.2020,124.3710,124.6080,4607743\r\n2023-01-03 + 10:00:00,126.0740,126.4390,124.9170,125.0590,4751302\r\n2023-01-03 09:45:00,128.9940,129.2500,126.0100,126.0710,6031150\r\n2023-01-03 + 09:30:00,129.3610,130.0150,128.5520,129.0030,7092582\r\n" headers: Allow: - GET, HEAD, OPTIONS CF-Cache-Status: - DYNAMIC CF-RAY: - - 8088c0e88c380eb1-AMS + - 85ce38b1794b2db9-YVR Connection: - - close + - keep-alive + Content-Disposition: + - attachment; filename=intraday_15min_AAPL.csv Content-Length: - - '215' + - '33793' Content-Type: - - application/json + - application/x-download Cross-Origin-Opener-Policy: - same-origin Date: - - Mon, 18 Sep 2023 10:02:28 GMT + - Thu, 29 Feb 2024 04:39:11 GMT + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' Referrer-Policy: - same-origin + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1709181545&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=981PZd8mTWGiCra0E4yBSk28yyW4n2S%2FVCrZT0YNQm8%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1709181545&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=981PZd8mTWGiCra0E4yBSk28yyW4n2S%2FVCrZT0YNQm8%3D Server: - cloudflare Vary: diff --git a/openbb_platform/providers/alpha_vantage/tests/test_alpha_vantage_fetchers.py b/openbb_platform/providers/alpha_vantage/tests/test_alpha_vantage_fetchers.py index f3d7061c1ed..8cc9fb7ed66 100644 --- a/openbb_platform/providers/alpha_vantage/tests/test_alpha_vantage_fetchers.py +++ b/openbb_platform/providers/alpha_vantage/tests/test_alpha_vantage_fetchers.py @@ -21,13 +21,12 @@ def vcr_config(): @pytest.mark.record_http -@pytest.mark.skip(reason="This is a premium endpoint.") def test_av_equity_historical_fetcher(credentials=test_credentials): params = { "symbol": "AAPL", "start_date": date(2023, 1, 1), "end_date": date(2023, 1, 10), - "interval": "1d", + "interval": "15m", } fetcher = AVEquityHistoricalFetcher() diff --git a/openbb_platform/providers/cboe/openbb_cboe/__init__.py b/openbb_platform/providers/cboe/openbb_cboe/__init__.py index a086ac03ee7..5f6db23c88d 100644 --- a/openbb_platform/providers/cboe/openbb_cboe/__init__.py +++ b/openbb_platform/providers/cboe/openbb_cboe/__init__.py @@ -28,6 +28,7 @@ cboe_provider = Provider( "EquityHistorical": CboeEquityHistoricalFetcher, "EquityQuote": CboeEquityQuoteFetcher, "EquitySearch": CboeEquitySearchFetcher, + "EtfHistorical": CboeEquityHistoricalFetcher, "IndexConstituents": CboeIndexConstituentsFetcher, "FuturesCurve": CboeFuturesCurveFetcher, "IndexHistorical": CboeIndexHistoricalFetcher, diff --git a/openbb_platform/providers/fmp/openbb_fmp/__init__.py b/openbb_platform/providers/fmp/openbb_fmp/__init__.py index 9c83df5a19e..61a9d331bd5 100644 --- a/openbb_platform/providers/fmp/openbb_fmp/__init__.py +++ b/openbb_platform/providers/fmp/openbb_fmp/__init__.py @@ -52,7 +52,6 @@ from openbb_fmp.models.insider_trading import FMPInsiderTradingFetcher from openbb_fmp.models.institutional_ownership import FMPInstitutionalOwnershipFetcher from openbb_fmp.models.key_executives import FMPKeyExecutivesFetcher from openbb_fmp.models.key_metrics import FMPKeyMetricsFetcher -from openbb_fmp.models.market_indices import FMPMarketIndicesFetcher from openbb_fmp.models.market_snapshots import FMPMarketSnapshotsFetcher from openbb_fmp.models.price_performance import FMPPricePerformanceFetcher from openbb_fmp.models.price_target import FMPPriceTargetFetcher @@ -120,7 +119,7 @@ fmp_provider = Provider( "InstitutionalOwnership": FMPInstitutionalOwnershipFetcher, "KeyExecutives": FMPKeyExecutivesFetcher, "KeyMetrics": FMPKeyMetricsFetcher, - "MarketIndices": FMPMarketIndicesFetcher, + "MarketIndices": FMPIndexHistoricalFetcher, "MarketSnapshots": FMPMarketSnapshotsFetcher, "PricePerformance": FMPPricePerformanceFetcher, "PriceTarget": FMPPriceTargetFetcher, @@ -131,5 +130,6 @@ fmp_provider = Provider( "ShareStatistics": FMPShareStatisticsFetcher, "TreasuryRates": FMPTreasuryRatesFetcher, "WorldNews": FMPWorldNewsFetcher, + "EtfHistorical": FMPEquityHistoricalFetcher, }, ) diff --git a/openbb_platform/providers/fmp/openbb_fmp/models/crypto_historical.py b/openbb_platform/providers/fmp/openbb_fmp/models/crypto_historical.py index 69018d01003..ab4c7074f6c 100644 --- a/openbb_platform/providers/fmp/openbb_fmp/models/crypto_historical.py +++ b/openbb_platform/providers/fmp/openbb_fmp/models/crypto_historical.py @@ -1,5 +1,8 @@ """FMP Cryptos Historical Price Model.""" +# pylint: disable=unused-argument + +import warnings from datetime import datetime from typing import Any, Dict, List, Literal, Optional @@ -9,15 +12,24 @@ from openbb_core.provider.standard_models.crypto_historical import ( CryptoHistoricalData, CryptoHistoricalQueryParams, ) -from openbb_core.provider.utils.descriptions import DATA_DESCRIPTIONS -from openbb_core.provider.utils.helpers import get_querystring -from openbb_fmp.utils.helpers import get_data_many -from pydantic import Field, NonNegativeInt +from openbb_core.provider.utils.descriptions import ( + DATA_DESCRIPTIONS, + QUERY_DESCRIPTIONS, +) +from openbb_core.provider.utils.helpers import ( + ClientResponse, + amake_requests, + get_querystring, +) +from openbb_fmp.utils.helpers import get_interval +from pydantic import Field + +_warn = warnings.warn class FMPCryptoHistoricalQueryParams(CryptoHistoricalQueryParams): - # noqa: E501 - """FMP Crypto Historical Price Query. + """ + FMP Crypto Historical Price Query. Source: https://site.financialmodelingprep.com/developer/docs/cryptocurrency-historical-data-api/#Historical-Daily-Prices @@ -26,11 +38,8 @@ class FMPCryptoHistoricalQueryParams(CryptoHistoricalQueryParams): __alias_dict__ = {"start_date": "from", "end_date": "to"} __json_schema_extra__ = {"symbol": ["multiple_items_allowed"]} - timeseries: Optional[NonNegativeInt] = Field( - default=None, description="Number of days to look back." - ) - interval: Literal["1min", "5min", "15min", "30min", "1hour", "4hour", "1day"] = ( - Field(default="1day", description="Data granularity.") + interval: Literal["1m", "5m", "15m", "30m", "1h", "4h", "1d"] = Field( + default="1d", description=QUERY_DESCRIPTIONS.get("interval", "") ) @@ -40,23 +49,15 @@ class FMPCryptoHistoricalData(CryptoHistoricalData): adj_close: Optional[float] = Field( default=None, description=DATA_DESCRIPTIONS.get("adj_close", "") ) - unadjusted_volume: Optional[float] = Field( - default=None, description="Unadjusted volume of the symbol." - ) change: Optional[float] = Field( default=None, - description="Change in the price of the symbol from the previous day.", + description="Change in the price from the previous close.", ) change_percent: Optional[float] = Field( - default=None, description="Change % in the price of the symbol." - ) - - label: Optional[str] = Field( - default=None, description="Human readable format of the date." - ) - change_over_time: Optional[float] = Field( default=None, - description="Change % in the price of the symbol over a period of time.", + description="Change in the price from the previous close, as a normalized percent.", + alias="changeOverTime", + json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100}, ) @@ -91,23 +92,56 @@ class FMPCryptoHistoricalFetcher( """Return the raw data from the FMP endpoint.""" api_key = credentials.get("fmp_api_key") if credentials else "" + interval = get_interval(query.interval) + base_url = "https://financialmodelingprep.com/api/v3" query_str = get_querystring(query.model_dump(), ["symbol"]) - url_params = f"{query.symbol}?{query_str}&apikey={api_key}" - url = f"{base_url}/historical-chart/{query.interval}/{url_params}" + def get_url_params(symbol: str) -> str: + url_params = f"{symbol}?{query_str}&apikey={api_key}" + url = f"{base_url}/historical-chart/{interval}/{url_params}" + if interval == "1day": + url = f"{base_url}/historical-price-full/crypto/{url_params}" + return url - if query.interval == "1day": - url = f"{base_url}/historical-price-full/crypto/{url_params}" + # if there are more than 20 symbols, we need to increase the timeout + if len(query.symbol.split(",")) > 20: + kwargs.update({"preferences": {"request_timeout": 30}}) - return await get_data_many(url, "historical", **kwargs) + async def callback(response: ClientResponse, _: Any) -> List[Dict]: + data = await response.json() + symbol = response.url.parts[-1] + results = [] + if not data: + _warn(f"No data found the the symbol: {symbol}") + return results + + if isinstance(data, dict): + results = data.get("historical", []) + + if "," in query.symbol: + for d in results: + d["symbol"] = symbol + return results + + urls = [get_url_params(symbol) for symbol in query.symbol.split(",")] + + return await amake_requests(urls, callback, **kwargs) @staticmethod def transform_data( query: FMPCryptoHistoricalQueryParams, data: List[Dict], **kwargs: Any ) -> List[FMPCryptoHistoricalData]: """Return the transformed data.""" - return [ - FMPCryptoHistoricalData.model_validate(d) - for d in sorted(data, key=lambda x: x["date"], reverse=False) - ] + + # Get rid of duplicate fields. + to_pop = ["label", "changePercent", "unadjustedVolume"] + results: List[FMPCryptoHistoricalData] = [] + + for d in sorted(data, key=lambda x: x["date"], reverse=False): + _ = [d.pop(pop) for pop in to_pop if pop in d] + if d.get("unadjusted_volume") == d.get("volume"): + _ = d.pop("unadjusted_volume") + results.append(FMPCryptoHistoricalData.model_validate(d)) + + return results diff --git a/openbb_platform/providers/fmp/openbb_fmp/models/currency_historical.py b/openbb_platform/providers/fmp/openbb_fmp/models/currency_historical.py index 11b4aa780ed..3c9a9668f82 100644 --- a/openbb_platform/providers/fmp/openbb_fmp/models/currency_historical.py +++ b/openbb_platform/providers/fmp/openbb_fmp/models/currency_historical.py @@ -1,5 +1,8 @@ """FMP Currency Historical Price Model.""" +# pylint: disable=unused-argument + +import warnings from datetime import datetime from typing import Any, Dict, List, Literal, Optional @@ -9,10 +12,20 @@ from openbb_core.provider.standard_models.currency_historical import ( CurrencyHistoricalData, CurrencyHistoricalQueryParams, ) -from openbb_core.provider.utils.descriptions import DATA_DESCRIPTIONS -from openbb_fmp.utils.helpers import get_data_many, get_querystring +from openbb_core.provider.utils.descriptions import ( + DATA_DESCRIPTIONS, + QUERY_DESCRIPTIONS, +) +from openbb_core.provider.utils.helpers import ( + ClientResponse, + amake_requests, + get_querystring, +) +from openbb_fmp.utils.helpers import get_interval from pydantic import Field +_warn = warnings.warn + class FMPCurrencyHistoricalQueryParams(CurrencyHistoricalQueryParams): """FMP Currency Historical Price Query. @@ -21,9 +34,10 @@ class FMPCurrencyHistoricalQueryParams(CurrencyHistoricalQueryParams): """ __alias_dict__ = {"start_date": "from", "end_date": "to"} + __json_schema_extra__ = {"symbol": ["multiple_items_allowed"]} - interval: Literal["1min", "5min", "15min", "30min", "1hour", "4hour", "1day"] = ( - Field(default="1day", description="Data granularity.") + interval: Literal["1m", "5m", "15m", "30m", "1h", "4h", "1d"] = Field( + default="1d", description=QUERY_DESCRIPTIONS.get("interval", "") ) @@ -33,22 +47,15 @@ class FMPCurrencyHistoricalData(CurrencyHistoricalData): adj_close: Optional[float] = Field( default=None, description=DATA_DESCRIPTIONS.get("adj_close", "") ) - unadjusted_volume: Optional[float] = Field( - default=None, description="Unadjusted volume of the symbol." - ) change: Optional[float] = Field( default=None, - description="Change in the price of the symbol from the previous day.", + description="Change in the price from the previous close.", ) change_percent: Optional[float] = Field( - default=None, description="Change % in the price of the symbol." - ) - label: Optional[str] = Field( - default=None, description="Human readable format of the date." - ) - change_over_time: Optional[float] = Field( default=None, - description="Change % in the price of the symbol over a period of time.", + description="Change in the price from the previous close, as a normalized percent.", + alias="changeOverTime", + json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100}, ) @@ -83,31 +90,56 @@ class FMPCurrencyHistoricalFetcher( """Return the raw data from the FMP endpoint.""" api_key = credentials.get("fmp_api_key") if credentials else "" + interval = get_interval(query.interval) + base_url = "https://financialmodelingprep.com/api/v3" query_str = get_querystring(query.model_dump(), ["symbol"]) - url_params = f"{query.symbol}?{query_str}&apikey={api_key}" - url = f"{base_url}/historical-chart/{query.interval}/{url_params}" + def get_url_params(symbol: str) -> str: + url_params = f"{symbol}?{query_str}&apikey={api_key}" + url = f"{base_url}/historical-chart/{interval}/{url_params}" + if interval == "1day": + url = f"{base_url}/historical-price-full/forex/{url_params}" + return url - if query.interval == "1day": - url = f"{base_url}/historical-price-full/forex/{url_params}" + # if there are more than 20 symbols, we need to increase the timeout + if len(query.symbol.split(",")) > 20: + kwargs.update({"preferences": {"request_timeout": 30}}) - return await get_data_many(url, "historical", **kwargs) + async def callback(response: ClientResponse, _: Any) -> List[Dict]: + data = await response.json() + symbol = response.url.parts[-1] + results = [] + if not data: + _warn(f"No data found the the symbol: {symbol}") + return results + + if isinstance(data, dict): + results = data.get("historical", []) + + if "," in query.symbol: + for d in results: + d["symbol"] = symbol + return results + + urls = [get_url_params(symbol) for symbol in query.symbol.split(",")] + + return await amake_requests(urls, callback, **kwargs) @staticmethod def transform_data( query: FMPCurrencyHistoricalQueryParams, data: List[Dict], **kwargs: Any ) -> List[FMPCurrencyHistoricalData]: """Return the transformed data.""" - # pylint: disable=unused-argument - data = [ - d - for d in data - if d.get("vwap") != 0 - and d.get("change") != 0 - and d.get("changeOverTime") != 0 - ] - return [ - FMPCurrencyHistoricalData.model_validate(d) - for d in sorted(data, key=lambda x: x["date"], reverse=False) - ] + + # Get rid of duplicate fields. + to_pop = ["label", "changePercent", "unadjustedVolume"] + results: List[FMPCurrencyHistoricalData] = [] + + for d in sorted(data, key=lambda x: x["date"], reverse=False): + _ = [d.pop(pop) for pop in to_pop if pop in d] + if d.get("unadjusted_volume") == d.get("volume"): + _ = d.pop("unadjusted_volume") + results.append(FMPCurrencyHistoricalData.model_validate(d)) + + return results diff --git a/openbb_platform/providers/fmp/openbb_fmp/models/equity_historical.py b/openbb_platform/providers/fmp/openbb_fmp/models/equity_historical.py index 86cb7635e83..79651c71c2f 100644 --- a/openbb_platform/providers/fmp/openbb_fmp/models/equity_historical.py +++ b/openbb_platform/providers/fmp/openbb_fmp/models/equity_historical.py @@ -1,5 +1,8 @@ """FMP Equity Historical Price Model.""" +# pylint: disable=unused-argument + +import warnings from datetime import datetime from typing import Any, Dict, List, Literal, Optional @@ -9,14 +12,19 @@ from openbb_core.provider.standard_models.equity_historical import ( EquityHistoricalData, EquityHistoricalQueryParams, ) -from openbb_core.provider.utils.descriptions import DATA_DESCRIPTIONS +from openbb_core.provider.utils.descriptions import ( + DATA_DESCRIPTIONS, + QUERY_DESCRIPTIONS, +) from openbb_core.provider.utils.helpers import ( ClientResponse, amake_requests, get_querystring, ) from openbb_fmp.utils.helpers import get_interval -from pydantic import Field, NonNegativeInt +from pydantic import Field + +_warn = warnings.warn class FMPEquityHistoricalQueryParams(EquityHistoricalQueryParams): @@ -28,22 +36,14 @@ class FMPEquityHistoricalQueryParams(EquityHistoricalQueryParams): __alias_dict__ = {"start_date": "from", "end_date": "to"} __json_schema_extra__ = {"symbol": ["multiple_items_allowed"]} - limit: Optional[NonNegativeInt] = Field( - default=None, - description="Number of days to look back (Only for interval 1d).", - alias="timeseries", - ) interval: Literal["1m", "5m", "15m", "30m", "1h", "4h", "1d"] = Field( - default="1d", description="Time granularity to fetch data for." + default="1d", description=QUERY_DESCRIPTIONS.get("interval", "") ) class FMPEquityHistoricalData(EquityHistoricalData): """FMP Equity Historical Price Data.""" - label: Optional[str] = Field( - default=None, description="Human readable format of the date." - ) adj_close: Optional[float] = Field( default=None, description=DATA_DESCRIPTIONS.get("adj_close", "") ) @@ -52,14 +52,13 @@ class FMPEquityHistoricalData(EquityHistoricalData): ) change: Optional[float] = Field( default=None, - description="Change in the price of the symbol from the previous day.", + description="Change in the price from the previous close.", ) change_percent: Optional[float] = Field( - default=None, description="Change % in the price of the symbol." - ) - change_over_time: Optional[float] = Field( default=None, - description="Change % in the price of the symbol over a period of time.", + description="Change in the price from the previous close, as a normalized percent.", + alias="changeOverTime", + json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100}, ) @@ -111,17 +110,20 @@ class FMPEquityHistoricalFetcher( kwargs.update({"preferences": {"request_timeout": 30}}) async def callback(response: ClientResponse, _: Any) -> List[Dict]: - data: dict = await response.json() + data = await response.json() symbol = response.url.parts[-1] + results = [] + if not data: + _warn(f"No data found the the symbol: {symbol}") + return results if isinstance(data, dict): - data = data.get("historical", []) + results = data.get("historical", []) if "," in query.symbol: - for d in data: + for d in results: d["symbol"] = symbol - - return data + return results urls = [get_url_params(symbol) for symbol in query.symbol.split(",")] @@ -132,7 +134,15 @@ class FMPEquityHistoricalFetcher( query: FMPEquityHistoricalQueryParams, data: List[Dict], **kwargs: Any ) -> List[FMPEquityHistoricalData]: """Return the transformed data.""" - return [ - FMPEquityHistoricalData.model_validate(d) - for d in sorted(data, key=lambda x: x["date"], reverse=False) - ] + + # Get rid of duplicate fields. + to_pop = ["label", "changePercent"] + results: List[FMPEquityHistoricalData] = [] + + for d in sorted(data, key=lambda x: x["date"], reverse=False): + _ = [d.pop(pop) for pop in to_pop if pop in d] + if d.get("unadjusted_volume") == d.get("volume"): + _ = d.pop("unadjusted_volume") + results.append(FMPEquityHistoricalData.model_validate(d)) + + return results diff --git a/openbb_platform/providers/fmp/openbb_fmp/models/etf_search.py b/openbb_platform/providers/fmp/openbb_fmp/models/etf_search.py index 38ba113ff0e..72345bd9977 100644 --- a/openbb_platform/providers/fmp/openbb_fmp/models/etf_search.py +++ b/openbb_platform/providers/fmp/openbb_fmp/models/etf_search.py @@ -128,7 +128,7 @@ class FMPEtfSearchFetcher( | etfs["industry"].str.contains(query.query, case=False) | etfs["country"].str.contains(query.query, case=False) ] - for col in etfs: - if etfs[col].dtype in ("int", "float"): - etfs[col] = etfs[col].fillna(0) + etfs = ( + etfs.fillna("N/A").replace("N/A", None).replace("", None).replace(0, None) + ) return [FMPEtfSearchData.model_validate(d) for d in etfs.to_dict("records")] diff --git a/openbb_platform/providers/fmp/openbb_fmp/models/index_historical.py b/openbb_platform/providers/fmp/openbb_fmp/models/index_historical.py index 087f6fa15f7..13d5582a3f9 100644 --- a/openbb_platform/providers/fmp/openbb_fmp/models/index_historical.py +++ b/openbb_platform/providers/fmp/openbb_fmp/models/index_historical.py @@ -1,5 +1,8 @@ """FMP Index Historical Model.""" +# pylint: disable=unused-argument + +import warnings from datetime import datetime from typing import Any, Dict, List, Literal, Optional @@ -9,10 +12,20 @@ from openbb_core.provider.standard_models.index_historical import ( IndexHistoricalData, IndexHistoricalQueryParams, ) -from openbb_core.provider.utils.descriptions import DATA_DESCRIPTIONS -from openbb_core.provider.utils.helpers import get_querystring -from openbb_fmp.utils.helpers import get_data_many -from pydantic import Field, NonNegativeInt, field_validator +from openbb_core.provider.utils.descriptions import ( + DATA_DESCRIPTIONS, + QUERY_DESCRIPTIONS, +) +from openbb_core.provider.utils.errors import EmptyDataError +from openbb_core.provider.utils.helpers import ( + ClientResponse, + amake_requests, + get_querystring, +) +from openbb_fmp.utils.helpers import get_interval +from pydantic import Field + +_warn = warnings.warn class FMPIndexHistoricalQueryParams(IndexHistoricalQueryParams): @@ -22,46 +35,28 @@ class FMPIndexHistoricalQueryParams(IndexHistoricalQueryParams): """ __alias_dict__ = {"start_date": "from", "end_date": "to"} + __json_schema_extra__ = {"symbol": ["multiple_items_allowed"]} - timeseries: Optional[NonNegativeInt] = Field( - default=None, description="Number of days to look back." + interval: Literal["1m", "5m", "15m", "30m", "1h", "4h", "1d"] = Field( + default="1d", description=QUERY_DESCRIPTIONS.get("interval", "") ) - interval: Literal["1min", "5min", "15min", "30min", "1hour", "4hour", "1day"] = ( - Field(default="1day", description="Data granularity.") - ) - - @field_validator("interval", mode="before", check_fields=True) - @classmethod - def map_interval(cls, v): - """Map the interval from standard to the FMP format.""" - return "1day" if v == "1d" else v class FMPIndexHistoricalData(IndexHistoricalData): """FMP Index Historical Data.""" - adj_close: Optional[float] = Field( - description=DATA_DESCRIPTIONS.get("adj_close", ""), - default=None, - ) - unadjusted_volume: Optional[float] = Field( - description="Unadjusted volume of the symbol.", - default=None, + vwap: Optional[float] = Field( + default=None, description=DATA_DESCRIPTIONS.get("vwap", "") ) change: Optional[float] = Field( - description="Change in the price of the symbol from the previous day.", default=None, + description="Change in the price from the previous close.", ) change_percent: Optional[float] = Field( - description="Change % in the price of the symbol.", - default=None, - ) - label: Optional[str] = Field( - description="Human readable format of the date.", default=None - ) - change_over_time: Optional[float] = Field( - description="Change % in the price of the symbol over a period of time.", default=None, + description="Change in the price from the previous close, as a normalized percent.", + alias="changeOverTime", + json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100}, ) @@ -96,15 +91,43 @@ class FMPIndexHistoricalFetcher( """Return the raw data from the FMP endpoint.""" api_key = credentials.get("fmp_api_key") if credentials else "" + interval = get_interval(query.interval) + base_url = "https://financialmodelingprep.com/api/v3" - query_str = get_querystring(query.model_dump(), ["symbol", "interval", "sort"]) + query_str = get_querystring(query.model_dump(), ["symbol"]) - url_params = f"{query.symbol}?{query_str}&apikey={api_key}" - url = f"{base_url}/historical-chart/{query.interval}/{url_params}" + def get_url_params(symbol: str) -> str: + url_params = f"{symbol}?{query_str}&apikey={api_key}" + url = f"{base_url}/historical-chart/{interval}/{url_params}" + if interval == "1day": + url = f"{base_url}/historical-price-full/{url_params}" + return url - return await get_data_many(url, "historical", **kwargs) + # if there are more than 20 symbols, we need to increase the timeout + if len(query.symbol.split(",")) > 20: + kwargs.update({"preferences": {"request_timeout": 30}}) + + async def callback(response: ClientResponse, _: Any) -> List[Dict]: + data = await response.json() + symbol = response.url.parts[-1] + results = [] + if not data: + _warn(f"No data found the the symbol: {symbol}") + return results + + if isinstance(data, dict): + results = data.get("historical", []) + if isinstance(data, list): + results = data + + if "," in query.symbol: + for d in results: + d["symbol"] = symbol + return results + + urls = [get_url_params(symbol) for symbol in query.symbol.split(",")] + return await amake_requests(urls, callback, **kwargs) - # pylint: disable=unused-argument @staticmethod def transform_data( query: FMPIndexHistoricalQueryParams, @@ -112,7 +135,17 @@ class FMPIndexHistoricalFetcher( **kwargs: Any, ) -> List[FMPIndexHistoricalData]: """Return the transformed data.""" - return [ - FMPIndexHistoricalData.model_validate(d) - for d in sorted(data, key=lambda x: x["date"], reverse=False) - ] + if not data: + raise EmptyDataError() + + # Get rid of duplicate fields. + to_pop = ["label", "changePercent", "unadjustedVolume", "adjClose"] + results: List[FMPIndexHistoricalData] = [] + + for d in sorted(data, key=lambda x: x["date"], reverse=False): + _ = [d.pop(pop) for pop in to_pop if pop in d] + if d.get("volume") == 0: + _ = d.pop("volume") + results.append(FMPIndexHistoricalData.model_validate(d)) + + return results diff --git a/openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_crypto_historical_fetcher.yaml b/openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_crypto_historical_fetcher.yaml index d69857c913e..7d0757a1590 100644 --- a/openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_crypto_historical_fetcher.yaml +++ b/openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_crypto_historical_fetcher.yaml @@ -3,38 +3,38 @@ interactions: body: null headers: Accept: - - '*/*' + - application/json Accept-Encoding: - - gzip, deflate, br + - gzip, deflate Connection: - keep-alive method: GET - uri: https://financialmodelingprep.com/api/v3/historical-price-full/crypto/BTCUSD?apikey=MOCK_API_KEY&from=2023-01-01&interval=1day&to=2023-01-10 + uri: https://financialmodelingprep.com/api/v3/historical-price-full/crypto/BTCUSD?apikey=MOCK_API_KEY&from=2023-01-01&interval=1d&to=2023-01-10 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 + APPS, publicauthkey, privateauthkey Access-Control-Allow-Methods: - GET, POST, OPTIONS Access-Control-Allow-Origin: @@ -48,9 +48,9 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Mon, 16 Oct 2023 12:21:47 GMT - ETag: - - W/"eec-rA4PG5qrZArsSp6t/v+2L1hjzQk" + - Thu, 29 Feb 2024 04:42:50 GMT + Etag: + - W/"ee3-iGBRI0WlQUT/ED3Q3GcS73lQbMw" Server: - nginx/1.18.0 (Ubuntu) Transfer-Encoding: diff --git a/openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_currency_historical_fetcher.yaml b/openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_currency_historical_fetcher.yaml index df015079b00..756dd1d3460 100644 --- a/openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_currency_historical_fetcher.yaml +++ b/openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_currency_historical_fetcher.yaml @@ -3,13 +3,13 @@ interactions: body: null headers: Accept: - - '*/*' + - application/json Accept-Encoding: - - gzip, deflate, br + - gzip, deflate Connection: - keep-alive method: GET - uri: https://financialmodelingprep.com/api/v3/historical-price-full/forex/EURUSD?apikey=MOCK_API_KEY&from=2023-01-01&interval=1day&to=2023-01-10 + uri: https://financialmodelingprep.com/api/v3/historical-price-full/forex/EURUSD?apikey=MOCK_API_KEY&from=2023-01-01&interval=1d&to=2023-01-10 response: body: string: !!binary | @@ -30,7 +30,7 @@ interactions: - 'true' Access-Control-Allow-Headers: - X-Requested-With, content-type, auth-token, Authorization, stripe-signature, - APPS + APPS, publicauthkey, privateauthkey Access-Control-Allow-Methods: - GET, POST, OPTIONS Access-Control-Allow-Origin: @@ -44,8 +44,8 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Mon, 16 Oct 2023 12:21:48 GMT - ETag: + - Thu, 29 Feb 2024 04:42:50 GMT + Etag: - W/"cd0-Rv/ywzhqPUdb7KJ/ZDpUXIC8K1A" Server: - nginx/1.18.0 (Ubuntu) diff --git a/openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_index_historical_fetcher.yaml b/openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_index_historical_fetcher.yaml index e174458b9f3..92f691e9e0a 100644 --- a/openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_index_historical_fetcher.yaml +++ b/openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_index_historical_fetcher.yaml @@ -9,22 +9,28 @@ interactions: Connection: - keep-alive method: GET - uri: https://financialmodelingprep.com/api/v3/historical-chart/1day/%5EDJI?apikey=MOCK_API_KEY&from=2023-01-01&limit=10000&to=2023-01-10 + uri: https://financialmodelingprep.com/api/v3/historical-price-full/%5EDJI?apikey=MOCK_API_KEY&from=2023-01-01&interval=1d&to=2023-01-10 response: body: string: !!binary | - H4sIAAAAAAAAA43SzU6DQBAH8HufgnBuJ/O9O30V48FoY02qmPh1ML67CyWFgtQS4MB/N/ubYW5W - VfVdnqqqH+7ed/W2qhlZNkgbwgpx2931+riked29lCUiRg7K4Tn3yaH56gJlgoyYMvXB/ulx3yWJ - HUwCXfrk/tC87Y4RKhCSnaLP5vDx3GbsmR3LVb7/rJetGMtWd4X2XLapNSdwb8+dWkOsgEKSzaxG - ZZNmlTy1Cqes11h92YpmIOP29VaOSOdFDH0lPK9isLqUaFzGYHVMV1lt2UpBkCinSVs5E0P3nlGn - O05SjiJtq+a5VFLwNVK9IPXyO/WPCUAR0IzqMaUqxvlIDl1lD0geJjSzpuia+q9VLlg1Q47RfJ3a - agiWUEimVilzbDQCDVYSh3ZCQmdWs9L03rq6/QXH+CSaCAQAAA== + H4sIAAAAAAAAA42VTW/bMAyG7/0VRs6JQJH63HW7rJftMOwybICbGE2GNCny0aIo+t9HKYtkx4od + H3zwS8kSH77k+11VTfZvTw/b9eRTNfnz5f7rZBq+LVf7w3a3mtfh+y/+UlXv8c3aoj40IRoBaQZy + JiGuidr2udmwRqSlEQq9cS5py9XjMmoWjdDkwVDS1tvXKCmUwgFYJ5M0X2/3zWkdKCFB6ta6evH3 + 85D+sl0fn4KKxqEBfpJ03PDi4/7QLH5eD5ov681jkKSzwljZus5J+t7s5s3mwBEgtPZe5V+/1s/x + WEZaofK6df3QxGzf15tjvXurJEwrpMnFxt9emt2PVTwWCIC4d4z4mA7jAF/AYYwSIeOo+zg8aU6b + J5u1hCPc2oSUFnBovpdRTlG+WwdHQU84CK1TYzj6QQnHTCojLFeLv8pjBkKRznrmwUtb9dXjAX6E + xywACXvfxsMUeDBPQd06z/aQcJn0/zzQe3uJMfMwxOu6HDs8CnrmYcCO8+gFJR7ahvs4fR2HZFx9 + FopZIA6wMOPekPZGY+gCCOn5YGzugi/60hmDkyjiu4ABPac5gMUyhpKeMZD1OIqhF5RtgUay57hA + hmxhnUPbY4HeOgGZUZ+FvsUXcfPbeKgSD8PNSJUblQJ/2d/PjQqIuMeCMq0CTIWPxgtrvKZsto4x + CnomYn0s+WEivaA8N3gmGXReXkjtuUFSt+ZD8gYSz41W8fV4qHFvQNz7NhxUwqGccL7TwxMO4uGg + ZSdtySCap6Hln2dSGYckI0KTa83KDo6CnnHwHKRRHL2g1txAodGSupA6/gCy1svW2RMSiUq4oXZF + t1jkvP8JC79/3338A8bc8seKCQAA headers: Access-Control-Allow-Credentials: - 'true' Access-Control-Allow-Headers: - X-Requested-With, content-type, auth-token, Authorization, stripe-signature, - APPS + APPS, publicauthkey, privateauthkey Access-Control-Allow-Methods: - GET, POST, OPTIONS Access-Control-Allow-Origin: @@ -38,9 +44,9 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Mon, 05 Feb 2024 12:24:48 GMT + - Thu, 29 Feb 2024 04:42:50 GMT Etag: - - W/"408-glTYZ6Uxgu2pCgKN72yd6UNBr5A" + - W/"98a-GaBjuPAGbArTPT5nkIcCt0/rPEw" Server: - nginx/1.18.0 (Ubuntu) Transfer-Encoding: diff --git a/openbb_platform/providers/intrinio/openbb_intrinio/__init__.py b/openbb_platform/providers/intrinio/openbb_intrinio/__init__.py index 2e474d74619..33f4fcca881 100644 --- a/openbb_platform/providers/intrinio/openbb_intrinio/__init__.py +++ b/openbb_platform/providers/intrinio/openbb_intrinio/__init__.py @@ -28,7 +28,6 @@ from openbb_intrinio.models.insider_trading import IntrinioInsiderTradingFetcher # ) from openbb_intrinio.models.key_metrics import IntrinioKeyMetricsFetcher from openbb_intrinio.models.latest_attributes import IntrinioLatestAttributesFetcher -from openbb_intrinio.models.market_indices import IntrinioMarketIndicesFetcher from openbb_intrinio.models.options_chains import IntrinioOptionsChainsFetcher from openbb_intrinio.models.options_unusual import IntrinioOptionsUnusualFetcher from openbb_intrinio.models.reported_financials import IntrinioReportedFinancialsFetcher @@ -55,6 +54,7 @@ intrinio_provider = Provider( "EquityInfo": IntrinioEquityInfoFetcher, "EquityQuote": IntrinioEquityQuoteFetcher, "EquitySearch": IntrinioEquitySearchFetcher, + "EtfHistorical": IntrinioEquityHistoricalFetcher, "FinancialRatios": IntrinioFinancialRatiosFetcher, "FredSeries": IntrinioFredSeriesFetcher, "HistoricalAttributes": IntrinioHistoricalAttributesFetcher, @@ -65,7 +65,7 @@ intrinio_provider = Provider( # "InstitutionalOwnership": IntrinioInstitutionalOwnershipFetcher, # Disabled due to unreliable Intrinio endpoint "KeyMetrics": IntrinioKeyMetricsFetcher, "LatestAttributes": IntrinioLatestAttributesFetcher, - "MarketIndices": IntrinioMarketIndicesFetcher, + "MarketIndices": IntrinioIndexHistoricalFetcher, "OptionsChains": IntrinioOptionsChainsFetcher, "OptionsUnusual": IntrinioOptionsUnusualFetcher, "ReportedFinancials": IntrinioReportedFinancialsFetcher, diff --git a/openbb_platform/providers/intrinio/openbb_intrinio/models/equity_historical.py b/openbb_platform/providers/intrinio/openbb_intrinio/models/equity_historical.py index d6be9d79f6e..ff5f0893258 100644 --- a/openbb_platform/providers/intrinio/openbb_intrinio/models/equity_historical.py +++ b/openbb_platform/providers/intrinio/openbb_intrinio/models/equity_historical.py @@ -11,7 +11,10 @@ from openbb_core.provider.standard_models.equity_historical import ( EquityHistoricalData, EquityHistoricalQueryParams, ) -from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS +from openbb_core.provider.utils.descriptions import ( + DATA_DESCRIPTIONS, + QUERY_DESCRIPTIONS, +) from openbb_core.provider.utils.helpers import ( ClientResponse, ClientSession, @@ -41,8 +44,8 @@ class IntrinioEquityHistoricalQueryParams(EquityHistoricalQueryParams): default=None, description="Return intervals stopping at the specified time on the `end_date` formatted as 'HH:MM:SS'.", ) - timezone: str = Field( - default="UTC", + timezone: Optional[str] = Field( + default="America/New_York", description="Timezone of the data, in the IANA format (Continent/City).", ) source: Literal["realtime", "delayed", "nasdaq_basic"] = Field( @@ -81,6 +84,61 @@ class IntrinioEquityHistoricalData(EquityHistoricalData): __alias_dict__ = {"date": "time"} + average: Optional[float] = Field( + default=None, + description="Average trade price of an individual equity during the interval.", + ) + change: Optional[float] = Field( + default=None, + description="Change in the price of the symbol from the previous day.", + ) + change_percent: Optional[float] = Field( + default=None, + description="Percent change in the price of the symbol from the previous day.", + alias="percent_change", + json_schema_extra={"unit_measurement": "percent", "frontend_multiply": 100}, + ) + adj_open: Optional[float] = Field( + default=None, + description="The adjusted open price.", + ) + adj_high: Optional[float] = Field( + default=None, + description="The adjusted high price.", + ) + adj_low: Optional[float] = Field( + default=None, + description="The adjusted low price.", + ) + adj_close: Optional[float] = Field( + default=None, + description=DATA_DESCRIPTIONS.get("adj_close", ""), + ) + adj_volume: Optional[float] = Field( + default=None, + description="The adjusted volume.", + ) + fifty_two_week_high: Optional[float] = Field( + default=None, + description="52 week high price for the symbol.", + ) + fifty_two_week_low: Optional[float] = Field( + default=None, + description="52 week low price for the symbol.", + ) + factor: Optional[float] = Field( + default=None, + description="factor by which to multiply equity prices before this " + "date, in order to calculate historically-adjusted equity prices.", + ) + split_ratio: Optional[float] = Field( + default=None, + description="Ratio of the equity split, if a split occurred.", + ) + dividend: Optional[float] = Field( + default=None, + description="Dividend amount, if a dividend was paid.", + ) close_time: Optional[datetime] = Field( default=None, description="The timestamp that represents the end of the interval span.", @@ -90,14 +148,6 @@ class IntrinioEquityHistoricalData(EquityHistoricalData): description="The data time frequency.", alias="frequency", ) - average: Optional[float] = Field( - default=None, - description="Average trade price of an individual equity during the interval.", - ) - change: Optional[float] = Field( - default=None, - description="Change in the price of the symbol from the previous day.", - ) intra_period: Optional[bool] = Field( default=None, description="If true, the equity price represents an unfinished period " @@ -106,51 +156,6 @@ class IntrinioEquityHistoricalData(EquityHistoricalData): "for the period", alias="intraperiod", ) - adj_open: Optional[float] = Field( - default=None, - description="Adjusted open price during the period.", - ) - adj_high: Optional[float] = Field( - default=None, - description="Adjusted high price during the period.", - ) - adj_low: Optional[float] = Field( - default=None, - description="Adjusted low price during the period.", - ) - adj_close: Optional[float] = Field( - default=None, - description="Adjusted closing price during the period.", - ) - adj_volume: Optional[float] = Field( - default=None, - description="Adjusted volume during the period.", - ) - factor: Optional[float] = Field( - default=None, - description="factor by which to multiply equity prices before this " - "date, in order to calculate historically-adjusted equity prices.", - ) - split_ratio: Optional[float] = Field( - default=None, - description="Ratio of the equity split, if a equity split occurred.", - ) - dividend: Optional[float] = Field( - default=None, - description="Dividend amount, if a dividend was paid.", - ) - percent_change: Optional[float] = Field( - default=None, - description="Percent change in the price of the symbol from the previous day.", - ) - fifty_two_week_high: Optional[float] = Field( - default=None, - description="52 week high price for the symbol.", - ) - fifty_two_week_low: Optional[float] = Field( - default=None, - description="52 week low price for the symbol.", - ) class IntrinioEquityHistoricalFetcher( @@ -230,10 +235,12 @@ class IntrinioEquityHistoricalFetcher( **kwargs: Any, ) -> List[IntrinioEquityHistoricalData]: """Return the transformed data.""" - try: - sorted_data = sorted( - data, key=lambda x: x.get("date") or x.get("time"), reverse=False - ) - except Exception: - sorted_data = data - return [IntrinioEquityHistoricalData.model_validate(d) for d in sorted_data] + date_col = ( + "time" + if query.interval in ["1m", "5m", "10m", "15m", "30m", "60m", "1h"] + else "date" + ) + return [ + IntrinioEquityHistoricalData.model_validate(d) + for d in sorted(data, key=lambda x: x[date_col], reverse=False) + ] diff --git a/openbb_platform/providers/intrinio/openbb_intrinio/models/index_historical.py b/openbb_platform/providers/intrinio/openbb_intrinio/models/index_historical.py index 16a49d890c0..fc32a1aee41 100644 --- a/openbb_platform/providers/intrinio/openbb_intrinio/models/index_historical.py +++ b/openbb_platform/providers/intrinio/openbb_intrinio/models/index_historical.py @@ -9,8 +9,10 @@ from openbb_core.provider.standard_models.index_historical import ( IndexHistoricalData, IndexHistoricalQueryParams, ) +from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS from openbb_core.provider.utils.errors import EmptyDataError from openbb_core.provider.utils.helpers import amake_requests, get_querystring +from pydantic import Field class IntrinioIndexHistoricalQueryParams(IndexHistoricalQueryParams): @@ -23,6 +25,11 @@ class IntrinioIndexHistoricalQueryParams(IndexHistoricalQueryParams): __alias_dict__ = {"limit": "page_size", "sort": "sort_order"} __json_schema_extra__ = {"symbol": ["multiple_items_allowed"]} + limit: Optional[int] = Field( + default=10000, + description=QUERY_DESCRIPTIONS.get("limit", ""), + ) + class IntrinioIndexHistoricalData(IndexHistoricalData): """Intrinio Index Historical Data.""" diff --git a/openbb_platform/providers/intrinio/tests/record/http/test_intrinio_fetchers/test_intrinio_equity_historical_fetcher.yaml b/openbb_platform/providers/intrinio/tests/record/http/test_intrinio_fetchers/test_intrinio_equity_historical_fetcher.yaml index 91fa29c635b..f70ad2d99d6 100644 --- a/openbb_platform/providers/intrinio/tests/record/http/test_intrinio_fetchers/test_intrinio_equity_historical_fetcher.yaml +++ b/openbb_platform/providers/intrinio/tests/record/http/test_intrinio_fetchers/test_intrinio_equity_historical_fetcher.yaml @@ -3,30 +3,30 @@ interactions: body: null headers: Accept: - - '*/*' + - application/json Accept-Encoding: - - gzip, deflate, br + - gzip, deflate Connection: - keep-alive method: GET - uri: https://api-v2.intrinio.com/securities/AAPL/prices?api_key=MOCK_API_KEY&end_date=2023-01-10&end_time=23%3A59%3A59&frequency=daily&source=realtime&start_date=2023-01-01&start_time=00%3A00%3A00&timezone=UTC + uri: https://api-v2.intrinio.com/securities/AAPL/prices?api_key=MOCK_API_KEY&end_date=2023-01-10&end_time=23%3A59%3A59&frequency=daily&source=realtime&start_date=2023-01-01&start_time=00%3A00%3A00&timezone=America%2FNew_York response: body: string: !!binary | - H4sIADErLWUAA6yW207cMBCGX6Xy9a5lx8fsHagVqtTSA6ICVVUUZb27hpCkThZYEO/OeI9xslwQ - cTnj8Xj8+c9MnlHdlNltUjmbmRpN/j6jadoYNEERidiY0DElaIRs0bi0Ms6WUzSZpXltRmjmzP+l - KbIVBE9Tm68grqxMgSaUERzJEVrY+cJbdG3l5QMYkcY0GqEsL2uziVRshO7LfHkHtmQ6llQITEYo - nd4k23xRjBXdeHY5yd6zzauw0BtHKzdVG9ex/LM0a0oHcd6oq9w2iUsbW249U3tvp6aA+xJvZou0 - mBtv+GMARWaKJjl4CeECctpZs0qahzJ5MOZ2V6xSWEe9xW3dDEv+MuphJ/Eg7FwdsDPM6R57jHUc - YKfigF0RFRNNWR973MEeYc0D7DFmPMQOLhlSb6cfTJ29QZ1+KHX5fuqRxIQeqIP04z11HlD3ZKID - da2U4Ir2xC7Wr9ii7uUfUueYyR510hF7O/8w7PwtsTOpPxS7GIBdYcr22MFSqoVdyRZ2INDGTmIZ - KaK72CUWcYhd4Yh1sO8c+9wc87iDvZV/GPYxxeyI3McQRIn8UPB8kN69qHeQNJaH5g6kdQu8XMt0 - DyamlEnW6zIQJULwMCNoB7wQHfBifdsAfCv/MPAwqI7rnRL2JnYolr8XOxs2U3W7zbS7jJ9zbbmr - A3VKI0oV9IEjM5V1ZyoL24wvv6d3wUPswQEDBc/XY+WY4Jnqw93WqwnW/TbUJv8PajDZ0tkGgD4j - C+d6R5LOb9z8Bthm5V2VFqtkvQJGcn4lz55+wMrmt8g8bmrZBNSP86R8+u5i/yxF6i+PTqoqN5++ - Ftk629S7vvy68MbSue1LXl58Bkdjs1vj/JaTn9+2Z5e1bUwSrEwu/e6ZnVtwnJ6eEUJO42txFQVb - OutXv6/9l1wvUmfgrdK6DiLohTjXfzREwH/eXepWSW7rxhZzNGnc0rzAbcxjk1Spp14s8/zlFQAA - //8DAMvSMmUYCgAA + H4sIALYJ4GUAA6yW226cMBCGX6XyNWv5ADbsXaJWUaU2PUStElUVsljvrhMC1LBJNlHeveM9YWDT + qjSXM54Z29/8jHlCdVNmN2llTaZrNP3xhGaq0WiKGGF8QuiEEhQgUzRWVdqacoamc5XXOkBzq3+t + dJGtIXimTL6GuLLSBZpSTjATAVqaxdJZdGPl5T0YLMaUBSjLy1pvIyUP0F2Zr27BFjxOBI0iTAKk + Ztfprh5LMJdbz74mOXh2dSVm0daxrw1Zcbh1Has/V1lTWohzRl3lpkmtaky588zMnZnpAu5LnJkt + VbHQzojiAAGKTBdN2noJCWH7uZk367S5L9N7rW/2h5Vyk9Rb3J2bY86egwF2kozCHsoWO8chPWAH + FkkHO41a7JLIhMSUD7FHPewMRx3qyT7Fg+6a7UP3q4+Gzl+ATl8Vuvh36ExgQlvooPzkAD3sQAc0 + grXQYymjUNKB1qNNazzokBd2oIeYhD3qMZY9qfvlx1EPN90/Qp2LIdj/oR6NoC4x5QfqYEnpUZfC + ow4EfOokEUySuE9dHGS7rylw0qHOcUJ71ENMZY+6V34c9QnF/IjYJxBEiXhV7uEotTtJ7xnFWLST + HUDHHneBufC4J5RywQcjRmy643OHXsY9uTPeAx/tx9Cx8uO4wyN1fLBTwv9APRkOoL9Q5+Pe09if + Mf6IcRL0xS5b6JQySiVMgSPvadJ/TwntyZ2zgdwZ62LvbDBS7zAkX9A7dzPtOPmYYDFc9Mn/hDPo + bGVNA0CfkIF9nSNVi2u7uAa2WXlbqWKdblbASM8vxdnjJ1jZ/hLph+1ZtgH1wyItHz/axLWlUO7y + 6KSqcv3mfZFtqs2c692XC2esrN118tvFW3A0JrvR1qWcfP6w27usTaPTzsr0m8uem4UBx+npGSHk + NLmKLlknpbd++fXKfcj1UlkNvVJ13YmgF9F5/D2GCPjHu1V2neambkyxQNPGrvQz3EY/NGmlHPVi + lefPvwEAAP//AwDtIUFLFAoAAA== headers: Connection: - keep-alive @@ -35,7 +35,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 16 Oct 2023 12:23:13 GMT + - Thu, 29 Feb 2024 04:36:06 GMT Transfer-Encoding: - chunked Vary: diff --git a/openbb_platform/providers/intrinio/tests/record/http/test_intrinio_fetchers/test_intrinio_index_historical_fetcher.yaml b/openbb_platform/providers/intrinio/tests/record/http/test_intrinio_fetchers/test_intrinio_index_historical_fetcher.yaml index 718398eb2a7..eb35d049384 100644 --- a/openbb_platform/providers/intrinio/tests/record/http/test_intrinio_fetchers/test_intrinio_index_historical_fetcher.yaml +++ b/openbb_platform/providers/intrinio/tests/record/http/test_intrinio_fetchers/test_intrinio_index_historical_fetcher.yaml @@ -9,19 +9,19 @@ interactions: Connection: - keep-alive method: GET - uri: https://api-v2.intrinio.com/indices/stock_market/$DJI/historical_data/level?api_key=MOCK_API_KEY&end_date=2024-02-05&interval=1d&page_size=10000&sort_order=asc&start_date=2024-01-01 + uri: https://api-v2.intrinio.com/indices/stock_market/$DJI/historical_data/level?api_key=MOCK_API_KEY&end_date=2024-02-05&interval=1d&page_size=10000&start_date=2024-01-01 response: body: string: !!binary | - H4sIAB/ZwGUAA4SUTW/bMAyG/4oh7JgRor4s5xagl/bQy7bLhsFQY3U14MidLWdNg/z3ye2ASQuB - ATpY4gOK7yvSZ/bUz3Gc+r0b2s5Fx7bfzix9eLZlggv1kWNabMOObljSYViG4bK5RsRfRNY1auCK - wmSOKckBGwpTBaY4SDKbLjBjAJHCbI4ZK4GTWJNjWmhAQ2DIi2yNhlpSGJaGIHBBYYVvuhHQWArT - /30BNHkmaRCQvLDOMZE8MzWF2dJaC4byDAvPrJFAVS9ykZZzBEslE0VzNFyD0hRWNIflBiTVQ0IX - l6oGkHonkdtmkTegSCwXaqWUdG0ybw6rTA2SUiqxuFSn/r6iRDF20mpswF5PgShHzxqtQInL9w3r - Q+df2PbM+i7RadeK1+P96y7R8+nwMA7p9MPN3W3aB3dYM96Mv6q7Mfi5ug3dMsepd0O1O/rJ/fCJ - 2o8h9sGHmND7cYpP1e7g1z/HW2wJcTqlyJfQR99Vn2Kqcq7GxwxantfS28fJ/1x82K905/rhlEKD - m2P7Hu9ybfIzx+26BHDOvyZyfJj9dHSxH0M7RzfFNxz/4P8APnSlU5ck1r/E9nmV9D5KvwEAAP// - AwCCQKM2AwUAAA== + H4sIAKrP4GUAA3TUPW/bMBAG4L8iEB3tw/FTojYDWZIhS9ulRSEwFtMIkKlUotw4Rv576Xghm8sm + iQ9I3sujzuxpWOI0D3s3dr2LjrU/zyw9eNYygUJtUWxRsw07unFNH2UjGwQu3jYfmciZ0QoUyXjO + NLfQqA+Mb2XBuEaQlMJcKVOD5AQTtqhASlCaYqZYEy0oalFR5IHKAieZyljdoAFpKSZzZlF/srci + XUQODVUpt8WiRkJDqSZXyjRgyMnqnAljwNQUy2OrpeFUfySWxRbWcaRIXmStrQBLbj/vjbrmHJBc + MG+O2lgNNXVOWESmhQZuKFZkZhoJSGVWXJYUrQFOsqI5lErtTd0CLJpDyXT1qB4qrl4KRAOSs/H/ + TuDXhg2h9y+sPbOhTzK9deL1eP+6S3I5HR6mMX39cnN3m96DO1xmu5n+VndT8Et1G/p1ifPgxmp3 + 9LP77ZPaTyEOwYeY6P00x6dqd/CXH8z72BrifEoj38MQfV99jWmHSzU9Zmh9vmy7e5z9n9WH/UX3 + bhhPaWh0S+yu4332SxH2G/KW81YpQMQfSU4Pi5+PLg5T6Jbo5vjOeeLyGmoOfChma9hbKta/xO75 + UtI1qn8AAAD//wMA0dGnzyoFAAA= headers: Connection: - keep-alive @@ -30,7 +30,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 05 Feb 2024 12:48:31 GMT + - Thu, 29 Feb 2024 18:40:42 GMT Transfer-Encoding: - chunked Vary: diff --git a/openbb_platform/providers/polygon/openbb_polygon/__init__.py b/openbb_platform/providers/polygon/openbb_polygon/__init__.py index 40ea1d4bc32..2ec5e7a4109 100644 --- a/openbb_platform/providers/polygon/openbb_polygon/__init__.py +++ b/openbb_platform/providers/polygon/openbb_polygon/__init__.py @@ -13,9 +13,6 @@ from openbb_polygon.models.income_statement import PolygonIncomeStatementFetcher from openbb_polygon.models.index_historical import ( PolygonIndexHistoricalFetcher, ) -from openbb_polygon.models.market_indices import ( - PolygonMarketIndicesFetcher, -) from openbb_polygon.models.market_snapshots import PolygonMarketSnapshotsFetcher polygon_provider = Provider( @@ -34,9 +31,10 @@ polygon_provider = Provider( "CurrencyPairs": PolygonCurrencyPairsFetcher, "EquityHistorical": PolygonEquityHistoricalFetcher, "EquityNBBO": PolygonEquityNBBOFetcher, + "EtfHistorical": PolygonEquityHistoricalFetcher, "IncomeStatement": PolygonIncomeStatementFetcher, "IndexHistorical": PolygonIndexHistoricalFetcher, - "MarketIndices": PolygonMarketIndicesFetcher, + "MarketIndices": PolygonIndexHistoricalFetcher, "MarketSnapshots": PolygonMarketSnapshotsFetcher, }, ) diff --git a/openbb_platform/providers/polygon/openbb_polygon/models/crypto_historical.py b/openbb_platform/providers/polygon/openbb_polygon/models/crypto_historical.py index 4239e7cbab9..04a566a6250 100644 --- a/openbb_platform/providers/polygon/openbb_polygon/models/crypto_historical.py +++ b/openbb_platform/providers/polygon/openbb_polygon/models/crypto_historical.py @@ -39,10 +39,16 @@ class PolygonCryptoHistoricalQueryParams(CryptoHistoricalQueryParams): __json_schema_extra__ = {"symbol": ["multiple_items_allowed"]} interval: str = Field( - default="1d", description=QUERY_DESCRIPTIONS.get("interval", "") + default="1d", + description=QUERY_DESCRIPTIONS.get("interval", "") + + " The numeric portion of the interval can be any positive integer." + + " The letter portion can be one of the following: s, m, h, d, W, M, Q, Y", ) sort: Literal["asc", "desc"] = Field( - default="desc", description="Sort order of the data." + default="asc", + description="Sort order of the data." + + " This impacts the results in combination with the 'limit' parameter." + + " The results are always returned in ascending order by date.", ) limit: PositiveInt = Field( default=49999, description=QUERY_DESCRIPTIONS.get("limit", "") diff --git a/openbb_platform/providers/polygon/openbb_polygon/models/currency_historical.py b/openbb_platform/providers/polygon/openbb_polygon/models/currency_historical.py index 44df98e9f8e..0da2b73c2f2 100644 --- a/openbb_platform/providers/polygon/openbb_polygon/models/currency_historical.py +++ b/openbb_platform/providers/polygon/openbb_polygon/models/currency_historical.py @@ -39,10 +39,16 @@ class PolygonCurrencyHistoricalQueryParams(CurrencyHistoricalQueryParams): __json_schema_extra__ = {"symbol": ["multiple_items_allowed"]} interval: str = Field( - default="1d", description=QUERY_DESCRIPTIONS.get("interval", "") + default="1d", + description=QUERY_DESCRIPTIONS.get("interval", "") + + " The numeric portion of the interval can be any positive integer." + + " The letter portion can be one of the following: s, m, h, d, W, M, Q, Y", ) sort: Literal["asc", "desc"] = Field( - default="desc", description="Sort order of the data." + default="asc", + description="Sort order of the data." + + " This impacts the results in combination with the 'limit' parameter." + + " The results are always returned in ascending order by date.", ) limit: PositiveInt = Field( default=49999, description=QUERY_DESCRIPTIONS.get("limit", "") diff --git a/openbb_platform/providers/polygon/openbb_polygon/models/equity_historical.py b/openbb_platform/providers/polygon/openbb_polygon/models/equity_historical.py index 93935bcfd8d..85f4625a875 100644 --- a/openbb_platform/providers/polygon/openbb_polygon/models/equity_historical.py +++ b/openbb_platform/providers/polygon/openbb_polygon/models/equity_historical.py @@ -1,6 +1,6 @@ """Polygon Equity Historical Price Model.""" -# pylint: disable=unused-argument +# pylint: disable=unused-argument,protected-access import warnings from datetime import datetime @@ -19,6 +19,7 @@ from openbb_core.provider.utils.helpers import ( ClientSession, amake_requests, ) +from pandas import to_datetime from pydantic import ( Field, PositiveInt, @@ -39,22 +40,31 @@ class PolygonEquityHistoricalQueryParams(EquityHistoricalQueryParams): __json_schema_extra__ = {"symbol": ["multiple_items_allowed"]} interval: str = Field( - default="1d", description=QUERY_DESCRIPTIONS.get("interval", "") + default="1d", + description=QUERY_DESCRIPTIONS.get("interval", "") + + " The numeric portion of the interval can be any positive integer." + + " The letter portion can be one of the following: s, m, h, d, W, M, Q, Y", + ) + adjustment: Literal["splits_only", "unadjusted"] = Field( + default="splits_only", + description="The adjustment factor to apply. Default is splits only.", + ) + extended_hours: bool = Field( + default=False, + description="Include Pre and Post market data.", ) sort: Literal["asc", "desc"] = Field( - default="desc", description="Sort order of the data." + default="asc", + description="Sort order of the data." + + " This impacts the results in combination with the 'limit' parameter." + + " The results are always returned in ascending order by date.", ) limit: PositiveInt = Field( default=49999, description=QUERY_DESCRIPTIONS.get("limit", "") ) - adjusted: bool = Field( - default=True, - description="Output time series is adjusted by historical split and dividend events.", - ) _multiplier: PositiveInt = PrivateAttr(default=None) _timespan: str = PrivateAttr(default=None) - # pylint: disable=protected-access @model_validator(mode="after") @classmethod def get_api_interval_params(cls, values: "PolygonEquityHistoricalQueryParams"): @@ -125,12 +135,12 @@ class PolygonEquityHistoricalFetcher( ) -> List[Dict]: """Return the raw data from the Polygon endpoint.""" api_key = credentials.get("polygon_api_key") if credentials else "" - + adjustment = query.adjustment == "splits_only" urls = [ ( "https://api.polygon.io/v2/aggs/ticker/" f"{symbol.upper()}/range/{query._multiplier}/{query._timespan}/" - f"{query.start_date}/{query.end_date}?adjusted={query.adjusted}" + f"{query.start_date}/{query.end_date}?adjusted={adjustment}" f"&sort={query.sort}&limit={query.limit}&apiKey={api_key}" ) for symbol in query.symbol.split(",") @@ -178,7 +188,21 @@ class PolygonEquityHistoricalFetcher( """Transform the data from the Polygon endpoint.""" if not data: raise EmptyDataError() + if query.extended_hours is True or query._timespan not in [ + "second", + "minute", + "hour", + ]: + return [ + PolygonEquityHistoricalData.model_validate(d) + for d in sorted(data, key=lambda x: x["t"], reverse=False) + ] + return [ PolygonEquityHistoricalData.model_validate(d) for d in sorted(data, key=lambda x: x["t"], reverse=False) + if to_datetime(d["t"]).time() + >= datetime.strptime("09:30:00", "%H:%M:%S").time() + and to_datetime(d["t"]).time() + <= datetime.strptime("16:00:00", "%H:%M:%S").time() ] diff --git a/openbb_platform/providers/polygon/openbb_polygon/models/index_historical.py b/openbb_platform/providers/polygon/openbb_polygon/models/index_historical.py index 0b34c48d8c5..01320ddfc75 100644 --- a/openbb_platform/providers/polygon/openbb_polygon/models/index_historical.py +++ b/openbb_platform/providers/polygon/openbb_polygon/models/index_historical.py @@ -39,10 +39,16 @@ class PolygonIndexHistoricalQueryParams(IndexHistoricalQueryParams): __json_schema_extra__ = {"symbol": ["multiple_items_allowed"]} interval: str = Field( - default="1d", description=QUERY_DESCRIPTIONS.get("interval", "") + default="1d", + description=QUERY_DESCRIPTIONS.get("interval", "") + + " The numeric portion of the interval can be any positive integer." + + " The letter portion can be one of the following: s, m, h, d, W, M, Q, Y", ) sort: Literal["asc", "desc"] = Field( - default="desc", description="Sort order of the data." + default="asc", + description="Sort order of the data." + + " This impacts the results in combination with the 'limit' parameter." + + " The results are always returned in ascending order by date.", ) limit: PositiveInt = Field( default=49999, description=QUERY_DESCRIPTIONS.get("limit", "") diff --git a/openbb_platform/providers/polygon/tests/record/http/test_polygon_fetchers/test_polygon_crypto_historical_fetcher.yaml b/openbb_platform/providers/polygon/tests/record/http/test_polygon_fetchers/test_polygon_crypto_historical_fetcher.yaml index ce8f46b4411..3489418223c 100644 --- a/openbb_platform/providers/polygon/tests/record/http/test_polygon_fetchers/test_polygon_crypto_historical_fetcher.yaml +++ b/openbb_platform/providers/polygon/tests/record/http/test_polygon_fetchers/test_polygon_crypto_historical_fetcher.yaml @@ -9,21 +9,21 @@ interactions: Connection: - keep-alive method: GET - uri: https://api.polygon.io/v2/aggs/ticker/X:BTCUSD/range/1/day/2023-01-01/2023-01-10?apiKey=MOCK_API_KEY&limit=49999&sort=desc + uri: https://api.polygon.io/v2/aggs/ticker/X:BTCUSD/range/1/day/2023-01-01/2023-01-10?apiKey=MOCK_API_KEY&limit=49999&sort=asc response: body: string: !!binary | - H4sIAAAAAAAA/0zUTavbRhQG4P8ya3E43x9aNt110UVbKJRSnGuHpA0JseWUcrn/vcjSjOzdGOHH - 7zmv5rUtn17+uVzb3H6ff/j13W+//Nim9u1+uf737uv9y9JmwqldL7f75+X29M3p/Pf9tlzObV6u - 98t4os1/vLbvbeZkZUCuigg3FZ/a93/bTCEkYB4yta/rkSKgdGov60FVQH1qH9eDoU/t8+MZNaCp - rbKHCGbi+pnalzabByK9TQ9VQiMgjALZxMU6yqoQhtRRpV188LmLuv7mJiJDxSCZWQ/SjUh9J4lI - EryIXDmUtXbTKwgCUzfTawuxqWxAXaWkTfUiBD2CkjgeKleZ2a66eYFJaBkHE5cNVQzUmLpq1FUv - ZZDYVK/CrqKA5VBRy59ULmXd1XWpDsalSF7uGV1NRcBDTTaIoSZg3yn3CbsHQnJXuVz4UDUsqC91 - G51nhZVSBA+UHbi4Dzi1QHZ0/QNee9TM3NEwBBxr5Qx/apJkmGGPWuIIxC7OJoSeQxWDyvBdda8R - NVVBeY+K2FVXgzzUKHwqkxFnVleJUYEry0zX5mykJwJK6SBzBF157TtN6tO1KvBD3ME9ZzhjXykZ - cQGvIEqVigy0GIxwoGSDdFj7tpEonVQGOxbqFE81EkuunpJYEEHITETIi4dpWmA6gppwN4keHf24 - zVN3U9cS76AJ8fPbwmL69ufUbstpud/a3H7+qa3X1Lf75bb89enc5san0+n9+w8ZLyImcjaWiFN+ - MCY6n9nb1F76jff2fwAAAP//OenW5ykFAAA= + H4sIAAAAAAAA/0zUzYobRxAH8Hfp81DUd3XNMZtbDjkkgUAIRpZkvPayy0qjNWbZdzcjdbdmTt3D + wG/+VdX9XpbH/ffjqczl3/m3vx/++ev3MpXXy/H08+Hl8ryUmXAqp+P58rScN292h2+X83I8lHk5 + XY7jizL/917eykwsiCBkJiLkyTKVtx9lJjdNME2dyst1KzyV/bpyIrA6la/XjepUntaVJk5lRT3Y + hBjXZyrPZeZkMf2YbqARJ3BNM5RMlQF6MhhhB52sg+6Q1sCK0kBTBuNhOoXfTbHKmc1kYlTgXFGt + OsCKgDISuleQQSZodHKt443MBB9ioOJGDGfsKTnFEYhdfC0Geu1oFYOs4QNNiIZWVVC+oYFYG+pq + UOOuZmOvqhHX2nOSpxp4zbBUiuCBsgMn96RVcyStbODZk9aOhiHgHa3hdRO1hhn2qJXVwTgVydN9 + /dWmKgIaU1fZRtTUCugtKmOvrwdCvbc0XTZjpGFB1FQ3TzAJTeNg4nU+bmqKgd7VNAIaKoP0rmZ2 + NVGuA31TBTU3g8ScymN4iaSCJ5Erh7LmUIMgsPYKr31oahAbUDsvQZW6SghKQyVx3B6ZNLOmSmgE + hFEgm7j0qMGqEIYtapAOMgKyk9rLG4QMOZoqzLyZJDci9U1TGZAzI8JNxbspJGAe0s1V0saqCmjv + qq39vbG3YjRVsG5GyTwQ6eP/qZyX3XI5l7n8+UdZr6nXy/G8fHo8lLlI7gjzsKvHPX3ZhdgO6YB7 + 4887ZFEpU9n3G+/jVwAAAP//yGhUvikFAAA= headers: Connection: - keep-alive @@ -34,7 +34,7 @@ interactions: Content-Type: - application/json Date: - - Fri, 02 Feb 2024 00:32:56 GMT + - Thu, 29 Feb 2024 04:34:31 GMT Server: - nginx/1.19.2 Strict-Transport-Security: @@ -42,7 +42,7 @@ interactions: Vary: - Accept-Encoding X-Request-Id: - - 2aaabbf87c33533d52377a8f5211dd26 + - 39a109da8ec1fa735a01d0c52ba02343 status: code: 200 message: OK diff --git a/openbb_platform/providers/polygon/tests/record/http/test_polygon_fetchers/test_polygon_currency_historical_fetcher.yaml b/openbb_platform/providers/polygon/tests/record/http/test_polygon_fetchers/test_polygon_currency_historical_fetcher.yaml index a706bc34071..5db353ecc56 100644 --- a/openbb_platform/providers/polygon/tests/record/http/test_polygon_fetchers/test_polygon_currency_historical_fetcher.yaml +++ b/openbb_platform/providers/polygon/tests/record/http/test_polygon_fetchers/test_polygon_currency_historical_fetcher.yaml @@ -9,29 +9,29 @@ interactions: Connection: - keep-alive method: GET - uri: https://api.polygon.io/v2/aggs/ticker/C:EURUSD/range/1/day/2023-01-01/2023-01-10?apiKey=MOCK_API_KEY&limit=49999&sort=desc + uri: https://api.polygon.io/v2/aggs/ticker/C:EURUSD/range/1/day/2023-01-01/2023-01-10?apiKey=MOCK_API_KEY&limit=49999&sort=asc response: body: string: !!binary | - H4sIAAAAAAAA/2yUQWsbPRCG/8ucxYdmpJmR9pqvpx4KLTmVUjbrDU0bEuLdTSnB/73IkTQ61Cch - 5Ofx6H3lN9gfll/rGSa4mT7cfr798j84eDnW85+b5+Nphwm9g/O6HY/7NuzMp5/Htq8nmPbzsfYT - MH19g1eYyBNHdvD6Gyb8z2uIDp7rktjBUtcpOPjxvuYcHDy+r9FB8YiG4FPy5ePgqWEvrjqYVM3h - pTlEKJqj+KpDsCmEu4KI4qgo1KqIGrALylcqP/rU+CIkjS9C2gXBa1dgEG+KQm0zDPRg+DjQB3hn - lwMV7WOW4df3u9FUtiqcGRucyWej4z/oMVFueMoSaLycgm0O9ByDObRnLJ6lOZjQJKFLGEPqkqQy - hnzlNgnlmKNJcuqDxHJjSxOag3uP2O6JNPsx5Su2OYJIsCJxsqBVelmvfa6OhDaHjaHVUBVXalVo - xGgG0V5V9aUyS9uOvarW1NirSoI6hH2FVgEOTco9bEmxh63Z3po9NdFkA3DAIWykyzcH2z7vxwYT - fPoI5Zm/HOu2f384wQSCeZ7lXu4wzUsOeLeEOablfuE087oSOFjaP8blbwAAAP//JClhEWkEAAA= + H4sIAAAAAAAA/2SUTWvcMBCG/8ucRdHHfEi+pj31UGjJqZSS7mpJ2pCQtZ1Swv73Ins1I8iehDHP + 43fe0b7B8nD4U88wwc306fbr7beP4OBlred/N8/r0wJT8A7OdV4fl3l4cnf8vc5LPcK0nNeqb8D0 + /Q1eYQrRwetfmMIHzyU4eN6PGYuDw3aWkhzc2/Fxf0NydtAcLJFSiL79HDw15MVtbMGAYnjhjhcf + peNZGJUfFI+kdA7CRt+gV0FMzMkMlEkDCFM3UGPdX3OpgYJ9v3j0ZtipXRELFjRFyV1BSElDeFMk + 0iERojnKVbI7Nmx3BE+YzCGoMTyxxoghmCRajmRBsnAeJBu3S7zk9rxLSMum6LVsZnOwOjDHoo7C + aSh7x3aHld2GcM3QhnAw5Ds625SSxzJ03RcJJYUBbWSfBzQPbFF48qL0kHjouVF1OBTFFkm8ripz + 1M+XFLVmYdtVXdUUYxxL3qiqiNsidkXSkndsV2S7bWTXrd2MqyP5PHa8YS8/HMzL3bLOMMGXz9Cu + +cta5+XnwxEmOFXkEE4VfcZUciU+0qn4UH7VUy6M4ODQ/zEu/wMAAP//aa3BEGkEAAA= headers: Connection: - keep-alive Content-Encoding: - gzip Content-Length: - - '455' + - '449' Content-Type: - application/json Date: - - Fri, 02 Feb 2024 00:32:57 GMT + - Thu, 29 Feb 2024 04:34:31 GMT Server: - nginx/1.19.2 Strict-Transport-Security: @@ -39,7 +39,7 @@ interactions: Vary: - Accept-Encoding X-Request-Id: - - 619aa6f6b18ac931bc3a48cfc58a5ee2 + - fe4611fe4084398e56d5f9019bef8964 status: code: 200 message: OK diff --git a/openbb_platform/providers/polygon/tests/record/http/test_polygon_fetchers/test_polygon_equity_historical_fetcher.yaml b/openbb_platform/providers/polygon/tests/record/http/test_polygon_fetchers/test_polygon_equity_historical_fetcher.yaml index 1880542b7ea..42cf040362f 100644 --- a/openbb_platform/providers/polygon/tests/record/http/test_polygon_fetchers/test_polygon_equity_historical_fetcher.yaml +++ b/openbb_platform/providers/polygon/tests/record/http/test_polygon_fetchers/test_polygon_equity_historical_fetcher.yaml @@ -3,34 +3,34 @@ interactions: body: null headers: Accept: - - '*/*' + - application/json Accept-Encoding: - gzip, deflate Connection: - keep-alive method: GET - uri: https://api.polygon.io/v2/aggs/ticker/AAPL/range/1/day/2023-01-01/2023-01-10?adjusted=True&apiKey=MOCK_API_KEY&limit=49999&sort=desc + uri: https://api.polygon.io/v2/aggs/ticker/AAPL/range/1/day/2023-01-01/2023-01-10?adjusted=True&apiKey=MOCK_API_KEY&limit=49999&sort=asc response: body: string: !!binary | - H4sIAAAAAAAA/1TSQWvcPBAG4P8y14hhZqSZkXQL3/ErtPdSyq5XS9KGhKztlBL2vxfXqr3xaTAy - j99X8w7T4/CzXaDC/f2XTxDgdW6X3/+9zM8TVAtwaeP8NI37i8PpxzxO7QR1usxtOwD16zu8QTWM - uRirtjvyAG+/oLIUzCIBXqByJBQLMKyjxwAPy8goFi3A03I8I0uACSqbxyiWaXkCPENVTSXRNfy1 - HMkLZY43VmQ0KTuWTDeNtWsRE3erYC6bJYnSblnSaNqtjO6anD/kysgld0sMiVdKCpp0ilBKp9IN - JSWz7JQzq9BGkbNlyreUIeUcO+XIsVOK1ClxdN8ot43KJd00aKZJ80YVJrIYP1KWLG2plp8e1nG5 - oYc1uKn+wxQp7xjlmwrdiZJ0jJGF2ZNzu1u+WDVFF913I++5fKtwb5B9k1zWAleJSZhMr98CjNNh - mkeo8Pl/WPbzdW7j9P3xBBWG4Sgtykn1ICQ2uJy5nYse7ejl2M4QYOibfv0TAAD//5fmLtkbAwAA + H4sIAAAAAAAA/1TSwWrdSgwG4HfRNoOQNDOSZnbhLm+h3ZdSjI9L04aEHNspJZx3L46HseOlMP78 + /9IbLA/j7+kKFe7vv3yCAC/rdP373/P6tEDVANdpXh+X+RgMl1/rvEwXqMt1nfoLUL++wStURhZm + S8bTHXmA1z9QWTKa5ADPUDkSigcY9zFZgJ/7tAR43IYJ2QIsUFlNTITenwBPUJmESfMtvFOOhYk0 + xulu+8wuKWrStFOi6KVRilF3Shw1Z2taxu0vm+bk6dDMiJJ0jIzVyT9i5B4bZsjxyCUNMzTrwUwP + qiQ/KNWcsnfKLCfjfKYcubj0XMSNKqjSK5Sjwy14o4qznFIxZ6FGGZIVcj5XGBlVivRtJc27FQk5 + Nyti4maVkxUl0alBTTn2dSlGL8r5Q6yCLgcl2iWLTWIU3Vb32FqQbkXRU4U5p5Lo9i3AvAzLOkOF + z//Ddp8v6zQv3x8uUCGWVEhlGPXHMKRyGT16jEMZpkli8RECjO3Sb/8CAAD//xVsoR0bAwAA headers: Connection: - keep-alive Content-Encoding: - gzip Content-Length: - - '399' + - '396' Content-Type: - application/json Date: - - Tue, 26 Sep 2023 19:08:11 GMT + - Thu, 29 Feb 2024 04:34:30 GMT Server: - nginx/1.19.2 Strict-Transport-Security: @@ -38,7 +38,7 @@ interactions: Vary: - Accept-Encoding X-Request-Id: - - ccb2e32d55a2026c72f1ef95b6b79bef + - 3949062ac6faa49dc83833a9aee2398c status: code: 200 message: OK diff --git a/openbb_platform/providers/polygon/tests/record/http/test_polygon_fetchers/test_polygon_index_historical_fetcher.yaml b/openbb_platform/providers/polygon/tests/record/http/test_polygon_fetchers/test_polygon_index_historical_fetcher.yaml index 5d27a705e3e..ddcefef812d 100644 --- a/openbb_platform/providers/polygon/tests/record/http/test_polygon_fetchers/test_polygon_index_historical_fetcher.yaml +++ b/openbb_platform/providers/polygon/tests/record/http/test_polygon_fetchers/test_polygon_index_historical_fetcher.yaml @@ -9,51 +9,51 @@ interactions: Connection: - keep-alive method: GET - uri: https://api.polygon.io/v2/aggs/ticker/I:NDX/range/1/day/2023-01-01/2023-05-10?apiKey=MOCK_API_KEY&limit=49999&sort=desc + uri: https://api.polygon.io/v2/aggs/ticker/I:NDX/range/1/day/2023-01-01/2023-05-10?apiKey=MOCK_API_KEY&limit=49999&sort=asc response: body: string: !!binary | - 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 headers: Connection: - keep-alive @@ -62,7 +62,7 @@ interactions: Content-Type: - application/json Date: - - Fri, 02 Feb 2024 00:35:30 GMT + - Thu, 29 Feb 2024 04:34:30 GMT Server: - nginx/1.19.2 Strict-Transport-Security: @@ -72,7 +72,7 @@ interactions: Vary: - Accept-Encoding X-Request-Id: - - 1ab70490ebcfe654deb56d619924d97d + - e77b0c116bbca37bc4af1d1977e9fc7f status: code: 200 message: OK diff --git a/openbb_platform/providers/tiingo/openbb_tiingo/__init__.py b/openbb_platform/providers/tiingo/openbb_tiingo/__init__.py index 4bcc7d18f4e..98a6562a198 100644 --- a/openbb_platform/providers/tiingo/openbb_tiingo/__init__.py +++ b/openbb_platform/providers/tiingo/openbb_tiingo/__init__.py @@ -15,6 +15,7 @@ tiingo_provider = Provider( credentials=["token"], fetcher_dict={ "EquityHistorical": TiingoEquityHistoricalFetcher, + "EtfHistorical": TiingoEquityHistoricalFetcher, "CompanyNews": TiingoCompanyNewsFetcher, "WorldNews": TiingoWorldNewsFetcher, "CryptoHistorical": TiingoCryptoHistoricalFetcher, diff --git a/openbb_platform/providers/tiingo/openbb_tiingo/models/crypto_historical.py b/openbb_platform/providers/tiingo/openbb_tiingo/models/crypto_historical.py index d0ae6599206..bd70bab32cd 100644 --- a/openbb_platform/providers/tiingo/openbb_tiingo/models/crypto_historical.py +++ b/openbb_platform/providers/tiingo/openbb_tiingo/models/crypto_historical.py @@ -1,5 +1,8 @@ """Tiingo Crypto Historical Price Model.""" +# pylint: disable=unused-argument + +import warnings from datetime import datetime from typing import Any, Dict, List, Literal, Optional @@ -9,9 +12,15 @@ from openbb_core.provider.standard_models.crypto_historical import ( CryptoHistoricalData, CryptoHistoricalQueryParams, ) -from openbb_core.provider.utils.helpers import get_querystring -from openbb_tiingo.utils.helpers import get_data_one -from pydantic import Field +from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS +from openbb_core.provider.utils.helpers import ( + ClientResponse, + amake_requests, + get_querystring, +) +from pydantic import Field, PrivateAttr, model_validator + +_warn = warnings.warn class TiingoCryptoHistoricalQueryParams(CryptoHistoricalQueryParams): @@ -24,19 +33,40 @@ class TiingoCryptoHistoricalQueryParams(CryptoHistoricalQueryParams): "symbol": "tickers", "start_date": "startDate", "end_date": "endDate", + "interval": "resampleFreq", } + __json_schema_extra__ = {"symbol": ["multiple_items_allowed"]} - interval: Literal["1min", "5min", "15min", "30min", "1hour", "4hour", "1day"] = ( - Field(default="1day", description="Data granularity.", alias="resampleFreq") + interval: Literal["1m", "5m", "15m", "30m", "1h", "4h", "1d"] = Field( + default="1d", description=QUERY_DESCRIPTIONS.get("interval", "") ) - exchanges: Optional[List[str]] = Field( default=None, description=( "To limit the query to a subset of exchanges e.g. ['POLONIEX', 'GDAX']" ), ) + _frequency: Literal["daily", "weekly", "monthly", "annually"] = PrivateAttr( + default=None + ) + # pylint: disable=protected-access + @model_validator(mode="after") # type: ignore[arg-type] + @classmethod + def set_time_params(cls, values: "TiingoCryptoHistoricalQueryParams"): + """Set the default start & end date and time params for Tiingo API.""" + frequency_dict = { + "1d": "1Day", + "1m": "1Min", + "5m": "5Min", + "15m": "15Min", + "30m": "30Min", + "1h": "1Hour", + "4h": "4Hour", + } + values._frequency = frequency_dict[values.interval] # type: ignore[assignment] + + return values class TiingoCryptoHistoricalData(CryptoHistoricalData): @@ -81,9 +111,9 @@ class TiingoCryptoHistoricalFetcher( return TiingoCryptoHistoricalQueryParams(**transformed_params) - # pylint: disable=protected-access,unused-argument + # pylint: disable=protected-access @staticmethod - def extract_data( + async def aextract_data( query: TiingoCryptoHistoricalQueryParams, credentials: Optional[Dict[str, str]], **kwargs: Optional[Any], @@ -92,13 +122,32 @@ class TiingoCryptoHistoricalFetcher( api_key = credentials.get("tiingo_token") if credentials else "" base_url = "https://api.tiingo.com/tiingo/crypto/prices" - query_str = get_querystring(query.model_dump(by_alias=True), []) - url = f"{base_url}?{query_str}&token={api_key}" - data = get_data_one(url).get("priceData", []) + query_str = get_querystring( + query.model_dump(by_alias=False), ["tickers", "resampleFreq"] + ) + results = [] - return data + async def callback(response: ClientResponse, _: Any) -> List[Dict]: + result = await response.json() + symbol = response.url.query.get("tickers", "") + if not result: + _warn(f"No data found the the symbol: {symbol}") + return results + data = result[0].get("priceData") + if "," in query.symbol: + for d in data: + d["symbol"] = symbol.upper() if symbol else None + if len(data) > 0: + results.extend(data) + return results + + urls = [ + f"{base_url}?tickers={symbol}&{query_str}&resampleFreq={query._frequency}&token={api_key}" + for symbol in query.symbol.split(",") + ] + + return await amake_requests(urls, callback, **kwargs) - # pylint: disable=unused-argument @staticmethod def transform_data( query: TiingoCryptoHistoricalQueryParams, @@ -106,4 +155,7 @@ class TiingoCryptoHistoricalFetcher( **kwargs: Any, ) -> List[TiingoCryptoHistoricalData]: """Return the transformed data.""" - return [TiingoCryptoHistoricalData.model_validate(d) for d in data] + return [ + TiingoCryptoHistoricalData.model_validate(d) + for d in sorted(data, key=lambda x: x["date"], reverse=True) + ] diff --git a/openbb_platform/providers/tiingo/openbb_tiingo/models/currency_historical.py b/openbb_platform/providers/tiingo/openbb_tiingo/models/currency_historical.py index 748f782c803..aa0387cfd70 100644 --- a/openbb_platform/providers/tiingo/openbb_tiingo/models/currency_historical.py +++ b/openbb_platform/providers/tiingo/openbb_tiingo/models/currency_historical.py @@ -1,5 +1,8 @@ """Tiingo Currency Historical Price Model.""" +# pylint: disable=unused-argument + +import warnings from datetime import datetime from typing import Any, Dict, List, Literal, Optional @@ -9,9 +12,15 @@ from openbb_core.provider.standard_models.currency_historical import ( CurrencyHistoricalData, CurrencyHistoricalQueryParams, ) -from openbb_core.provider.utils.helpers import get_querystring -from openbb_tiingo.utils.helpers import get_data_many -from pydantic import Field +from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS +from openbb_core.provider.utils.helpers import ( + ClientResponse, + amake_requests, + get_querystring, +) +from pydantic import Field, PrivateAttr, model_validator + +_warn = warnings.warn class TiingoCurrencyHistoricalQueryParams(CurrencyHistoricalQueryParams): @@ -24,16 +33,41 @@ class TiingoCurrencyHistoricalQueryParams(CurrencyHistoricalQueryParams): "symbol": "tickers", "start_date": "startDate", "end_date": "endDate", + "interval": "resampleFreq", } + __json_schema_extra__ = {"symbol": ["multiple_items_allowed"]} - interval: Literal["1min", "5min", "15min", "30min", "1hour", "4hour", "1day"] = ( - Field(default="1day", description="Data granularity.", alias="resampleFreq") + interval: Literal["1m", "5m", "15m", "30m", "1h", "4h", "1d"] = Field( + default="1d", description=QUERY_DESCRIPTIONS.get("interval", "") ) + _frequency: Literal["daily", "weekly", "monthly", "annually"] = PrivateAttr( + default=None + ) + + # pylint: disable=protected-access + @model_validator(mode="after") # type: ignore[arg-type] + @classmethod + def set_time_params(cls, values: "TiingoCurrencyHistoricalQueryParams"): + """Set the default start & end date and time params for Tiingo API.""" + frequency_dict = { + "1d": "1Day", + "1m": "1Min", + "5m": "5Min", + "15m": "15Min", + "30m": "30Min", + "1h": "1Hour", + "4h": "4Hour", + } + values._frequency = frequency_dict[values.interval] # type: ignore[assignment] + + return values class TiingoCurrencyHistoricalData(CurrencyHistoricalData): """Tiingo Currency Historical Price Data.""" + __alias_dict__ = {"symbol": "ticker"} + class TiingoCurrencyHistoricalFetcher( Fetcher[ @@ -59,22 +93,44 @@ class TiingoCurrencyHistoricalFetcher( # pylint: disable=protected-access,unused-argument @staticmethod - def extract_data( + async def aextract_data( query: TiingoCurrencyHistoricalQueryParams, credentials: Optional[Dict[str, str]], **kwargs: Any, ) -> List[Dict]: """Return the raw data from the Tiingo endpoint.""" + api_key = credentials.get("tiingo_token") if credentials else "" base_url = "https://api.tiingo.com/tiingo/fx/prices" - query_str = get_querystring(query.model_dump(by_alias=True), []) - url = f"{base_url}?{query_str}&token={api_key}" - data = get_data_many(url) + query_str = get_querystring( + query.model_dump(by_alias=False), ["tickers", "resampleFreq"] + ) + results = [] - return data + async def callback(response: ClientResponse, _: Any) -> List[Dict]: + result = await response.json() + symbol = response.url.query.get("tickers", "") + if not result: + _warn(f"No data found the the symbol: {symbol}") + return results + data = result + if len(data) > 0: + if "," not in query.symbol: + _ = [d.pop("ticker") for d in data] + else: + for d in data: + d["ticker"] = d["ticker"].upper() + results.extend(data) + return results + + urls = [ + f"{base_url}?tickers={symbol}&{query_str}&resampleFreq={query._frequency}&token={api_key}" + for symbol in query.symbol.split(",") + ] + + return await amake_requests(urls, callback, **kwargs) - # pylint: disable=unused-argument @staticmethod def transform_data( query: TiingoCurrencyHistoricalQueryParams, diff --git a/openbb_platform/providers/tiingo/openbb_tiingo/models/equity_historical.py b/openbb_platform/providers/tiingo/openbb_tiingo/models/equity_historical.py index 12f508df906..401f1f14c01 100644 --- a/openbb_platform/providers/tiingo/openbb_tiingo/models/equity_historical.py +++ b/openbb_platform/providers/tiingo/openbb_tiingo/models/equity_historical.py @@ -1,5 +1,8 @@ """Tiingo Equity Historical Price Model.""" +# pylint: disable=unused-argument + +import warnings from datetime import datetime from typing import Any, Dict, List, Literal, Optional @@ -9,10 +12,19 @@ from openbb_core.provider.standard_models.equity_historical import ( EquityHistoricalData, EquityHistoricalQueryParams, ) -from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS -from openbb_core.provider.utils.helpers import amake_request, get_querystring +from openbb_core.provider.utils.descriptions import ( + DATA_DESCRIPTIONS, + QUERY_DESCRIPTIONS, +) +from openbb_core.provider.utils.helpers import ( + ClientResponse, + amake_requests, + get_querystring, +) from pydantic import Field, PrivateAttr, model_validator +_warn = warnings.warn + class TiingoEquityHistoricalQueryParams(EquityHistoricalQueryParams): """Tiingo Equity Historical Price Query. @@ -29,8 +41,8 @@ class TiingoEquityHistoricalQueryParams(EquityHistoricalQueryParams): interval: Literal["1d", "1W", "1M", "1Y"] = Field( default="1d", description=QUERY_DESCRIPTIONS.get("interval", "") ) - _frequency: Literal["daily", "weekly", "monthly", "quarterly", "yearly"] = ( - PrivateAttr(default=None) + _frequency: Literal["daily", "weekly", "monthly", "annually"] = PrivateAttr( + default=None ) # pylint: disable=protected-access @@ -42,8 +54,7 @@ class TiingoEquityHistoricalQueryParams(EquityHistoricalQueryParams): "1d": "daily", "1W": "weekly", "1M": "monthly", - "1Q": "quarterly", - "1Y": "yearly", + "1Y": "annually", } values._frequency = frequency_dict[values.interval] # type: ignore[assignment] @@ -56,32 +67,32 @@ class TiingoEquityHistoricalData(EquityHistoricalData): adj_open: Optional[float] = Field( default=None, - description="Adjusted open price during the period.", + description="The adjusted open price.", alias="adjOpen", ) adj_high: Optional[float] = Field( default=None, - description="Adjusted high price during the period.", + description="The adjusted high price.", alias="adjHigh", ) adj_low: Optional[float] = Field( default=None, - description="Adjusted low price during the period.", + description="The adjusted low price.", alias="adjLow", ) adj_close: Optional[float] = Field( default=None, - description="Adjusted closing price during the period.", + description=DATA_DESCRIPTIONS.get("adj_close", ""), alias="adjClose", ) adj_volume: Optional[float] = Field( default=None, - description="Adjusted volume during the period.", + description="The adjusted volume.", alias="adjVolume", ) split_ratio: Optional[float] = Field( default=None, - description="Ratio of the equity split, if a equity split occurred.", + description="Ratio of the equity split, if a split occurred.", alias="splitFactor", ) dividend: Optional[float] = Field( @@ -127,20 +138,30 @@ class TiingoEquityHistoricalFetcher( query_str = get_querystring( query.model_dump(by_alias=True), ["symbol", "interval"] ) - data: List[Dict] = [] - for symbol in query.symbol.split(","): - url = f"{base_url}/{symbol}/prices?{query_str}&resampleFreq={query._frequency}&token={api_key}" - d = await amake_request(url, **kwargs) + + async def callback(response: ClientResponse, _: Any) -> List[Dict]: + data = await response.json() + symbol = response.url.parts[-2] + results = [] + if not data: + _warn(f"No data found the the symbol: {symbol}") + return results + + if isinstance(data, List): + results = data if "," in query.symbol: - for item in d: - item["symbol"] = symbol + for d in results: + d["symbol"] = symbol + return results - data += d + urls = [ + f"{base_url}/{symbol}/prices?{query_str}&resampleFreq={query._frequency}&token={api_key}" + for symbol in query.symbol.split(",") + ] - return data + return await amake_requests(urls, callback, **kwargs) - # pylint: disable=unused-argument @staticmethod def transform_data( query: TiingoEquityHistoricalQueryParams, diff --git a/openbb_platform/providers/tiingo/tests/record/http/test_tiingo_fetchers/test_tiingo_crypto_historical_fetcher.yaml b/openbb_platform/providers/tiingo/tests/record/http/test_tiingo_fetchers/test_tiingo_crypto_historical_fetcher.yaml index ef065193379..53657fbb4cf 100644 --- a/openbb_platform/providers/tiingo/tests/record/http/test_tiingo_fetchers/test_tiingo_crypto_historical_fetcher.yaml +++ b/openbb_platform/providers/tiingo/tests/record/http/test_tiingo_fetchers/test_tiingo_crypto_historical_fetcher.yaml @@ -3,28 +3,28 @@ interactions: body: null headers: Accept: - - '*/*' + - application/json Accept-Encoding: - - gzip, deflate, br + - gzip, deflate Connection: - keep-alive method: GET - uri: https://api.tiingo.com/tiingo/crypto/prices?endDate=2023-06-06&resampleFreq=1day&startDate=2023-01-01&tickers=BTCUSD&token=MOCK_TOKEN + uri: https://api.tiingo.com/tiingo/crypto/prices?endDate=2023-06-06&resampleFreq=1Day&startDate=2023-01-01&tickers=BTCUSD&token=MOCK_TOKEN response: body: string: '[{"ticker":"btcusd","baseCurrency":"btc","quoteCurrency":"usd","priceData":[{"date":"2023-01-01T00:00:00+00:00","open":16534.758508538427,"high":16622.870558446135,"low":16492.287893194825,"close":16610.40117718445,"volume":110346.5693071621,"volumeNotional":1832900784.7179508,"tradesDone":2812901.0},{"date":"2023-01-02T00:00:00+00:00","open":16610.892883605946,"high":16792.022463375222,"low":16542.456230097472,"close":16666.42070337159,"volume":139190.34028523602,"volumeNotional":2319804769.039194,"tradesDone":3586445.0},{"date":"2023-01-03T00:00:00+00:00","open":16666.425770956354,"high":16772.008176728094,"low":16600.462687819214,"close":16670.2239959582,"volume":182632.56007866,"volumeNotional":3044525685.4665556,"tradesDone":4392043.0},{"date":"2023-01-04T00:00:00+00:00","open":16670.492558854425,"high":16985.44143125503,"low":16647.613841053073,"close":16845.3620428872,"volume":254928.102217694,"volumeNotional":4294356176.7632103,"tradesDone":5662266.0},{"date":"2023-01-05T00:00:00+00:00","open":16845.34346331706,"high":16874.57078229087,"low":16748.352864565408,"close":16825.22744905322,"volume":182315.91906806597,"volumeNotional":3067506805.903389,"tradesDone":4181793.0},{"date":"2023-01-06T00:00:00+00:00","open":16825.356660535454,"high":17033.021856610823,"low":16672.387166794186,"close":16943.062497969404,"volume":239812.614435073,"volumeNotional":4063160114.1748815,"tradesDone":4719899.0},{"date":"2023-01-07T00:00:00+00:00","open":16942.30531964883,"high":16974.006096954814,"low":16900.429739245064,"close":16935.606463508877,"volume":111958.584354078,"volumeNotional":1896086524.8322272,"tradesDone":2704933.0},{"date":"2023-01-08T00:00:00+00:00","open":16935.99943944265,"high":17168.020164038557,"low":16903.27274222517,"close":17121.282112787987,"volume":148123.123651652,"volumeNotional":2536057787.4673123,"tradesDone":3456234.0},{"date":"2023-01-09T00:00:00+00:00","open":17121.57061012745,"high":17390.76578282186,"low":17097.311813958935,"close":17172.208908019893,"volume":310183.262251941,"volumeNotional":5326531779.161452,"tradesDone":5881651.0},{"date":"2023-01-10T00:00:00+00:00","open":17172.797115007168,"high":17493.595691785365,"low":17139.96726397043,"close":17436.2637252567,"volume":255246.05909687202,"volumeNotional":4450537601.245518,"tradesDone":5000575.0},{"date":"2023-01-11T00:00:00+00:00","open":17436.280208162683,"high":17994.80360990724,"low":17309.4444175157,"close":17936.958420493294,"volume":301326.40384703095,"volumeNotional":5404879176.800964,"tradesDone":5156459.0},{"date":"2023-01-12T00:00:00+00:00","open":17937.23178217057,"high":19111.686238683895,"low":17887.70292419522,"close":18843.615393985634,"volume":546194.156613748,"volumeNotional":10292272617.671824,"tradesDone":8515248.0},{"date":"2023-01-13T00:00:00+00:00","open":18843.702644737696,"high":19996.242779748394,"low":18710.313626706644,"close":19925.507116903274,"volume":445054.043296865,"volumeNotional":8867927507.118261,"tradesDone":7738164.0},{"date":"2023-01-14T00:00:00+00:00","open":19925.46402800475,"high":21260.3129558461,"low":19885.518587547882,"close":20946.42909671108,"volume":475917.1693841831,"volumeNotional":9968765244.413227,"tradesDone":8814695.0},{"date":"2023-01-15T00:00:00+00:00","open":20944.38103412309,"high":21040.41314056405,"low":20542.15697053462,"close":20860.213701599645,"volume":213663.78927575698,"volumeNotional":4457072304.585845,"tradesDone":5169848.0},{"date":"2023-01-16T00:00:00+00:00","open":20861.34285941691,"high":21461.509652455217,"low":20603.222622679405,"close":21178.20240975164,"volume":344480.687747793,"volumeNotional":7295481731.373212,"tradesDone":6682521.0},{"date":"2023-01-17T00:00:00+00:00","open":21177.07334134622,"high":21628.41751210442,"low":20832.822616861344,"close":21125.716720343295,"volume":317891.67411837686,"volumeNotional":6715689455.180516,"tradesDone":6108968.0},{"date":"2023-01-18T00:00:00+00:00","open":21123.508789269184,"high":21639.834325639462,"low":20394.387947494208,"close":20669.66398713652,"volume":399287.363072815,"volumeNotional":8253135629.024868,"tradesDone":7306519.0},{"date":"2023-01-19T00:00:00+00:00","open":20669.667255804423,"high":21186.72047920568,"low":20650.451074363024,"close":21067.169977846763,"volume":280914.929889477,"volumeNotional":5918082577.296517,"tradesDone":5390518.0},{"date":"2023-01-20T00:00:00+00:00","open":21067.318845244237,"high":22747.54274303515,"low":20854.487051634573,"close":22659.49889848295,"volume":383260.33795678604,"volumeNotional":8684487205.763996,"tradesDone":6964724.0},{"date":"2023-01-21T00:00:00+00:00","open":22658.741683860597,"high":23365.612176433126,"low":22415.414658865433,"close":22777.866458104367,"volume":393591.21135730395,"volumeNotional":8965168051.3802,"tradesDone":7340650.0},{"date":"2023-01-22T00:00:00+00:00","open":22777.786814010415,"high":23070.80216753831,"low":22291.02015218942,"close":22706.6567041434,"volume":287904.65037854103,"volumeNotional":6537352059.67196,"tradesDone":6152631.0},{"date":"2023-01-23T00:00:00+00:00","open":22705.023761257806,"high":23177.64120280451,"low":22495.040780156975,"close":22914.806544240204,"volume":334985.914643084,"volumeNotional":7676137429.091631,"tradesDone":6689264.0},{"date":"2023-01-24T00:00:00+00:00","open":22916.213812975722,"high":23160.337734320918,"low":22458.873414989514,"close":22631.297007531946,"volume":341607.57040865096,"volumeNotional":7731022385.939561,"tradesDone":6912892.0},{"date":"2023-01-25T00:00:00+00:00","open":22630.35882328906,"high":23815.402364488167,"low":22299.05184661137,"close":23058.887712962543,"volume":398687.62187728495,"volumeNotional":9193293105.416382,"tradesDone":7487613.0},{"date":"2023-01-26T00:00:00+00:00","open":23058.54405024964,"high":23280.685861431793,"low":22848.58534793659,"close":23009.407018044218,"volume":323698.13523062505,"volumeNotional":7448102144.50337,"tradesDone":6453592.0},{"date":"2023-01-27T00:00:00+00:00","open":23007.85085501095,"high":23498.853019121838,"low":22578.236382525603,"close":23074.906999829804,"volume":284459.814003024,"volumeNotional":6563883753.308663,"tradesDone":5859985.0},{"date":"2023-01-28T00:00:00+00:00","open":23074.56872156852,"high":23189.26405811895,"low":22876.64747411179,"close":23027.41455681704,"volume":145082.87347243898,"volumeNotional":3340883472.544086,"tradesDone":3461693.0},{"date":"2023-01-29T00:00:00+00:00","open":23022.479105202696,"high":23965.235948533962,"low":22966.640963715956,"close":23747.019042121985,"volume":296682.5813472069,"volumeNotional":7045326908.718027,"tradesDone":6033555.0},{"date":"2023-01-30T00:00:00+00:00","open":23747.74358095152,"high":23804.554993231297,"low":22504.088155533067,"close":22833.288374006806,"volume":318186.1375034659,"volumeNotional":7265235834.22802,"tradesDone":6866289.0},{"date":"2023-01-31T00:00:00+00:00","open":22834.34868719895,"high":23323.165558785888,"low":22717.46523452395,"close":23129.71238462947,"volume":294786.55345481803,"volumeNotional":6818328196.266142,"tradesDone":6291240.0},{"date":"2023-02-01T00:00:00+00:00","open":23129.60734979065,"high":23822.940259567993,"low":22775.455317329255,"close":23748.088923078056,"volume":341733.46495692,"volumeNotional":8115516713.788515,"tradesDone":7150155.0},{"date":"2023-02-02T00:00:00+00:00","open":23747.0872030901,"high":24262.102952024463,"low":23367.25434031797,"close":23491.2274576747,"volume":394680.288277346,"volumeNotional":9271524424.983757,"tradesDone":8218546.0},{"date":"2023-02-03T00:00:00+00:00","open":23491.928051755865,"high":23747.077662050582,"low":23211.68416433434,"close":23436.420261583615,"volume":355423.665510659,"volumeNotional":8329858395.820326,"tradesDone":7051300.0},{"date":"2023-02-04T00:00:00+00:00","open":23436.514729027833,"high":23598.81510929699,"low":23254.097741367463,"close":23353.810507945356,"volume":174061.56393647002,"volumeNotional":4065000780.888936,"tradesDone":4282100.0},{"date":"2023-02-05T00:00:00+00:00","open":23354.211922806222,"high":23498.76637636073,"low":22750.479134986206,"close":22955.052298862247,"volume":222521.450994416,"volumeNotional":5107991545.195532,"tradesDone":5260451.0},{"date":"2023-02-06T00:00:00+00:00","open":22954.81271990142,"high":23158.324821368344,"low":22634.657513798375,"close":22766.908081381862,"volume":284031.2601124471,"volumeNotional":6466513591.219145,"tradesDone":6061109.0},{"date":"2023-02-07T00:00:00+00:00","open":22766.946866931554,"high":23349.111314865186,"low":22751.77838080674,"close":23244.890157805403,"volume":326719.584936721,"volumeNotional":7594560864.257853,"tradesDone":7332769.0},{"date":"2023-02-08T00:00:00+00:00","open":23243.04282353539,"high":23456.15056067334,"low":22666.32378169172,"close":22967.39589438958,"volume":296785.900615876,"volumeNotional":6816399275.317785,"tradesDone":6863165.0},{"date":"2023-02-09T00:00:00+00:00","open":22966.23326482415,"high":23015.73874123728,"low":21692.99680676366,"close":21806.785634220563,"volume":437322.539375191,"volumeNotional":9536598869.16777,"tradesDone":8646010.0},{"date":"2023-02-10T00:00:00+00:00","open":21808.339830547367,"high":21956.961142582437,"low":21458.412880304477,"close":21629.589423115016,"volume":361572.229258134,"volumeNotional":7820658865.653852,"tradesDone":6343721.0},{"date":"2023-02-11T00:00:00+00:00","open":21629.56994239977,"high":21912.57758626528,"low":21606.285495750766,"close":21868.469120508347,"volume":185398.990533929,"volumeNotional":4054392099.464646,"tradesDone":3717975.0},{"date":"2023-02-12T00:00:00+00:00","open":21868.92047543776,"high":22094.33927435566,"low":21635.239865646385,"close":21785.92248542488,"volume":215986.308771281,"volumeNotional":4705460980.804172,"tradesDone":4028782.0},{"date":"2023-02-13T00:00:00+00:00","open":21784.961342118844,"high":21901.667037425694,"low":21364.02496161614,"close":21789.100791446246,"volume":321054.7047442801,"volumeNotional":6995493321.241134,"tradesDone":5795945.0},{"date":"2023-02-14T00:00:00+00:00","open":21789.813889905905,"high":22334.904152432726,"low":21548.09009000796,"close":22200.10689875198,"volume":388077.974555726,"volumeNotional":8615372520.188267,"tradesDone":6677024.0},{"date":"2023-02-15T00:00:00+00:00","open":22200.25645853632,"high":24384.62829397166,"low":22053.983193218235,"close":24331.147433807317,"volume":414707.982965513,"volumeNotional":10090321075.51075,"tradesDone":7527313.0},{"date":"2023-02-16T00:00:00+00:00","open":24330.07392682627,"high":25231.587838856147,"low":23494.70937538958,"close":23506.73478761036,"volume":494987.637211754,"volumeNotional":11635543111.082594,"tradesDone":10017567.0},{"date":"2023-02-17T00:00:00+00:00","open":23506.500363758303,"high":25023.454206492523,"low":23333.031972129258,"close":24579.63020419649,"volume":535465.0397492789,"volumeNotional":13161532664.312649,"tradesDone":9876808.0},{"date":"2023-02-18T00:00:00+00:00","open":24578.04586250838,"high":24884.206935482573,"low":24431.85754839516,"close":24636.835983572786,"volume":226346.40309056902,"volumeNotional":5576459208.414001,"tradesDone":5587301.0},{"date":"2023-02-19T00:00:00+00:00","open":24636.960781383248,"high":25192.516211187314,"low":24197.513424917393,"close":24279.314507001585,"volume":319962.408439316,"volumeNotional":7768467944.915851,"tradesDone":6819798.0},{"date":"2023-02-20T00:00:00+00:00","open":24279.82212524917,"high":25121.10976908513,"low":23847.92533372801,"close":24844.512855441255,"volume":370089.7517008561,"volumeNotional":9194699593.79898,"tradesDone":8912465.0},{"date":"2023-02-21T00:00:00+00:00","open":24845.961542510562,"high":25253.691856111283,"low":24153.678570217904,"close":24456.85051691342,"volume":408337.32267434703,"volumeNotional":9986644861.123146,"tradesDone":9645034.0},{"date":"2023-02-22T00:00:00+00:00","open":24455.532273815614,"high":24487.54482763843,"low":23579.58845207356,"close":24190.23629090606,"volume":412202.607884278,"volumeNotional":9971278484.448383,"tradesDone":10006318.0},{"date":"2023-02-23T00:00:00+00:00","open":24189.261865227578,"high":24603.99633281332,"low":23612.852511785713,"close":23942.64086692768,"volume":429154.11443397193,"volumeNotional":10275082838.456974,"tradesDone":9578353.0},{"date":"2023-02-24T00:00:00+00:00","open":23942.8014480139,"high":24131.65220176608,"low":22821.76108661926,"close":23187.7594074938,"volume":378410.5775526979,"volumeNotional":8774493429.542732,"tradesDone":8872408.0},{"date":"2023-02-25T00:00:00+00:00","open":23186.532860926316,"high":23223.65221829308,"low":22727.54442118508,"close":23161.79691640286,"volume":203126.375823149,"volumeNotional":4704771865.1807,"tradesDone":5788856.0},{"date":"2023-02-26T00:00:00+00:00","open":23161.794958186474,"high":23698.716825376534,"low":23059.296256018395,"close":23557.24304450421,"volume":214691.089723741,"volumeNotional":5057530180.111627,"tradesDone":6187090.0},{"date":"2023-02-27T00:00:00+00:00","open":23557.238213359717,"high":23899.96014698971,"low":23102.92724625777,"close":23491.09651011545,"volume":306302.1805658,"volumeNotional":7195374084.9300165,"tradesDone":8383090.0},{"date":"2023-02-28T00:00:00+00:00","open":23492.04498127966,"high":23600.002394182917,"low":23021.69308328172,"close":23143.86643650886,"volume":280682.00044089096,"volumeNotional":6496066729.336101,"tradesDone":7350756.0},{"date":"2023-03-01T00:00:00+00:00","open":23144.27814122816,"high":23999.76013244346,"low":23020.584899482204,"close":23633.620866618927,"volume":337141.683397634,"volumeNotional":7967878723.753355,"tradesDone":8204359.0},{"date":"2023-03-02T00:00:00+00:00","open":23634.45572366933,"high":23803.56478707363,"low":23193.889885658158,"close":23465.50232382252,"volume":256409.812836994,"volumeNotional":6016785058.97738,"tradesDone":6713059.0},{"date":"2023-03-03T00:00:00+00:00","open":23465.668271156672,"high":23479.360293301717,"low":21980.487424792944,"close":22355.051813818725,"volume":354871.338496905,"volumeNotional":7933167159.337515,"tradesDone":7529497.0},{"date":"2023-03-04T00:00:00+00:00","open":22354.712279160834,"high":22413.38098047793,"low":22162.598529893046,"close":22348.10163881476,"volume":126410.68585299602,"volumeNotional":2825038855.675038,"tradesDone":3669199.0},{"date":"2023-03-05T00:00:00+00:00","open":22348.557517145302,"high":22663.786358985504,"low":22189.803438091967,"close":22433.141901199633,"volume":164977.92274369,"volumeNotional":3700973151.474348,"tradesDone":4365140.0},{"date":"2023-03-06T00:00:00+00:00","open":22432.42079890968,"high":22604.158075918673,"low":22260.755639498268,"close":22407.856206357712,"volume":220051.03349124696,"volumeNotional":4930871916.532267,"tradesDone":5579208.0},{"date":"2023-03-07T00:00:00+00:00","open":22407.78544494383,"high":22557.75346609151,"low":21925.38651659266,"close":22196.01333077293,"volume":312923.36840575404,"volumeNotional":6945651256.644485,"tradesDone":6805051.0},{"date":"2023-03-08T00:00:00+00:00","open":22196.516231385245,"high":22286.67148021186,"low":21576.22476428865,"close":21701.066618080036,"volume":324288.55411497195,"volumeNotional":7037407516.329859,"tradesDone":7199547.0},{"date":"2023-03-09T00:00:00+00:00","open":21700.130678069694,"high":21828.4485783622,"low":20033.532707329286,"close":20358.80594538473,"volume":469177.988154495,"volumeNotional":9551903614.68338,"tradesDone":9012340.0},{"date":"2023-03-10T00:00:00+00:00","open":20359.015298201055,"high":20364.28409489808,"low":19550.79323447636,"close":20217.025364156147,"volume":607665.151521093,"volumeNotional":12285181781.215725,"tradesDone":10043791.0},{"date":"2023-03-11T00:00:00+00:00","open":20216.013994410965,"high":20885.787417853026,"low":19887.294073306668,"close":20608.31095556546,"volume":433044.25016966,"volumeNotional":8924310565.016033,"tradesDone":8816837.0},{"date":"2023-03-12T00:00:00+00:00","open":20607.832859580714,"high":22336.149681645147,"low":20431.527006945962,"close":22192.69281286857,"volume":473717.985748779,"volumeNotional":10513077737.653503,"tradesDone":8901607.0},{"date":"2023-03-13T00:00:00+00:00","open":22193.987921282795,"high":24623.733257081625,"low":21885.82323429922,"close":24187.655049850575,"volume":755439.36759096,"volumeNotional":18272306834.36741,"tradesDone":13707875.0},{"date":"2023-03-14T00:00:00+00:00","open":24186.731084713705,"high":26498.513239674518,"low":24039.102900934104,"close":24734.138121488864,"volume":778704.6162816129,"volumeNotional":19260587534.9504,"tradesDone":14163547.0},{"date":"2023-03-15T00:00:00+00:00","open":24733.515542517143,"high":25311.99304916627,"low":23932.543907568026,"close":24382.07161143555,"volume":637435.3612997518,"volumeNotional":15541994626.871841,"tradesDone":11908088.0},{"date":"2023-03-16T00:00:00+00:00","open":24382.048799054122,"high":25208.935406751192,"low":24203.02849180725,"close":25030.48921556089,"volume":480833.26540094096,"volumeNotional":12035491864.101181,"tradesDone":9792622.0},{"date":"2023-03-17T00:00:00+00:00","open":25030.814468696008,"high":27830.562262254385,"low":24910.982306554783,"close":27446.279838770355,"volume":696402.6093887371,"volumeNotional":19113660897.733162,"tradesDone":12506946.0},{"date":"2023-03-18T00:00:00+00:00","open":27446.866546782778,"high":27781.46442110656,"low":26653.825538874808,"close":26982.051577725462,"volume":405178.53545737796,"volumeNotional":10932548141.898237,"tradesDone":9478941.0},{"date":"2023-03-19T00:00:00+00:00","open":26981.87986819447,"high":28478.71097386288,"low":26891.905934720326,"close":28050.330386850223,"volume":407187.529512644,"volumeNotional":11421744732.23499,"tradesDone":9220811.0},{"date":"2023-03-20T00:00:00+00:00","open":28051.118058643577,"high":28568.40049592391,"low":27216.594834584925,"close":27798.536291386794,"volume":525578.2631171329,"volumeNotional":14610306421.225657,"tradesDone":11461901.0},{"date":"2023-03-21T00:00:00+00:00","open":27798.3081589649,"high":28517.532566468268,"low":27403.888624347812,"close":28197.93305049566,"volume":452952.937069486,"volumeNotional":12772336594.51074,"tradesDone":11028812.0},{"date":"2023-03-22T00:00:00+00:00","open":28198.416014978484,"high":28891.57656419918,"low":26670.92195447159,"close":27314.896197671238,"volume":285080.68233111,"volumeNotional":7786949245.835559,"tradesDone":3962082.0},{"date":"2023-03-23T00:00:00+00:00","open":27314.60316990628,"high":28785.648117353863,"low":27185.628461519915,"close":28352.68633491559,"volume":178047.573365239,"volumeNotional":5048127000.3174925,"tradesDone":2708870.0},{"date":"2023-03-24T00:00:00+00:00","open":28353.33311100366,"high":28430.37142628591,"low":27049.98379295986,"close":27492.777830911058,"volume":113222.070595023,"volumeNotional":3112789232.424695,"tradesDone":1906189.0},{"date":"2023-03-25T00:00:00+00:00","open":27493.125286740007,"high":27851.600766038853,"low":27186.682682331964,"close":27492.53961942098,"volume":69834.353792928,"volumeNotional":1919923738.4487348,"tradesDone":1389686.0},{"date":"2023-03-26T00:00:00+00:00","open":27491.960826601942,"high":28227.84618347879,"low":27448.148946565314,"close":27995.420380192507,"volume":70316.739717935,"volumeNotional":1968546688.1681693,"tradesDone":1388686.0},{"date":"2023-03-27T00:00:00+00:00","open":27995.87566058183,"high":28049.44273343421,"low":26527.468611635708,"close":27146.81184455866,"volume":122776.79240064991,"volumeNotional":3332998482.1788826,"tradesDone":1954887.0},{"date":"2023-03-28T00:00:00+00:00","open":27146.892507791785,"high":27534.93745888457,"low":26664.19516746953,"close":27281.456202201356,"volume":106381.114770002,"volumeNotional":2902231723.339165,"tradesDone":2018099.0},{"date":"2023-03-29T00:00:00+00:00","open":27281.696342306175,"high":28656.79795532486,"low":27256.464858025658,"close":28359.403692552256,"volume":125638.37105392481,"volumeNotional":3563029283.9929256,"tradesDone":2278145.0},{"date":"2023-03-30T00:00:00+00:00","open":28359.58817500611,"high":29189.82244560705,"low":27708.593117492306,"close":28043.67866711094,"volume":142451.4687043699,"volumeNotional":3994863214.0033603,"tradesDone":2467444.0},{"date":"2023-03-31T00:00:00+00:00","open":28043.621161111594,"high":28660.65978578988,"low":27523.643876505976,"close":28477.839146521797,"volume":112214.00252795599,"volumeNotional":3195612313.978521,"tradesDone":1981453.0},{"date":"2023-04-01T00:00:00+00:00","open":28477.905325187417,"high":28826.764796371815,"low":28233.755997156444,"close":28467.52709041305,"volume":43822.84443634101,"volumeNotional":1247528011.1704943,"tradesDone":1087709.0},{"date":"2023-04-02T00:00:00+00:00","open":28467.092297308955,"high":28543.025888069165,"low":27870.760616689717,"close":28189.1954953179,"volume":51730.560743851995,"volumeNotional":1458242889.8908617,"tradesDone":1150207.0},{"date":"2023-04-03T00:00:00+00:00","open":28189.388861355168,"high":28514.89738857829,"low":27236.953917904593,"close":27813.068652742673,"volume":114956.22506374688,"volumeNotional":3197285379.75813,"tradesDone":2029381.0},{"date":"2023-04-04T00:00:00+00:00","open":27812.232569697495,"high":28447.977603275915,"low":27666.683963937794,"close":28179.550977743347,"volume":75262.597812757,"volumeNotional":2120866211.7819808,"tradesDone":1448132.0},{"date":"2023-04-05T00:00:00+00:00","open":28178.620174199867,"high":28790.93640051994,"low":27826.742800553253,"close":28182.40014485109,"volume":89303.4162063269,"volumeNotional":2516784609.8288846,"tradesDone":1600226.0},{"date":"2023-04-06T00:00:00+00:00","open":28181.226809797674,"high":28197.726297182675,"low":27722.80454397576,"close":28050.389287798567,"volume":60027.9693645,"volumeNotional":1683807908.8302715,"tradesDone":1254152.0},{"date":"2023-04-07T00:00:00+00:00","open":28049.129848845587,"high":28119.83006175765,"low":27779.958930234556,"close":27922.12348951081,"volume":36082.033404931,"volumeNotional":1007486992.4851375,"tradesDone":935208.0},{"date":"2023-04-08T00:00:00+00:00","open":27925.471526652775,"high":28172.54241430878,"low":27876.380087775582,"close":27956.293725887004,"volume":26598.338776819997,"volumeNotional":743590971.4654299,"tradesDone":804911.0},{"date":"2023-04-09T00:00:00+00:00","open":27956.573935229786,"high":28548.688569693295,"low":27817.042769722506,"close":28342.495064276176,"volume":44545.56860263101,"volumeNotional":1262532558.255445,"tradesDone":945568.0},{"date":"2023-04-10T00:00:00+00:00","open":28342.43055809878,"high":29779.67080827219,"low":28179.520213701635,"close":29656.61244743198,"volume":97128.765063421,"volumeNotional":2880510142.9835477,"tradesDone":1573253.0},{"date":"2023-04-11T00:00:00+00:00","open":29654.745199677203,"high":30557.198540379464,"low":29607.81561929335,"close":30225.469359186805,"volume":102481.52329064399,"volumeNotional":3097552142.104149,"tradesDone":1764534.0},{"date":"2023-04-12T00:00:00+00:00","open":30225.72508003706,"high":30504.601472108952,"low":29665.183850285972,"close":29911.02891865836,"volume":88613.49615458502,"volumeNotional":2650520846.0632143,"tradesDone":1596619.0},{"date":"2023-04-13T00:00:00+00:00","open":29911.141658694414,"high":30624.794090043593,"low":29875.267309562558,"close":30404.18681745729,"volume":75353.70665377901,"volumeNotional":2291068174.4893713,"tradesDone":1428219.0},{"date":"2023-04-14T00:00:00+00:00","open":30405.125538135544,"high":31034.785606224243,"low":29995.595089877344,"close":30495.442509464345,"volume":111628.49694776098,"volumeNotional":3404160411.0883613,"tradesDone":1952515.0},{"date":"2023-04-15T00:00:00+00:00","open":30495.835509853812,"high":30617.760587500758,"low":30232.21078718001,"close":30324.025972602365,"volume":36559.415698781995,"volumeNotional":1108628671.1930318,"tradesDone":1014796.0},{"date":"2023-04-16T00:00:00+00:00","open":30323.057441695695,"high":30577.531689790554,"low":30154.372637969736,"close":30328.186035822226,"volume":39591.095855641004,"volumeNotional":1200726120.4719508,"tradesDone":931312.0},{"date":"2023-04-17T00:00:00+00:00","open":30328.46552367096,"high":30346.16421998582,"low":29259.615981469815,"close":29448.489131984712,"volume":80986.505868898,"volumeNotional":2384930237.917659,"tradesDone":1381824.0},{"date":"2023-04-18T00:00:00+00:00","open":29448.619649516146,"high":30500.077279004283,"low":29116.796212942845,"close":30395.098257947626,"volume":87379.820628146,"volumeNotional":2655918233.7543364,"tradesDone":1438908.0},{"date":"2023-04-19T00:00:00+00:00","open":30395.16846215601,"high":30432.61094176216,"low":28567.995115067748,"close":28837.519850419303,"volume":124291.059136961,"volumeNotional":3584245885.0917525,"tradesDone":2064860.0},{"date":"2023-04-20T00:00:00+00:00","open":28838.508789484225,"high":29108.99807458294,"low":28005.488361156542,"close":28265.954795955946,"volume":106434.8614682109,"volumeNotional":3008482982.9742827,"tradesDone":1743454.0},{"date":"2023-04-21T00:00:00+00:00","open":28262.11974001594,"high":28380.135302684113,"low":27522.026597208638,"close":27715.097450066816,"volume":69773.45753696091,"volumeNotional":1933778175.0649705,"tradesDone":1185713.0},{"date":"2023-04-22T00:00:00+00:00","open":27263.391881269803,"high":27897.267786210876,"low":27141.596883538572,"close":27824.698633288474,"volume":12400.066247519999,"volumeNotional":345028106.3700562,"tradesDone":347581.0},{"date":"2023-04-23T00:00:00+00:00","open":27826.59679673722,"high":27826.602068722957,"low":27340.997971129862,"close":27599.502225204586,"volume":13307.54968058,"volumeNotional":367281747.02118826,"tradesDone":346658.0},{"date":"2023-04-24T00:00:00+00:00","open":27599.621634474883,"high":28005.278188531087,"low":26969.491026015952,"close":27525.23964615514,"volume":23992.601999789997,"volumeNotional":660402119.7790407,"tradesDone":480639.0},{"date":"2023-04-25T00:00:00+00:00","open":27523.69657396147,"high":28411.067894674634,"low":27199.679087188597,"close":28310.70962548191,"volume":22104.650063540004,"volumeNotional":625798329.3217714,"tradesDone":508476.0},{"date":"2023-04-26T00:00:00+00:00","open":28310.715696425294,"high":30046.94055832169,"low":27241.41319681689,"close":28430.996052002098,"volume":54794.776898359996,"volumeNotional":1557870085.6676087,"tradesDone":834063.0},{"date":"2023-04-27T00:00:00+00:00","open":28434.628926772093,"high":29902.782139278817,"low":28393.613034007954,"close":29487.236634049434,"volume":44510.0519411,"volumeNotional":1312478434.181047,"tradesDone":759196.0},{"date":"2023-04-28T00:00:00+00:00","open":29486.731825257353,"high":29608.814453889314,"low":28906.43362397016,"close":29341.341111277394,"volume":23478.47756923,"volumeNotional":688890019.1322523,"tradesDone":521039.0},{"date":"2023-04-29T00:00:00+00:00","open":29340.749529400142,"high":29473.660631063864,"low":29062.075256318374,"close":29252.946894678757,"volume":8090.212709180001,"volumeNotional":236662562.74829772,"tradesDone":282658.0},{"date":"2023-04-30T00:00:00+00:00","open":29253.783344011357,"high":29974.598381346354,"low":29107.38104905114,"close":29253.429147353683,"volume":14291.112259460002,"volumeNotional":418064039.9189908,"tradesDone":352101.0},{"date":"2023-05-01T00:00:00+00:00","open":29247.47953069144,"high":29352.1852811805,"low":27671.833637914755,"close":28087.66078391997,"volume":30373.589957109998,"volumeNotional":853123091.5051839,"tradesDone":609569.0},{"date":"2023-05-02T00:00:00+00:00","open":28087.902753940016,"high":28909.88961857747,"low":27890.097757422976,"close":28701.565610101043,"volume":22091.20594578,"volumeNotional":634052196.8590589,"tradesDone":560143.0},{"date":"2023-05-03T00:00:00+00:00","open":28704.26371631166,"high":29283.411816217427,"low":28137.263985393343,"close":29048.476020954815,"volume":27598.15038133,"volumeNotional":801684209.5747695,"tradesDone":621582.0},{"date":"2023-05-04T00:00:00+00:00","open":29048.255579948236,"high":29393.889437573434,"low":28685.527053446334,"close":28875.94775363128,"volume":18918.530587769998,"volumeNotional":546290500.8279217,"tradesDone":477635.0},{"date":"2023-05-05T00:00:00+00:00","open":28873.201416660264,"high":29717.353487988858,"low":28814.370750031427,"close":29552.746275608606,"volume":24331.01272661,"volumeNotional":719048245.7381092,"tradesDone":543637.0},{"date":"2023-05-06T00:00:00+00:00","open":29555.801043590734,"high":29867.763769028694,"low":28421.402957684157,"close":28970.22784016688,"volume":15712.83635088,"volumeNotional":455204449.10024995,"tradesDone":404158.0},{"date":"2023-05-07T00:00:00+00:00","open":28965.276678162198,"high":29243.84742076087,"low":28565.865042788984,"close":28696.722203602185,"volume":9987.49573574,"volumeNotional":286608390.6381922,"tradesDone":310619.0},{"date":"2023-05-08T00:00:00+00:00","open":28472.541377523143,"high":28675.263918379515,"low":27282.739121348808,"close":27695.29097613682,"volume":19715.42092036,"volumeNotional":546024319.1063855,"tradesDone":454006.0},{"date":"2023-05-09T00:00:00+00:00","open":27693.557653515818,"high":27837.148489330437,"low":27367.338185714238,"close":27647.14135749171,"volume":11886.394124100001,"volumeNotional":328624818.57985157,"tradesDone":326762.0},{"date":"2023-05-10T00:00:00+00:00","open":27647.929683865335,"high":28335.057311092238,"low":26803.82655311878,"close":27623.148526039015,"volume":23298.802386069998,"volumeNotional":643586278.7892437,"tradesDone":403650.0},{"date":"2023-05-11T00:00:00+00:00","open":27621.319171040424,"high":27651.261883478175,"low":26713.825715273088,"close":26989.29358627093,"volume":17071.37896,"volumeNotional":460744458.67392844,"tradesDone":363044.0},{"date":"2023-05-12T00:00:00+00:00","open":26987.750999734784,"high":27101.05092687869,"low":25816.344886340754,"close":26808.83648070762,"volume":23175.62035248,"volumeNotional":621311416.3685958,"tradesDone":442896.0},{"date":"2023-05-13T00:00:00+00:00","open":26808.573459713167,"high":27065.32502367204,"low":26700.990076284368,"close":26788.95717195767,"volume":5978.35866155,"volumeNotional":160153994.14286512,"tradesDone":222213.0},{"date":"2023-05-14T00:00:00+00:00","open":26787.70541614048,"high":27217.80454267041,"low":26584.98549063506,"close":26929.750351193816,"volume":5325.23155407,"volumeNotional":143407156.31340498,"tradesDone":216690.0},{"date":"2023-05-15T00:00:00+00:00","open":26929.856052445924,"high":27678.363087021284,"low":26739.767346563985,"close":27172.140952780337,"volume":14778.894882440001,"volumeNotional":401574214.8719837,"tradesDone":340076.0},{"date":"2023-05-16T00:00:00+00:00","open":27167.37180420204,"high":27304.486816110348,"low":26861.79601276833,"close":27038.70675406801,"volume":13401.24438209,"volumeNotional":362352316.9869329,"tradesDone":306961.0},{"date":"2023-05-17T00:00:00+00:00","open":27040.01868472971,"high":27516.069168144164,"low":26552.424937236,"close":27409.062924636062,"volume":17194.46485198,"volumeNotional":471284169.0833629,"tradesDone":328612.0},{"date":"2023-05-18T00:00:00+00:00","open":27409.553499459897,"high":27488.153460471985,"low":26365.38242974328,"close":26824.636480646677,"volume":16108.27923974,"volumeNotional":432098734.93477315,"tradesDone":327274.0},{"date":"2023-05-19T00:00:00+00:00","open":26820.999682086232,"high":27188.324159971864,"low":26634.591305349826,"close":26890.761192095222,"volume":9119.23955382,"volumeNotional":245223293.0952826,"tradesDone":266717.0},{"date":"2023-05-20T00:00:00+00:00","open":26890.796718191526,"high":27174.697399748005,"low":26837.657549591877,"close":27113.860537351844,"volume":3976.86769966,"volumeNotional":107828236.18408048,"tradesDone":168960.0},{"date":"2023-05-21T00:00:00+00:00","open":27114.704406744604,"high":27286.46917984799,"low":26670.045070663025,"close":26753.03816675353,"volume":6930.686227840001,"volumeNotional":185416913.1751966,"tradesDone":190327.0},{"date":"2023-05-22T00:00:00+00:00","open":26751.422279237282,"high":27105.811537252463,"low":26535.979585871653,"close":26855.41485048113,"volume":10058.69892581,"volumeNotional":270130532.50871646,"tradesDone":255036.0},{"date":"2023-05-23T00:00:00+00:00","open":26854.944218919427,"high":27502.248011734497,"low":26804.574850073415,"close":27224.00254892539,"volume":13529.55216089,"volumeNotional":368328562.51388836,"tradesDone":306007.0},{"date":"2023-05-24T00:00:00+00:00","open":27223.47150621644,"high":27225.56663765902,"low":26069.99356361116,"close":26323.143527303786,"volume":20340.303927930003,"volumeNotional":535420739.6838824,"tradesDone":361731.0},{"date":"2023-05-25T00:00:00+00:00","open":26323.16013830477,"high":26624.593469542837,"low":25866.18001135021,"close":26479.757462389596,"volume":14245.59330562,"volumeNotional":377219855.64065844,"tradesDone":310426.0},{"date":"2023-05-26T00:00:00+00:00","open":26480.37889292411,"high":26948.061915079623,"low":26336.790891938206,"close":26717.25710800466,"volume":12383.845352429998,"volumeNotional":330862380.26664084,"tradesDone":278847.0},{"date":"2023-05-27T00:00:00+00:00","open":26713.903175083964,"high":26934.43250818705,"low":26560.75062578429,"close":26869.686068549425,"volume":4345.55878206,"volumeNotional":116763800.26638019,"tradesDone":166510.0},{"date":"2023-05-28T00:00:00+00:00","open":26872.62671434272,"high":28274.59197224525,"low":26784.175033765834,"close":28075.96264143509,"volume":13205.203105560002,"volumeNotional":370748789.06426525,"tradesDone":257003.0},{"date":"2023-05-29T00:00:00+00:00","open":28074.02273842439,"high":28471.035133920494,"low":27537.401911366873,"close":27746.122340239403,"volume":13667.199090490001,"volumeNotional":379211778.01314425,"tradesDone":281796.0},{"date":"2023-05-30T00:00:00+00:00","open":27745.4370434407,"high":28056.471343790403,"low":27557.275664111574,"close":27700.88977281828,"volume":14133.71955223,"volumeNotional":391516607.3962498,"tradesDone":312104.0},{"date":"2023-05-31T00:00:00+00:00","open":27701.991855086773,"high":27844.222073245546,"low":26843.812147761822,"close":27222.163647614194,"volume":18281.035789470003,"volumeNotional":497649347.90884435,"tradesDone":355318.0},{"date":"2023-06-01T00:00:00+00:00","open":27221.91634087899,"high":27358.634040967616,"low":26614.083702803593,"close":26827.381582501104,"volume":14371.844910249998,"volumeNotional":385558967.451803,"tradesDone":350869.0},{"date":"2023-06-02T00:00:00+00:00","open":26826.88998267247,"high":27307.312997414876,"low":26507.710424894784,"close":27251.151462640217,"volume":14637.30025375,"volumeNotional":398883286.2190833,"tradesDone":342946.0},{"date":"2023-06-03T00:00:00+00:00","open":27252.733037080354,"high":27341.05910613207,"low":26924.580105079418,"close":27076.886752617964,"volume":4702.83227989,"volumeNotional":127338057.05913767,"tradesDone":186200.0},{"date":"2023-06-04T00:00:00+00:00","open":27077.725008848007,"high":27468.432085113214,"low":26960.673160533373,"close":27122.291618814626,"volume":5188.868145299999,"volumeNotional":140733995.00840434,"tradesDone":194052.0},{"date":"2023-06-05T00:00:00+00:00","open":27122.018337875525,"high":27135.91269814294,"low":25395.269396851225,"close":25737.608234366533,"volume":23068.073136000003,"volumeNotional":593717029.096083,"tradesDone":508512.0},{"date":"2023-06-06T00:00:00+00:00","open":25739.44609922973,"high":27367.30342715931,"low":25352.44191369581,"close":27242.45212263633,"volume":23623.905409249997,"volumeNotional":643573112.0611824,"tradesDone":492875.0}]}]' headers: - allow: + Allow: - GET, HEAD, OPTIONS - content-length: + Content-Length: - '35202' - content-type: + Content-Type: - application/json - date: - - Wed, 15 Nov 2023 18:05:34 GMT - server: + Date: + - Thu, 29 Feb 2024 04:25:59 GMT + Server: - nginx/1.18.0 (Ubuntu) - vary: + Vary: - Accept, Cookie, Origin x-frame-options: - SAMEORIGIN diff --git a/openbb_platform/providers/tiingo/tests/record/http/test_tiingo_fetchers/test_tiingo_currency_historical_fetcher.yaml b/openbb_platform/providers/tiingo/tests/record/http/test_tiingo_fetchers/test_tiingo_currency_historical_fetcher.yaml index 3e71853ea64..c52c5778263 100644 --- a/openbb_platform/providers/tiingo/tests/record/http/test_tiingo_fetchers/test_tiingo_currency_historical_fetcher.yaml +++ b/openbb_platform/providers/tiingo/tests/record/http/test_tiingo_fetchers/test_tiingo_currency_historical_fetcher.yaml @@ -3,28 +3,28 @@ interactions: body: null headers: Accept: - - '*/*' + - application/json Accept-Encoding: - - gzip, deflate, br + - gzip, deflate Connection: - keep-alive method: GET - uri: https://api.tiingo.com/tiingo/fx/prices?endDate=2023-06-06&resampleFreq=1day&startDate=2023-01-01&tickers=EURUSD&token=MOCK_TOKEN + uri: https://api.tiingo.com/tiingo/fx/prices?endDate=2023-06-06&resampleFreq=1Day&startDate=2023-01-01&tickers=EURUSD&token=MOCK_TOKEN response: body: string: '[{"date":"2023-01-01T00:00:00.000Z","ticker":"eurusd","open":1.070235,"high":1.070235,"low":1.070235,"close":1.070235},{"date":"2023-01-02T00:00:00.000Z","ticker":"eurusd","open":1.070595,"high":1.07094,"low":1.065015,"close":1.067685},{"date":"2023-01-03T00:00:00.000Z","ticker":"eurusd","open":1.06768,"high":1.06804,"low":1.051965,"close":1.05457},{"date":"2023-01-04T00:00:00.000Z","ticker":"eurusd","open":1.054575,"high":1.063555,"low":1.054555,"close":1.06063},{"date":"2023-01-05T00:00:00.000Z","ticker":"eurusd","open":1.060635,"high":1.063155,"low":1.051515,"close":1.052105},{"date":"2023-01-06T00:00:00.000Z","ticker":"eurusd","open":1.05211,"high":1.06483,"low":1.04827,"close":1.06439},{"date":"2023-01-08T00:00:00.000Z","ticker":"eurusd","open":1.064195,"high":1.0663,"low":1.063835,"close":1.066285},{"date":"2023-01-09T00:00:00.000Z","ticker":"eurusd","open":1.06629,"high":1.076065,"low":1.065175,"close":1.073295},{"date":"2023-01-10T00:00:00.000Z","ticker":"eurusd","open":1.07329,"high":1.075935,"low":1.071225,"close":1.07387},{"date":"2023-01-11T00:00:00.000Z","ticker":"eurusd","open":1.073865,"high":1.077655,"low":1.07257,"close":1.076555},{"date":"2023-01-12T00:00:00.000Z","ticker":"eurusd","open":1.07656,"high":1.086705,"low":1.073125,"close":1.085985},{"date":"2023-01-13T00:00:00.000Z","ticker":"eurusd","open":1.086005,"high":1.086805,"low":1.078055,"close":1.08336},{"date":"2023-01-15T00:00:00.000Z","ticker":"eurusd","open":1.083365,"high":1.0834,"low":1.082035,"close":1.082285},{"date":"2023-01-16T00:00:00.000Z","ticker":"eurusd","open":1.08229,"high":1.087435,"low":1.080165,"close":1.082985},{"date":"2023-01-17T00:00:00.000Z","ticker":"eurusd","open":1.08298,"high":1.086955,"low":1.07748,"close":1.078955},{"date":"2023-01-18T00:00:00.000Z","ticker":"eurusd","open":1.07896,"high":1.088755,"low":1.07662,"close":1.079755},{"date":"2023-01-19T00:00:00.000Z","ticker":"eurusd","open":1.079765,"high":1.084015,"low":1.07824,"close":1.083365},{"date":"2023-01-20T00:00:00.000Z","ticker":"eurusd","open":1.08337,"high":1.085905,"low":1.080245,"close":1.085645},{"date":"2023-01-22T00:00:00.000Z","ticker":"eurusd","open":1.0864,"high":1.086985,"low":1.08615,"close":1.086435},{"date":"2023-01-23T00:00:00.000Z","ticker":"eurusd","open":1.08643,"high":1.092705,"low":1.084635,"close":1.08715},{"date":"2023-01-24T00:00:00.000Z","ticker":"eurusd","open":1.08716,"high":1.08982,"low":1.08352,"close":1.089005},{"date":"2023-01-25T00:00:00.000Z","ticker":"eurusd","open":1.089015,"high":1.09238,"low":1.085735,"close":1.09209},{"date":"2023-01-26T00:00:00.000Z","ticker":"eurusd","open":1.092085,"high":1.092945,"low":1.085055,"close":1.08933},{"date":"2023-01-27T00:00:00.000Z","ticker":"eurusd","open":1.089335,"high":1.090045,"low":1.08378,"close":1.086915},{"date":"2023-01-29T00:00:00.000Z","ticker":"eurusd","open":1.08622,"high":1.087295,"low":1.08614,"close":1.087205},{"date":"2023-01-30T00:00:00.000Z","ticker":"eurusd","open":1.087195,"high":1.091395,"low":1.083925,"close":1.085005},{"date":"2023-01-31T00:00:00.000Z","ticker":"eurusd","open":1.08501,"high":1.087505,"low":1.08021,"close":1.086085},{"date":"2023-02-01T00:00:00.000Z","ticker":"eurusd","open":1.086075,"high":1.103335,"low":1.08524,"close":1.101285},{"date":"2023-02-02T00:00:00.000Z","ticker":"eurusd","open":1.10129,"high":1.10269,"low":1.088555,"close":1.09048},{"date":"2023-02-03T00:00:00.000Z","ticker":"eurusd","open":1.090475,"high":1.094015,"low":1.079275,"close":1.07941},{"date":"2023-02-05T00:00:00.000Z","ticker":"eurusd","open":1.079055,"high":1.07985,"low":1.078555,"close":1.078955},{"date":"2023-02-06T00:00:00.000Z","ticker":"eurusd","open":1.07894,"high":1.079895,"low":1.07094,"close":1.072915},{"date":"2023-02-07T00:00:00.000Z","ticker":"eurusd","open":1.07291,"high":1.076665,"low":1.066925,"close":1.073045},{"date":"2023-02-08T00:00:00.000Z","ticker":"eurusd","open":1.07305,"high":1.076085,"low":1.070955,"close":1.071555},{"date":"2023-02-09T00:00:00.000Z","ticker":"eurusd","open":1.071545,"high":1.07909,"low":1.070965,"close":1.073925},{"date":"2023-02-10T00:00:00.000Z","ticker":"eurusd","open":1.07393,"high":1.075285,"low":1.06664,"close":1.067705},{"date":"2023-02-12T00:00:00.000Z","ticker":"eurusd","open":1.06812,"high":1.06826,"low":1.06713,"close":1.067735},{"date":"2023-02-13T00:00:00.000Z","ticker":"eurusd","open":1.06774,"high":1.073245,"low":1.065565,"close":1.073115},{"date":"2023-02-14T00:00:00.000Z","ticker":"eurusd","open":1.073105,"high":1.08031,"low":1.070685,"close":1.073545},{"date":"2023-02-15T00:00:00.000Z","ticker":"eurusd","open":1.07354,"high":1.074465,"low":1.066065,"close":1.069155},{"date":"2023-02-16T00:00:00.000Z","ticker":"eurusd","open":1.069175,"high":1.072245,"low":1.065465,"close":1.066555},{"date":"2023-02-17T00:00:00.000Z","ticker":"eurusd","open":1.06656,"high":1.069845,"low":1.061285,"close":1.069415},{"date":"2023-02-19T00:00:00.000Z","ticker":"eurusd","open":1.068945,"high":1.06934,"low":1.068265,"close":1.068425},{"date":"2023-02-20T00:00:00.000Z","ticker":"eurusd","open":1.06843,"high":1.070475,"low":1.067045,"close":1.068245},{"date":"2023-02-21T00:00:00.000Z","ticker":"eurusd","open":1.06824,"high":1.069825,"low":1.06375,"close":1.065145},{"date":"2023-02-22T00:00:00.000Z","ticker":"eurusd","open":1.06514,"high":1.066415,"low":1.059925,"close":1.060555},{"date":"2023-02-23T00:00:00.000Z","ticker":"eurusd","open":1.060565,"high":1.062795,"low":1.05772,"close":1.05978},{"date":"2023-02-24T00:00:00.000Z","ticker":"eurusd","open":1.059775,"high":1.061445,"low":1.05362,"close":1.054585},{"date":"2023-02-26T00:00:00.000Z","ticker":"eurusd","open":1.05471,"high":1.055545,"low":1.05469,"close":1.055355},{"date":"2023-02-27T00:00:00.000Z","ticker":"eurusd","open":1.05535,"high":1.061995,"low":1.053315,"close":1.060975},{"date":"2023-02-28T00:00:00.000Z","ticker":"eurusd","open":1.060965,"high":1.06453,"low":1.057425,"close":1.057695},{"date":"2023-03-01T00:00:00.000Z","ticker":"eurusd","open":1.057705,"high":1.069165,"low":1.056545,"close":1.06688},{"date":"2023-03-02T00:00:00.000Z","ticker":"eurusd","open":1.066875,"high":1.067295,"low":1.057655,"close":1.059855},{"date":"2023-03-03T00:00:00.000Z","ticker":"eurusd","open":1.05985,"high":1.06387,"low":1.058855,"close":1.063405},{"date":"2023-03-05T00:00:00.000Z","ticker":"eurusd","open":1.06283,"high":1.06294,"low":1.062365,"close":1.062585},{"date":"2023-03-06T00:00:00.000Z","ticker":"eurusd","open":1.06259,"high":1.069445,"low":1.062235,"close":1.068565},{"date":"2023-03-07T00:00:00.000Z","ticker":"eurusd","open":1.06856,"high":1.069455,"low":1.054615,"close":1.05485},{"date":"2023-03-08T00:00:00.000Z","ticker":"eurusd","open":1.054855,"high":1.0574,"low":1.052455,"close":1.054915},{"date":"2023-03-09T00:00:00.000Z","ticker":"eurusd","open":1.05492,"high":1.059125,"low":1.053815,"close":1.058565},{"date":"2023-03-10T00:00:00.000Z","ticker":"eurusd","open":1.05857,"high":1.070065,"low":1.0574,"close":1.06399},{"date":"2023-03-12T00:00:00.000Z","ticker":"eurusd","open":1.068065,"high":1.07037,"low":1.06779,"close":1.06812},{"date":"2023-03-13T00:00:00.000Z","ticker":"eurusd","open":1.068125,"high":1.074865,"low":1.065045,"close":1.072305},{"date":"2023-03-14T00:00:00.000Z","ticker":"eurusd","open":1.07231,"high":1.074965,"low":1.067895,"close":1.072705},{"date":"2023-03-15T00:00:00.000Z","ticker":"eurusd","open":1.07271,"high":1.075995,"low":1.051625,"close":1.058185},{"date":"2023-03-16T00:00:00.000Z","ticker":"eurusd","open":1.05819,"high":1.063565,"low":1.055145,"close":1.06137},{"date":"2023-03-17T00:00:00.000Z","ticker":"eurusd","open":1.061375,"high":1.06853,"low":1.061175,"close":1.066485},{"date":"2023-03-19T00:00:00.000Z","ticker":"eurusd","open":1.068485,"high":1.06886,"low":1.06665,"close":1.068085},{"date":"2023-03-20T00:00:00.000Z","ticker":"eurusd","open":1.068095,"high":1.07309,"low":1.063135,"close":1.071875},{"date":"2023-03-21T00:00:00.000Z","ticker":"eurusd","open":1.07189,"high":1.078845,"low":1.070415,"close":1.07728},{"date":"2023-03-22T00:00:00.000Z","ticker":"eurusd","open":1.077275,"high":1.091255,"low":1.075915,"close":1.08691},{"date":"2023-03-23T00:00:00.000Z","ticker":"eurusd","open":1.086935,"high":1.092975,"low":1.082445,"close":1.08347},{"date":"2023-03-24T00:00:00.000Z","ticker":"eurusd","open":1.083475,"high":1.083725,"low":1.07137,"close":1.07587},{"date":"2023-03-26T00:00:00.000Z","ticker":"eurusd","open":1.077265,"high":1.07799,"low":1.07658,"close":1.077775},{"date":"2023-03-27T00:00:00.000Z","ticker":"eurusd","open":1.07776,"high":1.08079,"low":1.07451,"close":1.080645},{"date":"2023-03-28T00:00:00.000Z","ticker":"eurusd","open":1.080635,"high":1.084865,"low":1.08037,"close":1.08391},{"date":"2023-03-29T00:00:00.000Z","ticker":"eurusd","open":1.083925,"high":1.087125,"low":1.081835,"close":1.08428},{"date":"2023-03-30T00:00:00.000Z","ticker":"eurusd","open":1.084285,"high":1.09263,"low":1.08237,"close":1.090425},{"date":"2023-03-31T00:00:00.000Z","ticker":"eurusd","open":1.090415,"high":1.092585,"low":1.083705,"close":1.084245},{"date":"2023-04-02T00:00:00.000Z","ticker":"eurusd","open":1.084275,"high":1.08453,"low":1.080145,"close":1.080265},{"date":"2023-04-03T00:00:00.000Z","ticker":"eurusd","open":1.080295,"high":1.091665,"low":1.07883,"close":1.090695},{"date":"2023-04-04T00:00:00.000Z","ticker":"eurusd","open":1.090705,"high":1.097335,"low":1.08831,"close":1.095775},{"date":"2023-04-05T00:00:00.000Z","ticker":"eurusd","open":1.09579,"high":1.096965,"low":1.08911,"close":1.090315},{"date":"2023-04-06T00:00:00.000Z","ticker":"eurusd","open":1.09033,"high":1.09377,"low":1.08848,"close":1.091985},{"date":"2023-04-07T00:00:00.000Z","ticker":"eurusd","open":1.091995,"high":1.09241,"low":1.08764,"close":1.09031},{"date":"2023-04-09T00:00:00.000Z","ticker":"eurusd","open":1.090365,"high":1.091365,"low":1.090145,"close":1.09132},{"date":"2023-04-10T00:00:00.000Z","ticker":"eurusd","open":1.09134,"high":1.091725,"low":1.083145,"close":1.0869},{"date":"2023-04-11T00:00:00.000Z","ticker":"eurusd","open":1.086895,"high":1.0928,"low":1.086725,"close":1.09164},{"date":"2023-04-12T00:00:00.000Z","ticker":"eurusd","open":1.09165,"high":1.100035,"low":1.091485,"close":1.0997},{"date":"2023-04-13T00:00:00.000Z","ticker":"eurusd","open":1.099705,"high":1.106775,"low":1.097705,"close":1.10518},{"date":"2023-04-14T00:00:00.000Z","ticker":"eurusd","open":1.105195,"high":1.10758,"low":1.09725,"close":1.099455},{"date":"2023-04-16T00:00:00.000Z","ticker":"eurusd","open":1.09929,"high":1.09962,"low":1.098345,"close":1.098465},{"date":"2023-04-17T00:00:00.000Z","ticker":"eurusd","open":1.098455,"high":1.099975,"low":1.090925,"close":1.092465},{"date":"2023-04-18T00:00:00.000Z","ticker":"eurusd","open":1.092475,"high":1.0983,"low":1.092245,"close":1.097505},{"date":"2023-04-19T00:00:00.000Z","ticker":"eurusd","open":1.09751,"high":1.098415,"low":1.091745,"close":1.09519},{"date":"2023-04-20T00:00:00.000Z","ticker":"eurusd","open":1.095195,"high":1.098965,"low":1.093355,"close":1.09678},{"date":"2023-04-21T00:00:00.000Z","ticker":"eurusd","open":1.096755,"high":1.09938,"low":1.093815,"close":1.09895},{"date":"2023-04-24T00:00:00.000Z","ticker":"eurusd","open":1.102605,"high":1.105725,"low":1.102055,"close":1.105725},{"date":"2023-04-25T00:00:00.000Z","ticker":"eurusd","open":1.10572,"high":1.106715,"low":1.096435,"close":1.097815},{"date":"2023-04-26T00:00:00.000Z","ticker":"eurusd","open":1.09781,"high":1.109545,"low":1.096855,"close":1.104535},{"date":"2023-04-27T00:00:00.000Z","ticker":"eurusd","open":1.104525,"high":1.106355,"low":1.09922,"close":1.103175},{"date":"2023-04-28T00:00:00.000Z","ticker":"eurusd","open":1.103185,"high":1.104505,"low":1.096265,"close":1.10168},{"date":"2023-04-30T00:00:00.000Z","ticker":"eurusd","open":1.10229,"high":1.10231,"low":1.101015,"close":1.101075},{"date":"2023-05-01T00:00:00.000Z","ticker":"eurusd","open":1.101095,"high":1.10356,"low":1.09645,"close":1.096875},{"date":"2023-05-02T00:00:00.000Z","ticker":"eurusd","open":1.096885,"high":1.101395,"low":1.094225,"close":1.10109},{"date":"2023-05-03T00:00:00.000Z","ticker":"eurusd","open":1.101085,"high":1.10914,"low":1.1005,"close":1.106865},{"date":"2023-05-04T00:00:00.000Z","ticker":"eurusd","open":1.106875,"high":1.10916,"low":1.098625,"close":1.102305},{"date":"2023-05-05T00:00:00.000Z","ticker":"eurusd","open":1.102315,"high":1.104795,"low":1.096685,"close":1.10188},{"date":"2023-05-07T00:00:00.000Z","ticker":"eurusd","open":1.102015,"high":1.102385,"low":1.101445,"close":1.101835},{"date":"2023-05-08T00:00:00.000Z","ticker":"eurusd","open":1.10185,"high":1.105375,"low":1.099545,"close":1.099665},{"date":"2023-05-09T00:00:00.000Z","ticker":"eurusd","open":1.099645,"high":1.100085,"low":1.094125,"close":1.096475},{"date":"2023-05-10T00:00:00.000Z","ticker":"eurusd","open":1.09648,"high":1.100695,"low":1.094165,"close":1.098285},{"date":"2023-05-11T00:00:00.000Z","ticker":"eurusd","open":1.09828,"high":1.09982,"low":1.090025,"close":1.091255},{"date":"2023-05-12T00:00:00.000Z","ticker":"eurusd","open":1.091245,"high":1.09356,"low":1.084805,"close":1.084995},{"date":"2023-05-14T00:00:00.000Z","ticker":"eurusd","open":1.085515,"high":1.08559,"low":1.08424,"close":1.085295},{"date":"2023-05-15T00:00:00.000Z","ticker":"eurusd","open":1.085305,"high":1.08909,"low":1.08483,"close":1.087375},{"date":"2023-05-16T00:00:00.000Z","ticker":"eurusd","open":1.08738,"high":1.090465,"low":1.085515,"close":1.086555},{"date":"2023-05-17T00:00:00.000Z","ticker":"eurusd","open":1.08655,"high":1.087365,"low":1.081045,"close":1.083805},{"date":"2023-05-18T00:00:00.000Z","ticker":"eurusd","open":1.083795,"high":1.08481,"low":1.076265,"close":1.077515},{"date":"2023-05-19T00:00:00.000Z","ticker":"eurusd","open":1.077525,"high":1.082885,"low":1.076015,"close":1.08059},{"date":"2023-05-21T00:00:00.000Z","ticker":"eurusd","open":1.080745,"high":1.08243,"low":1.080695,"close":1.08221},{"date":"2023-05-22T00:00:00.000Z","ticker":"eurusd","open":1.082215,"high":1.083135,"low":1.07957,"close":1.081065},{"date":"2023-05-23T00:00:00.000Z","ticker":"eurusd","open":1.081085,"high":1.082065,"low":1.076045,"close":1.07694},{"date":"2023-05-24T00:00:00.000Z","ticker":"eurusd","open":1.076925,"high":1.080125,"low":1.074235,"close":1.075575},{"date":"2023-05-25T00:00:00.000Z","ticker":"eurusd","open":1.07558,"high":1.07558,"low":1.070745,"close":1.072365},{"date":"2023-05-26T00:00:00.000Z","ticker":"eurusd","open":1.072355,"high":1.075875,"low":1.070185,"close":1.072565},{"date":"2023-05-28T00:00:00.000Z","ticker":"eurusd","open":1.07239,"high":1.07294,"low":1.071845,"close":1.072175},{"date":"2023-05-29T00:00:00.000Z","ticker":"eurusd","open":1.072145,"high":1.074355,"low":1.070575,"close":1.070695},{"date":"2023-05-30T00:00:00.000Z","ticker":"eurusd","open":1.070665,"high":1.074665,"low":1.067265,"close":1.073185},{"date":"2023-05-31T00:00:00.000Z","ticker":"eurusd","open":1.073175,"high":1.073575,"low":1.063525,"close":1.069355},{"date":"2023-06-01T00:00:00.000Z","ticker":"eurusd","open":1.069365,"high":1.076855,"low":1.066195,"close":1.076065},{"date":"2023-06-02T00:00:00.000Z","ticker":"eurusd","open":1.07607,"high":1.077905,"low":1.070535,"close":1.07075},{"date":"2023-06-04T00:00:00.000Z","ticker":"eurusd","open":1.07093,"high":1.07103,"low":1.069395,"close":1.069705},{"date":"2023-06-05T00:00:00.000Z","ticker":"eurusd","open":1.069695,"high":1.07226,"low":1.067465,"close":1.071145},{"date":"2023-06-06T00:00:00.000Z","ticker":"eurusd","open":1.07115,"high":1.073295,"low":1.066715,"close":1.069875}]' headers: - allow: + Allow: - GET, HEAD, OPTIONS - content-length: + Content-Length: - '15623' - content-type: + Content-Type: - application/json - date: - - Wed, 15 Nov 2023 18:05:34 GMT - server: + Date: + - Thu, 29 Feb 2024 04:26:42 GMT + Server: - nginx/1.18.0 (Ubuntu) - vary: + Vary: - Accept, Cookie, Origin x-frame-options: - SAMEORIGIN diff --git a/openbb_platform/providers/tmx/openbb_tmx/__init__.py b/openbb_platform/providers/tmx/openbb_tmx/__init__.py index 63ffe49f201..4372506aa23 100644 --- a/openbb_platform/providers/tmx/openbb_tmx/__init__.py +++ b/openbb_platform/providers/tmx/openbb_tmx/__init__.py @@ -55,6 +55,7 @@ tmx_provider = Provider( "EtfHoldings": TmxEtfHoldingsFetcher, "EtfSectors": TmxEtfSectorsFetcher, "EtfCountries": TmxEtfCountriesFetcher, + "EtfHistorical": TmxEquityHistoricalFetcher, "EtfInfo": TmxEtfInfoFetcher, "EquityGainers": TmxGainersFetcher, "HistoricalDividends": TmxHistoricalDividendsFetcher, diff --git a/openbb_platform/providers/yfinance/openbb_yfinance/__init__.py b/openbb_platform/providers/yfinance/openbb_yfinance/__init__.py index dc8195cf4f4..ad777281871 100644 --- a/openbb_platform/providers/yfinance/openbb_yfinance/__init__.py +++ b/openbb_platform/providers/yfinance/openbb_yfinance/__init__.py @@ -12,7 +12,6 @@ from openbb_yfinance.models.currency_historical import YFinanceCurrencyHistorica from openbb_yfinance.models.equity_historical import YFinanceEquityHistoricalFetcher from openbb_yfinance.models.equity_profile import YFinanceEquityProfileFetcher from openbb_yfinance.models.equity_quote import YFinanceEquityQuoteFetcher -from openbb_yfinance.models.etf_historical import YFinanceEtfHistoricalFetcher from openbb_yfinance.models.etf_info import YFinanceEtfInfoFetcher from openbb_yfinance.models.futures_curve import YFinanceFuturesCurveFetcher from openbb_yfinance.models.futures_historical import YFinanceFuturesHistoricalFetcher @@ -62,7 +61,7 @@ yfinance_provider = Provider( "EquityQuote": YFinanceEquityQuoteFetcher, "EquityUndervaluedGrowth": YFUndervaluedGrowthEquitiesFetcher, "EquityUndervaluedLargeCaps": YFUndervaluedLargeCapsFetcher, - "EtfHistorical": YFinanceEtfHistoricalFetcher, + "EtfHistorical": YFinanceEquityHistoricalFetcher, "EtfInfo": YFinanceEtfInfoFetcher, "FuturesCurve": YFinanceFuturesCurveFetcher, "FuturesHistorical": YFinanceFuturesHistoricalFetcher, @@ -72,7 +71,7 @@ yfinance_provider = Provider( "IndexHistorical": YFinanceIndexHistoricalFetcher, "KeyExecutives": YFinanceKeyExecutivesFetcher, "KeyMetrics": YFinanceKeyMetricsFetcher, - "MarketIndices": YFinanceMarketIndicesFetcher, + "MarketIndices": YFinanceIndexHistoricalFetcher, "PriceTargetConsensus": YFinancePriceTargetConsensusFetcher, "ShareStatistics": YFinanceShareStatisticsFetcher, }, diff --git a/openbb_platform/providers/yfinance/openbb_yfinance/models/crypto_historical.py b/openbb_platform/providers/yfinance/openbb_yfinance/models/crypto_historical.py index 845b5215147..e6958bcf5cb 100644 --- a/openbb_platform/providers/yfinance/openbb_yfinance/models/crypto_historical.py +++ b/openbb_platform/providers/yfinance/openbb_yfinance/models/crypto_historical.py @@ -1,10 +1,11 @@ """Yahoo Finance Crypto Historical Price Model.""" +# pylint: disable=unused-argument # ruff: noqa: SIM105 -from datetime import datetime, timedelta -from typing import Any, Dict, List, Optional +from datetime import datetime +from typing import Any, Dict, List, Literal, Optional from dateutil.relativedelta import relativedelta from openbb_core.provider.abstract.fetcher import Fetcher @@ -15,8 +16,7 @@ from openbb_core.provider.standard_models.crypto_historical import ( from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS from openbb_core.provider.utils.errors import EmptyDataError from openbb_yfinance.utils.helpers import yf_download -from openbb_yfinance.utils.references import INTERVALS, PERIODS -from pandas import to_datetime +from openbb_yfinance.utils.references import INTERVALS_DICT from pydantic import Field @@ -28,9 +28,23 @@ class YFinanceCryptoHistoricalQueryParams(CryptoHistoricalQueryParams): __json_schema_extra__ = {"symbol": ["multiple_items_allowed"]} - interval: Optional[INTERVALS] = Field(default="1d", description="Data granularity.") - period: Optional[PERIODS] = Field( - default="max", description=QUERY_DESCRIPTIONS.get("period", "") + interval: Literal[ + "1m", + "2m", + "5m", + "15m", + "30m", + "60m", + "90m", + "1h", + "1d", + "5d", + "1W", + "1M", + "1Q", + ] = Field( + default="1d", + description=QUERY_DESCRIPTIONS.get("interval", ""), ) @@ -62,7 +76,7 @@ class YFinanceCryptoHistoricalFetcher( @staticmethod def extract_data( - query: YFinanceCryptoHistoricalQueryParams, # pylint: disable=unused-argument + query: YFinanceCryptoHistoricalQueryParams, credentials: Optional[Dict[str, str]], **kwargs: Any, ) -> List[Dict]: @@ -81,38 +95,17 @@ class YFinanceCryptoHistoricalFetcher( data = yf_download( symbols, - start=query.start_date, - end=query.end_date, - interval=query.interval, - period=query.period, + start_date=query.start_date, + end_date=query.end_date, + interval=INTERVALS_DICT.get(query.interval, "1d"), # type: ignore auto_adjust=False, actions=False, + prepost=True, ) if data.empty: raise EmptyDataError() - days = ( - 1 - if query.interval in ["1m", "2m", "5m", "15m", "30m", "60m", "1h", "90m"] - else 0 - ) - if query.start_date: - if "date" in data.columns: - data.set_index("date", inplace=True) - data.index = to_datetime(data.index) - - data = data[ - (data.index >= to_datetime(query.start_date)) - & (data.index <= to_datetime(query.end_date + timedelta(days=days))) - ] - - data.reset_index(inplace=True) - data.rename(columns={"index": "date"}, inplace=True) - - if query.interval in ["1d", "1W", "1M", "3M"]: - data["date"] = data["date"].dt.strftime("%Y-%m-%d") - return data.to_dict("records") @staticmethod diff --git a/openbb_platform/providers/yfinance/openbb_yfinance/models/currency_historical.py b/openbb_platform/providers/yfinance/openbb_yfinance/models/currency_historical.py index 749a6d1ebfd..1c93f165b1e 100644 --- a/openbb_platform/providers/yfinance/openbb_yfinance/models/currency_historical.py +++ b/openbb_platform/providers/yfinance/openbb_yfinance/models/currency_historical.py @@ -3,8 +3,8 @@ # ruff: noqa: SIM105 # pylint: disable=unused-argument -from datetime import datetime, timedelta -from typing import Any, Dict, List, Optional +from datetime import datetime +from typing import Any, Dict, List, Literal, Optional from dateutil.relativedelta import relativedelta from openbb_core.provider.abstract.fetcher import Fetcher @@ -15,8 +15,7 @@ from openbb_core.provider.standard_models.currency_historical import ( from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS from openbb_core.provider.utils.errors import EmptyDataError from openbb_yfinance.utils.helpers import yf_download -from openbb_yfinance.utils.references import INTERVALS, PERIODS -from pandas import to_datetime +from openbb_yfinance.utils.references import INTERVALS_DICT from pydantic import Field @@ -28,9 +27,23 @@ class YFinanceCurrencyHistoricalQueryParams(CurrencyHistoricalQueryParams): __json_schema_extra__ = {"symbol": ["multiple_items_allowed"]} - interval: Optional[INTERVALS] = Field(default="1d", description="Data granularity.") - period: Optional[PERIODS] = Field( - default="max", description=QUERY_DESCRIPTIONS.get("period", "") + interval: Literal[ + "1m", + "2m", + "5m", + "15m", + "30m", + "60m", + "90m", + "1h", + "1d", + "5d", + "1W", + "1M", + "1Q", + ] = Field( + default="1d", + description=QUERY_DESCRIPTIONS.get("interval", ""), ) @@ -78,37 +91,17 @@ class YFinanceCurrencyHistoricalFetcher( """Return the raw data from the Yahoo Finance endpoint.""" data = yf_download( query.symbol, - start=query.start_date, - end=query.end_date, - interval=query.interval, - period=query.period, + start_date=query.start_date, + end_date=query.end_date, + interval=INTERVALS_DICT.get(query.interval, "1d"), # type: ignore auto_adjust=False, actions=False, + prepost=True, ) if data.empty: raise EmptyDataError() - days = ( - 1 - if query.interval in ["1m", "2m", "5m", "15m", "30m", "60m", "1h", "90m"] - else 0 - ) - if query.start_date: - if "date" in data.columns: - data.set_index("date", inplace=True) - data.index = to_datetime(data.index) - - data = data[ - (data.index >= to_datetime(query.start_date)) - & (data.index <= to_datetime(query.end_date + timedelta(days=days))) - ] - - data.reset_index(inplace=True) - data.rename(columns={"index": "date"}, inplace=True) - if query.interval in ["1d", "1W", "1M", "3M"]: - data["date"] = data["date"].dt.strftime("%Y-%m-%d") - return data.to_dict("records") @staticmethod diff --git a/openbb_platform/providers/yfinance/openbb_yfinance/models/equity_historical.py b/openbb_platform/providers/yfinance/openbb_yfinance/models/equity_historical.py index bd6253fa92e..bf9dceecdb5 100644 --- a/openbb_platform/providers/yfinance/openbb_yfinance/models/equity_historical.py +++ b/openbb_platform/providers/yfinance/openbb_yfinance/models/equity_historical.py @@ -3,8 +3,9 @@ # pylint: disable=unused-argument # ruff: noqa: SIM105 -from datetime import datetime, timedelta +from datetime import datetime from typing import Any, Dict, List, Literal, Optional +from warnings import warn from dateutil.relativedelta import relativedelta from openbb_core.provider.abstract.fetcher import Fetcher @@ -15,9 +16,9 @@ from openbb_core.provider.standard_models.equity_historical import ( from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS from openbb_core.provider.utils.errors import EmptyDataError from openbb_yfinance.utils.helpers import yf_download -from openbb_yfinance.utils.references import PERIODS -from pandas import Timestamp, to_datetime -from pydantic import Field, PrivateAttr, field_validator +from openbb_yfinance.utils.references import INTERVALS_DICT, PERIODS +from pandas import DataFrame, Timestamp +from pydantic import Field, PrivateAttr, field_validator, model_validator class YFinanceEquityHistoricalQueryParams(EquityHistoricalQueryParams): @@ -28,47 +29,76 @@ class YFinanceEquityHistoricalQueryParams(EquityHistoricalQueryParams): __json_schema_extra__ = {"symbol": ["multiple_items_allowed"]} - interval: Optional[ - Literal[ - "1m", - "2m", - "5m", - "15m", - "30m", - "60m", - "90m", - "1h", - "1d", - "5d", - "1W", - "1M", - "3M", - ] + interval: Literal[ + "1m", + "2m", + "5m", + "15m", + "30m", + "60m", + "90m", + "1h", + "1d", + "5d", + "1W", + "1M", + "1Q", ] = Field( default="1d", description=QUERY_DESCRIPTIONS.get("interval", ""), ) - prepost: bool = Field( - default=False, description="Include Pre and Post market data." + extended_hours: bool = Field( + default=False, + description="Include Pre and Post market data.", ) - include: bool = Field( - default=True, description="Include Dividends and Stock Splits in results." + include_actions: bool = Field( + default=True, + description="Include dividends and stock splits in results.", + ) + adjustment: Literal["splits_only", "splits_and_dividends"] = Field( + default="splits_only", + description="The adjustment factor to apply. Default is splits only.", ) adjusted: bool = Field( default=False, - description="Adjust all OHLC data automatically.", + exclude=True, + description="This field is deprecated (4.1.5) and will be removed in a future version." + + " Use 'adjustment' set as 'splits_and_dividends' instead.", + json_schema_extra={"deprecated": True}, ) - ignore_tz: bool = Field( - default=True, - description="When combining from different timezones, ignore that part of datetime.", + prepost: bool = Field( + default=False, + exclude=True, + description="This field is deprecated (4.1.5) and will be removed in a future version." + + " Use 'extended_hours' as True instead.", + json_schema_extra={"deprecated": True}, ) + + _ignore_tz: bool = PrivateAttr(default=True) _progress: bool = PrivateAttr(default=False) _keepna: bool = PrivateAttr(default=False) - _period: Optional[PERIODS] = PrivateAttr(default="max") - _rounding: bool = PrivateAttr(default=True) + _period: PERIODS = PrivateAttr(default="max") + _rounding: bool = PrivateAttr(default=False) _repair: bool = PrivateAttr(default=False) _group_by: Literal["ticker", "column"] = PrivateAttr(default="ticker") + @model_validator(mode="before") + @classmethod + def validate_deprecated_params(cls, values): + """Validate the deprecated parameters.""" + for k, v in values.copy().items(): + if k in ["adjusted"] and v is True: + warn( + f"The '{k}' parameter is deprecated and will be removed in a future version." + ) + values["adjustment"] = "splits_and_dividends" + if k in ["prepost"] and v is True: + warn( + f"The '{k}' parameter is deprecated and will be removed in a future version." + ) + values["extended_hours"] = True + return values + class YFinanceEquityHistoricalData(EquityHistoricalData): """Yahoo Finance Equity Historical Price Data.""" @@ -122,74 +152,48 @@ class YFinanceEquityHistoricalFetcher( query: YFinanceEquityHistoricalQueryParams, credentials: Optional[Dict[str, str]], **kwargs: Any, - ) -> List[Dict]: + ) -> DataFrame: """Return the raw data from the Yahoo Finance endpoint.""" - if query.interval == "1W": - query.interval = "1wk" - elif query.interval == "1M": - query.interval = "1mo" - elif query.interval == "3M": - query.interval = "3mo" - kwargs = ( - {"auto_adjust": True, "back_adjust": True} if query.adjusted is True else {} - ) + adjusted = query.adjustment == "splits_and_dividends" + kwargs = {"auto_adjust": True, "back_adjust": True} if adjusted is True else {} # pylint: disable=protected-access data = yf_download( symbol=query.symbol, start_date=query.start_date, end_date=query.end_date, - interval=query.interval, + interval=INTERVALS_DICT[query.interval], # type: ignore period=query._period, - prepost=query.prepost, - actions=query.include, + prepost=query.extended_hours, + actions=query.include_actions, progress=query._progress, - ignore_tz=query.ignore_tz, + ignore_tz=query._ignore_tz, keepna=query._keepna, repair=query._repair, rounding=query._rounding, group_by=query._group_by, - adjusted=query.adjusted, + adjusted=adjusted, **kwargs, ) if data.empty: raise EmptyDataError() - query.end_date = ( - datetime.now().date() if query.end_date is None else query.end_date - ) - days = ( - 1 - if query.interval in ["1m", "2m", "5m", "15m", "30m", "60m", "1h", "90m"] - else 0 - ) - if query.start_date: - if "date" in data.columns: - data.set_index("date", inplace=True) - data.index = to_datetime(data.index) - - data = data[ - (data.index >= to_datetime(query.start_date)) - & (data.index <= to_datetime(query.end_date + timedelta(days=days))) - ] - - data.reset_index(inplace=True) - data.rename(columns={"index": "date"}, inplace=True) - if query.interval in ["1d", "1W", "1M", "3M"]: - data["date"] = data["date"].dt.strftime("%Y-%m-%d") - - if "dividends" in data.columns and data.dividends.sum() == 0: - data.drop(columns=["dividends"], inplace=True) - if "stock_splits" in data.columns and all(data.stock_splits) == 0: - data.drop(columns=["stock_splits"], inplace=True) - - return data.to_dict("records") + return data @staticmethod def transform_data( query: YFinanceEquityHistoricalQueryParams, - data: List[Dict], + data: DataFrame, **kwargs: Any, ) -> List[YFinanceEquityHistoricalData]: """Transform the data to the standard format.""" - return [YFinanceEquityHistoricalData.model_validate(d) for d in data] + if "capital_gains" in data.columns: + data = ( + data.drop(columns=["capital_gains"]) + if query.include_actions is False + else data + ) + return [ + YFinanceEquityHistoricalData.model_validate(d) + for d in data.to_dict("records") + ] diff --git a/openbb_platform/providers/yfinance/openbb_yfinance/models/futures_historical.py b/openbb_platform/providers/yfinance/openbb_yfinance/models/futures_historical.py index da1cb731ac5..55637fde0b7 100644 --- a/openbb_platform/providers/yfinance/openbb_yfinance/models/futures_historical.py +++ b/openbb_platform/providers/yfinance/openbb_yfinance/models/futures_historical.py @@ -3,8 +3,8 @@ # pylint: disable=unused-argument # ruff: noqa: SIM105 -from datetime import datetime, timedelta -from typing import Any, Dict, List, Optional +from datetime import datetime +from typing import Any, Dict, List, Literal, Optional from dateutil.relativedelta import relativedelta from openbb_core.provider.abstract.fetcher import Fetcher @@ -15,8 +15,8 @@ from openbb_core.provider.standard_models.futures_historical import ( from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS from openbb_core.provider.utils.errors import EmptyDataError from openbb_yfinance.utils.helpers import get_futures_data, yf_download -from openbb_yfinance.utils.references import INTERVALS, MONTHS, PERIODS -from pandas import Timestamp, to_datetime +from openbb_yfinance.utils.references import INTERVALS_DICT, MONTHS +from pandas import Timestamp from pydantic import Field, field_validator @@ -28,9 +28,23 @@ class YFinanceFuturesHistoricalQueryParams(FuturesHistoricalQueryParams): __json_schema_extra__ = {"symbol": ["multiple_items_allowed"]} - interval: Optional[INTERVALS] = Field(default="1d", description="Data granularity.") - period: Optional[PERIODS] = Field( - default=None, description=QUERY_DESCRIPTIONS.get("period", "") + interval: Literal[ + "1m", + "2m", + "5m", + "15m", + "30m", + "60m", + "90m", + "1h", + "1d", + "5d", + "1W", + "1M", + "1Q", + ] = Field( + default="1d", + description=QUERY_DESCRIPTIONS.get("interval", ""), ) @@ -112,7 +126,7 @@ class YFinanceFuturesHistoricalFetcher( query.symbol, start=query.start_date, end=query.end_date, - interval=query.interval, # type: ignore + interval=INTERVALS_DICT[query.interval], # type: ignore prepost=True, auto_adjust=False, actions=False, @@ -121,23 +135,6 @@ class YFinanceFuturesHistoricalFetcher( if data.empty: raise EmptyDataError() - days = ( - 1 - if query.interval in ["1m", "2m", "5m", "15m", "30m", "60m", "1h", "90m"] - else 0 - ) - if "date" in data.columns: - data.set_index("date", inplace=True) - data.index = to_datetime(data.index) - if query.start_date: - data = data[ - (data.index >= to_datetime(query.start_date)) - & (data.index <= to_datetime(query.end_date + timedelta(days=days))) - ] - - data.reset_index(inplace=True) - data.rename(columns={"index": "date"}, inplace=True) - return data.to_dict("records") @staticmethod diff --git a/openbb_platform/providers/yfinance/openbb_yfinance/models/index_historical.py b/openbb_platform/providers/yfinance/openbb_yfinance/models/index_historical.py index e78fd3f301f..ea1ea0d9fbb 100644 --- a/openbb_platform/providers/yfinance/openbb_yfinance/models/index_historical.py +++ b/openbb_platform/providers/yfinance/openbb_yfinance/models/index_historical.py @@ -3,8 +3,9 @@ # ruff: noqa: SIM105 # pylint: disable=unused-argument -from datetime import datetime, timedelta -from typing import Any, Dict, List, Optional +import warnings +from datetime import datetime +from typing import Any, Dict, List, Literal, Optional import pandas as pd from dateutil.relativedelta import relativedelta @@ -16,10 +17,11 @@ from openbb_core.provider.standard_models.index_historical import ( from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS from openbb_core.provider.utils.errors import EmptyDataError from openbb_yfinance.utils.helpers import yf_download -from openbb_yfinance.utils.references import INDICES, INTERVALS, PERIODS -from pandas import to_datetime +from openbb_yfinance.utils.references import INDICES, INTERVALS_DICT from pydantic import Field +_warn = warnings.warn + class YFinanceIndexHistoricalQueryParams(IndexHistoricalQueryParams): """YFinance Index Historical Query. @@ -29,12 +31,24 @@ class YFinanceIndexHistoricalQueryParams(IndexHistoricalQueryParams): __json_schema_extra__ = {"symbol": ["multiple_items_allowed"]} - interval: Optional[INTERVALS] = Field(default="1d", description="Data granularity.") - period: Optional[PERIODS] = Field( - default="max", description=QUERY_DESCRIPTIONS.get("period", "") + interval: Literal[ + "1m", + "2m", + "5m", + "15m", + "30m", + "60m", + "90m", + "1h", + "1d", + "5d", + "1W", + "1M", + "1Q", + ] = Field( + default="1d", + description=QUERY_DESCRIPTIONS.get("interval", ""), ) - prepost: bool = Field(default=True, description="Include Pre and Post market data.") - rounding: bool = Field(default=True, description="Round prices to two decimals?") class YFinanceIndexHistoricalData(IndexHistoricalData): @@ -61,7 +75,7 @@ class YFinanceIndexHistoricalFetcher( if params.get("end_date") is None: transformed_params["end_date"] = now - tickers = params.get("symbol").lower().split(",") + tickers = params.get("symbol").lower().split(",") # type: ignore new_tickers = [] for ticker in tickers: @@ -83,6 +97,8 @@ class YFinanceIndexHistoricalFetcher( if _ticker != "": new_tickers.append(_ticker) + else: + _warn(f"Symbol Error: {ticker} is not a supported index.") transformed_params["symbol"] = ",".join(new_tickers) @@ -99,36 +115,13 @@ class YFinanceIndexHistoricalFetcher( symbol=query.symbol, start_date=query.start_date, end_date=query.end_date, - interval=query.interval, - period=query.period, - prepost=query.prepost, - rounding=query.rounding, + interval=INTERVALS_DICT[query.interval], # type: ignore + prepost=True, ) if data.empty: raise EmptyDataError() - days = ( - 1 - if query.interval in ["1m", "2m", "5m", "15m", "30m", "60m", "1h", "90m"] - else 0 - ) - - if query.start_date: - if "date" in data.columns: - data.set_index("date", inplace=True) - data.index = to_datetime(data.index) - - data = data[ - (data.index >= to_datetime(query.start_date)) - & (data.index <= to_datetime(query.end_date + timedelta(days=days))) - ] - - data.reset_index(inplace=True) - data.rename(columns={"index": "date"}, inplace=True) - if query.interval in ["1d", "1W", "1M", "3M"]: - data["date"] = data["date"].dt.strftime("%Y-%m-%d") - return data.to_dict("records") @staticmethod diff --git a/openbb_platform/providers/yfinance/openbb_yfinance/utils/helpers.py b/openbb_platform/providers/yfinance/openbb_yfinance/utils/helpers.py index 79edb717334..dbc2ebe3c28 100644 --- a/openbb_platform/providers/yfinance/openbb_yfinance/utils/helpers.py +++ b/openbb_platform/providers/yfinance/openbb_yfinance/utils/helpers.py @@ -12,7 +12,7 @@ import pandas as pd import yfinance as yf from dateutil.relativedelta import relativedelta from openbb_core.provider.utils.errors import EmptyDataError -from openbb_yfinance.utils.references import MONTHS +from openbb_yfinance.utils.references import INTERVALS, MONTHS, PERIODS def get_futures_data() -> pd.DataFrame: @@ -84,8 +84,8 @@ def yf_download( symbol: str, start_date: Optional[Union[str, dateType]] = None, end_date: Optional[Union[str, dateType]] = None, - interval: str = "1d", - period: str = "max", + interval: INTERVALS = "1d", + period: PERIODS = "max", prepost: bool = False, actions: bool = False, progress: bool = False, @@ -93,7 +93,7 @@ def yf_download( keepna: bool = False, repair: bool = False, rounding: bool = False, - group_by: Literal["symbol", "column"] = "symbol", + group_by: Literal["ticker", "column"] = "ticker", adjusted: bool = False, **kwargs: Any, ) -> pd.DataFrame: @@ -143,29 +143,32 @@ def yf_download( _data = pd.DataFrame() for ticker in tickers: temp = data[ticker].copy().dropna(how="all") - for i in temp.index: - temp.loc[i, "symbol"] = ticker - temp = temp.reset_index().rename( - columns={"Date": "date", "Datetime": "date"} - ) - _data = pd.concat([_data, temp]) - index_keys = ["date", "symbol"] if "symbol" in _data.columns else ["date"] - _data = _data.set_index(index_keys).sort_index() - data = _data + if len(temp) > 0: + temp.loc[:, "symbol"] = ticker + temp = temp.reset_index().rename( + columns={"Date": "date", "Datetime": "date", "index": "date"} + ) + _data = pd.concat([_data, temp]) + if not _data.empty: + index_keys = ["date", "symbol"] if "symbol" in _data.columns else "date" + _data = _data.set_index(index_keys).sort_index() + data = _data if not data.empty: data = data.reset_index() data = data.rename(columns={"Date": "date", "Datetime": "date"}) - data["date"] = pd.to_datetime(data["date"]) + data["date"] = data["date"].apply(pd.to_datetime) data = data[data["Open"] > 0] if start_date is not None: data = data[data["date"] >= pd.to_datetime(start_date)] - if end_date is not None and pd.to_datetime(end_date) > pd.to_datetime( - start_date - ): - data = data[ - data["date"] <= (pd.to_datetime(end_date) + relativedelta(days=1)) - ] + if ( + end_date is not None + and start_date is not None + and pd.to_datetime(end_date) > pd.to_datetime(start_date) + ): + data = data[ + data["date"] <= (pd.to_datetime(end_date) + relativedelta(days=1)) + ] if period not in [ "max", diff --git a/openbb_platform/providers/yfinance/openbb_yfinance/utils/references.py b/openbb_platform/providers/yfinance/openbb_yfinance/utils/references.py index 4663f4fe5f9..59c96cfbcbf 100644 --- a/openbb_platform/providers/yfinance/openbb_yfinance/utils/references.py +++ b/openbb_platform/providers/yfinance/openbb_yfinance/utils/references.py @@ -3,9 +3,25 @@ from typing import Literal INTERVALS = Literal[ - "1m", "2m", "5m", "15m", "30m", "60m", "90m", "1h", "1d", "5d", "1wk", "1mo", "3mo" + "1m", "2m", "5m", "15m", "30m", "60m", "90m", "1h", "1d", "5d", "1W", "1M", "1Q" ] +INTERVALS_DICT = { + "1m": "1m", + "2m": "2m", + "5m": "5m", + "15m": "15m", + "30m": "30m", + "60m": "60m", + "90m": "90m", + "1h": "1h", + "1d": "1d", + "5d": "5d", + "1W": "1wk", + "1M": "1mo", + "1Q": "3mo", +} + PERIODS = Literal[ "1d", "5d", "1mo", "3mo", "6mo", "1y", "2y", "5y", "10y", "ytd", "max" ] diff --git a/openbb_platform/providers/yfinance/tests/record/http/test_yfinance_fetchers/test_y_finance_crypto_historical_fetcher.yaml b/openbb_platform/providers/yfinance/tests/record/http/test_yfinance_fetchers/test_y_finance_crypto_historical_fetcher.yaml index 95082322fef..485987ce8e8 100644 --- a/openbb_platform/providers/yfinance/tests/record/http/test_yfinance_fetchers/test_y_finance_crypto_historical_fetcher.yaml +++ b/openbb_platform/providers/yfinance/tests/record/http/test_yfinance_fetchers/test_y_finance_crypto_historical_fetcher.yaml @@ -5,7 +5,155 @@ interactions: Accept: - '*/*' Accept-Encoding: - - gzip, deflate, br + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://fc.yahoo.com/ + response: + body: + string: "\n\n \n \n \n Yahoo\n + \ \n + \ \n \n \n + \ \n \n \n \n + \ \n \n \n \n \n \n\n" + headers: + Cache-Control: + - no-store + Connection: + - keep-alive + Content-Language: + - en + Content-Length: + - '4342' + Content-Type: + - text/html + Date: + - Thu, 29 Feb 2024 18:53:11 GMT + Expect-CT: + - max-age=31536000, report-uri="http://csp.yahoo.com/beacon/csp?src=yahoocom-expect-ct-report-only" + Server: + - ATS + Set-Cookie: + - A3=d=AQABBJfS4GUCEPWhsZ66ffyYtcUhguRf9QIFEgEBAQEk4mXqZSXUxyMA_eMAAA&S=AQAAAtiMT9HBmA99jKqiX525ARU; + Expires=Sat, 1 Mar 2025 00:53:11 GMT; Max-Age=31557600; Domain=.yahoo.com; + Path=/; SameSite=None; Secure; HttpOnly + Strict-Transport-Security: + - max-age=31536000 + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + status: + code: 500 + message: Cannot find server. +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - MOCK_COOKIE + method: GET + uri: https://query1.finance.yahoo.com/v1/test/getcrumb + response: + body: + string: VrBo.ZBbspc + headers: + Age: + - '0' + Connection: + - keep-alive + Expect-CT: + - max-age=31536000, report-uri="http://csp.yahoo.com/beacon/csp?src=yahoocom-expect-ct-report-only" + Referrer-Policy: + - no-referrer-when-downgrade + Strict-Transport-Security: + - max-age=31536000 + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + cache-control: + - private + content-type: + - text/plain;charset=utf-8 + date: + - Thu, 29 Feb 2024 18:53:11 GMT + server: + - ATS + x-envoy-decorator-operation: + - finance-yql--mtls-default-production-gq1.finance-k8s.svc.yahoo.local:4080/* + x-envoy-upstream-service-time: + - '1' + x-frame-options: + - SAMEORIGIN + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate Connection: - keep-alive Cookie: @@ -14,7 +162,7 @@ interactions: uri: https://query2.finance.yahoo.com/v8/finance/chart/BTC-USD?crumb=MOCK_CRUMB&interval=1d&range=1d response: body: - string: '{"chart":{"result":[{"meta":{"currency":"USD","symbol":"BTC-USD","exchangeName":"CCC","instrumentType":"CRYPTOCURRENCY","firstTradeDate":1410912000,"regularMarketTime":1704714060,"gmtoffset":0,"timezone":"UTC","exchangeTimezoneName":"UTC","regularMarketPrice":44256.08,"chartPreviousClose":43948.707,"priceHint":2,"currentTradingPeriod":{"pre":{"timezone":"UTC","start":1704672000,"end":1704672000,"gmtoffset":0},"regular":{"timezone":"UTC","start":1704672000,"end":1704758340,"gmtoffset":0},"post":{"timezone":"UTC","start":1704758340,"end":1704758340,"gmtoffset":0}},"dataGranularity":"1d","range":"1d","validRanges":["1d","5d","1mo","3mo","6mo","1y","2y","5y","10y","ytd","max"]},"timestamp":[1704714060],"indicators":{"quote":[{"volume":[25173131264],"open":[43948.70703125],"low":[43306.7890625],"close":[44256.078125],"high":[44256.078125]}],"adjclose":[{"adjclose":[44256.078125]}]}}],"error":null}}' + string: '{"chart":{"result":[{"meta":{"currency":"USD","symbol":"BTC-USD","exchangeName":"CCC","instrumentType":"CRYPTOCURRENCY","firstTradeDate":1410912000,"regularMarketTime":1709232720,"hasPrePostMarketData":false,"gmtoffset":0,"timezone":"UTC","exchangeTimezoneName":"UTC","regularMarketPrice":60567.367,"chartPreviousClose":62499.184,"priceHint":2,"currentTradingPeriod":{"pre":{"timezone":"UTC","start":1709164800,"end":1709164800,"gmtoffset":0},"regular":{"timezone":"UTC","start":1709164800,"end":1709251140,"gmtoffset":0},"post":{"timezone":"UTC","start":1709251140,"end":1709251140,"gmtoffset":0}},"dataGranularity":"1d","range":"1d","validRanges":["1d","5d","1mo","3mo","6mo","1y","2y","5y","10y","ytd","max"]},"timestamp":[1709232720],"indicators":{"quote":[{"volume":[69035991040],"low":[60567.3671875],"close":[60567.3671875],"open":[62499.18359375],"high":[63447.20703125]}],"adjclose":[{"adjclose":[60567.3671875]}]}}],"error":null}}' headers: Age: - '0' @@ -33,11 +181,11 @@ interactions: cache-control: - public, max-age=10, stale-while-revalidate=20 content-length: - - '906' + - '940' content-type: - application/json;charset=utf-8 date: - - Mon, 08 Jan 2024 11:43:38 GMT + - Thu, 29 Feb 2024 18:53:11 GMT server: - ATS vary: @@ -45,7 +193,7 @@ interactions: x-envoy-decorator-operation: - finance-chart-api--mtls-production-gq1.finance-k8s.svc.yahoo.local:4080/* x-envoy-upstream-service-time: - - '2' + - '4' status: code: 200 message: OK @@ -55,2137 +203,261 @@ interactions: Accept: - '*/*' Accept-Encoding: - - gzip, deflate, br + - gzip, deflate Connection: - keep-alive Cookie: - MOCK_COOKIE method: GET - uri: https://query2.finance.yahoo.com/v8/finance/chart/BTC-USD?crumb=MOCK_CRUMB&events=div%2Csplits%2CcapitalGains&includePrePost=False&interval=1d&period1=MOCK_PERIOD_1&period2=MOCK_PERIOD_2 + uri: https://query2.finance.yahoo.com/v8/finance/chart/BTC-USD?crumb=MOCK_CRUMB&events=div%2Csplits%2CcapitalGains&includePrePost=True&interval=1d&period1=MOCK_PERIOD_1&period2=MOCK_PERIOD_2 response: body: string: !!binary | - H4sIAAAAAAAAAJSdTe81x3HdvwvXN8ZMv7eXoYNkE0dQ5IUReMFItEJEJBXykWFF8HdP/U71ackw - kCBIQJf+z517Z2q6T1fVqZc/ffXr//HNT1+++us/ffXTtz//4Xch/bc/ffX9t1++4U+//sNPP337 - w6//+NVff/V3//Vvvvp89fMfv//vP/4u/ue//9XX/y7/9O0/xzf88Ntv//ab77+Nf/j666/jj9/9 - 8POXn/7w/bc/fPnVH3+vP//y73/xq//y9d/98pf/4W+//vv4xD9+99PPX3710ze/+fZvvvkSn3jb - ++y3PM/ziTv57R9+981P//mbn/7nt19+9R3f+86nzbc9I/75t99/+fEf//Hnb+Ne4399iX//3z/+ - wI/83a++/osb+tX5h3Nj+Y//6qt/8dN3v45/aq308VfP+qQufvHTt//03Y9/+Pnr3/34M//a51/V - 2j5f/Z5P/6fvfoifLZ+jGj3Bdz/89hff/vTdj79BZb//6Vv+z7+5q5+/SM08x5j5mN/+8Jt//Ye/ - fLB/uff6//11s6/a/u3X/f7Hn7/8v77Ll/7fvyu+7DfffPnmP/70zQ/c4HdfWCDvb1Avio//EeI/ - ffO7737zS/73z7Gm8p87/3m//zH+W/Xfof++f4z/FP7T+c/78N8/fuHD33/zz1/9w7/kW477/P73 - 8V1/sVQk7tVSfJ/V1hHfyScklj7HEWtr57K31ceX9Xf4svFUXzbW9mWTL0hxjeLLdlvnsvLUfi4r - 8f/OZaU867G427ms1PX4snx3EnuvvmxwjylO/Q+JK/6/xb192V79XFafaZXUt1sltTSrpNZqldT2 - WiW1P1ZJ7dsqqWNaJXUOq6SuZpXUXa2S9hSrJN6GVdLebZW0uPdzWavDKmmtWyUhWSVtFKsk9rtV - wiP4srWskranVdKfbpX0+LpzWS/VKun1tUrix6yS3rZV0vu0SvoYVkmf3SqJjWCVxG9ZJXGJVTIk - pfguq2SUYZWM2q2S0ZpVMnqxSsZ4rZIxH6tkzGWVjDWtkqEfkwgGnMtCZVbJLK9VMutjlcy6rZLZ - plUy+7BK5uhWyZzVKpl6nhT3a5XMva2SWNNWycp7k1i6VRIwYpWsWBC+rL9WyRqPVbKkshTntEri - xVslazerZD/VKklMSLE8Vsku2yrZdVoluw2rZOutpDiqVRJryyrZ67VK9tpWScIOYvzbPCopT6ye - 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 - WSX9UlshGl7zQDripbbChDG8rnGprdhWhtc1LrUVouGVMJdVMi61tcaltta41FYoxPAaVpLhlXVs - lcxLba15qa01L7UVNrzhNTxpw2v4mIbXNS+1FaLhdc1LbcXVhte1LrW11qW2WLJWybrUVoiG17Uu - tbXWpbbWutRWvDTD61qX2goUNLyufamtEA2va19qK64yvPIMVsm+1FZoyfAaR7vhNUTD69qX2lr7 - Ulvh/BpeCTkeleznUlvhjBteMzxs0fAaFqvhdT+X2opVZnjdz6W29nOpLaKaRyX7vdTWfi+1td9L - be33Ulv7vdTWfi+1td9Lbe33Ulv7vdTWfi+1td9Lbe1yqa1dLrW1y6W2drnU1i6X2trlUlu7XGpr - l0tt7XKprV0utbXLpbZ2udTWrpfa2vVSW7teamvXS23teqmtXS+1teultna91Naul9ra9VJbu15q - a7dLbe12qa3dLrW126W2drvU1m6X2trtUlu7XWprt0tt7Xaprd0utbXbpbZ2v9TW7pfa2v1SW7tf - amv3S23tfqmt3S+1tfultna/1Nbul9ra/VJbe1xqa49Lbe1xqa09LrW1x6W29rjU1h6X2trjUlt7 - XGprj0tt7XGprT0utbXnpbb2vNTWnpfa2vNSW3teamvPS23teamtPS+1teeltva81Nael9ra61Jb - e11qa69Lbe11qa29LrW116W29rrU1l6X2trrUlt7XWprr0tt7XWprb0vtbX3pbb2vtTW3pfa2vtS - W3tfamvvS23tfamtvS+1tfeltva+1NbeprbCcjK11SEcUiUhmtoK0dRWiKa2oEUOvCIeeA3R1FY/ - X5uiqa0QTW315zW1FaKprRDLgVfEA69iXoovM7UVoqmtfu48RVNbIZraQjzwGqKpLRyuA68hmtqC - 3KlWSTG1Je/OKimmtkI0tRWiqa0QTW2FaGorRFNbPQ781yqpprYQl1VSTW31o/8UTW2FaGorRFNb - IZraQtxWSTW1JYrKKmmmtkI0tdXPK07R1Bbitkqaqa0QTW2FaGorRFNbsGDFKmmmtvrTTW31s4pS - NLUVoqmtEE1thWhqK0RTWwo1WyXd1FaIprZCNLXVz0KVOExthWhqC7bltUqGqa0QTW2FaGoL0O5W - yTC11bGirJJhaitEU1uIyyqZprZCNLUFbdWskmlqS3ShVTJNbSFuq2Sa2grR1FaIprZCNLUVOje1 - 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 - BQA= + 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 headers: Age: - - '1' + - '0' Connection: - keep-alive Expect-CT: @@ -2207,7 +479,7 @@ interactions: content-type: - application/json;charset=utf-8 date: - - Mon, 08 Jan 2024 11:43:38 GMT + - Thu, 29 Feb 2024 18:53:11 GMT server: - ATS vary: @@ -2215,7 +487,7 @@ interactions: x-envoy-decorator-operation: - finance-chart-api--mtls-production-gq1.finance-k8s.svc.yahoo.local:4080/* x-envoy-upstream-service-time: - - '41' + - '5' status: code: 200 message: OK diff --git a/openbb_platform/providers/yfinance/tests/record/http/test_yfinance_fetchers/test_y_finance_currency_historical_fetcher.yaml b/openbb_platform/providers/yfinance/tests/record/http/test_yfinance_fetchers/test_y_finance_currency_historical_fetcher.yaml index d6ff268535a..9ec1bca73ae 100644 --- a/openbb_platform/providers/yfinance/tests/record/http/test_yfinance_fetchers/test_y_finance_currency_historical_fetcher.yaml +++ b/openbb_platform/providers/yfinance/tests/record/http/test_yfinance_fetchers/test_y_finance_currency_historical_fetcher.yaml @@ -5,7 +5,155 @@ interactions: Accept: - '*/*' Accept-Encoding: - - gzip, deflate, br + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://fc.yahoo.com/ + response: + body: + string: "\n\n \n \n \n Yahoo\n + \ \n + \ \n \n \n + \ \n \n \n \n + \ \n \n \n \n \n \n\n" + headers: + Cache-Control: + - no-store + Connection: + - keep-alive + Content-Language: + - en + Content-Length: + - '4342' + Content-Type: + - text/html + Date: + - Thu, 29 Feb 2024 18:46:30 GMT + Expect-CT: + - max-age=31536000, report-uri="http://csp.yahoo.com/beacon/csp?src=yahoocom-expect-ct-report-only" + Server: + - ATS + Set-Cookie: + - A3=d=AQABBAbR4GUCELeJe1n6AL4-ApMjkSsG9ocFEgEBAQEi4mXqZSXUxyMA_eMAAA&S=AQAAAgkCW_2obvUS0Zhpoa8HG2o; + Expires=Sat, 1 Mar 2025 00:46:30 GMT; Max-Age=31557600; Domain=.yahoo.com; + Path=/; SameSite=None; Secure; HttpOnly + Strict-Transport-Security: + - max-age=31536000 + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + status: + code: 500 + message: Cannot find server. +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - MOCK_COOKIE + method: GET + uri: https://query1.finance.yahoo.com/v1/test/getcrumb + response: + body: + string: tJRlib4RiaN + headers: + Age: + - '1' + Connection: + - keep-alive + Expect-CT: + - max-age=31536000, report-uri="http://csp.yahoo.com/beacon/csp?src=yahoocom-expect-ct-report-only" + Referrer-Policy: + - no-referrer-when-downgrade + Strict-Transport-Security: + - max-age=31536000 + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + cache-control: + - private + content-type: + - text/plain;charset=utf-8 + date: + - Thu, 29 Feb 2024 18:46:30 GMT + server: + - ATS + x-envoy-decorator-operation: + - finance-yql--mtls-default-production-gq1.finance-k8s.svc.yahoo.local:4080/* + x-envoy-upstream-service-time: + - '1' + x-frame-options: + - SAMEORIGIN + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate Connection: - keep-alive Cookie: @@ -14,10 +162,10 @@ interactions: uri: https://query2.finance.yahoo.com/v8/finance/chart/EURUSD=X?crumb=MOCK_CRUMB&interval=1d&range=1d response: body: - string: '{"chart":{"result":[{"meta":{"currency":"USD","symbol":"EURUSD=X","exchangeName":"CCY","instrumentType":"CURRENCY","firstTradeDate":1070236800,"regularMarketTime":1704714194,"gmtoffset":0,"timezone":"GMT","exchangeTimezoneName":"Europe/London","regularMarketPrice":1.0942,"chartPreviousClose":1.0945,"priceHint":4,"currentTradingPeriod":{"pre":{"timezone":"GMT","end":1704672000,"start":1704672000,"gmtoffset":0},"regular":{"timezone":"GMT","end":1704758340,"start":1704672000,"gmtoffset":0},"post":{"timezone":"GMT","end":1704758340,"start":1704758340,"gmtoffset":0}},"dataGranularity":"1d","range":"1d","validRanges":["1d","5d","1mo","3mo","6mo","1y","2y","5y","10y","ytd","max"]},"timestamp":[1704714194],"indicators":{"quote":[{"low":[1.0927767753601074],"open":[1.0945708751678467],"close":[1.0942115783691406],"high":[1.0957703590393066],"volume":[0]}],"adjclose":[{"adjclose":[1.0942115783691406]}]}}],"error":null}}' + string: '{"chart":{"result":[{"meta":{"currency":"USD","symbol":"EURUSD=X","exchangeName":"CCY","instrumentType":"CURRENCY","firstTradeDate":1070236800,"regularMarketTime":1709232376,"hasPrePostMarketData":false,"gmtoffset":0,"timezone":"GMT","exchangeTimezoneName":"Europe/London","regularMarketPrice":1.0807,"chartPreviousClose":1.0842,"priceHint":4,"currentTradingPeriod":{"pre":{"timezone":"GMT","end":1709164800,"start":1709164800,"gmtoffset":0},"regular":{"timezone":"GMT","end":1709251140,"start":1709164800,"gmtoffset":0},"post":{"timezone":"GMT","end":1709251140,"start":1709251140,"gmtoffset":0}},"dataGranularity":"1d","range":"1d","validRanges":["1d","5d","1mo","3mo","6mo","1y","2y","5y","10y","ytd","max"]},"timestamp":[1709232376],"indicators":{"quote":[{"close":[1.0807305574417114],"low":[1.07991361618042],"open":[1.0842459201812744],"high":[1.0857763290405273],"volume":[0]}],"adjclose":[{"adjclose":[1.0807305574417114]}]}}],"error":null}}' headers: Age: - - '1' + - '0' Connection: - keep-alive Expect-CT: @@ -33,11 +181,11 @@ interactions: cache-control: - public, max-age=10, stale-while-revalidate=20 content-length: - - '923' + - '950' content-type: - application/json;charset=utf-8 date: - - Mon, 08 Jan 2024 11:43:42 GMT + - Thu, 29 Feb 2024 18:46:31 GMT server: - ATS vary: @@ -45,7 +193,7 @@ interactions: x-envoy-decorator-operation: - finance-chart-api--mtls-production-gq1.finance-k8s.svc.yahoo.local:4080/* x-envoy-upstream-service-time: - - '3' + - '2' status: code: 200 message: OK @@ -55,3724 +203,177 @@ interactions: Accept: - '*/*' Accept-Encoding: - - gzip, deflate, br + - gzip, deflate Connection: - keep-alive Cookie: - MOCK_COOKIE method: GET - uri: https://query2.finance.yahoo.com/v8/finance/chart/EURUSD=X?crumb=MOCK_CRUMB&events=div%2Csplits%2CcapitalGains&includePrePost=False&interval=1d&period1=MOCK_PERIOD_1&period2=MOCK_PERIOD_2 + uri: https://query2.finance.yahoo.com/v8/finance/chart/EURUSD=X?crumb=MOCK_CRUMB&events=div%2Csplits%2CcapitalGains&includePrePost=True&interval=1d&period1=MOCK_PERIOD_1&period2=MOCK_PERIOD_2 response: body: string: !!binary | - H4sIAAAAAAAAAJS9Yc93OW7e913m9SI9RxIpyUBfOUb6ogkM1wFaBHkx9Y7dRXdntrOzaVwj3728 - KP60673/T5EWxYb+j55zU4eHInWJF/Uv3/3D//H9z79891f/8t3PP/zhj78N6T/9y3e/++GX7/XT - P/zx559/+PEf/vm7v/ruP/4v//a7X333h3/+3f/+02/j//yb//h38cv/+L/Gbz/813jEj//0w3/4 - /nc/xH/567/+3+LH3/z4h19+/uPvfvjxl7//59/nz//x7/7ub/5D/rd//M3Pf/jl73/+/tc//Nvv - f4n/9j7zad3X8/wqlPinP/72+5///fc//58//PL3v9ET3/mM+Y53j19990+/++Wnf/zHP/wQasbg - X+K//z8//ajH/7t///d/psrf138olf7mjz//9Psf/of/+acff/3Tj9/9xR/5259/8w/6K//m2aP9 - 6ryOv/35h//ym5/++Ie//u1Pf8j/9m63X333ew39n37zY/z10OW8nJzIb378p7/94eff/PRrvbTf - //yD/p+vyv346zMZn+3RXP/wS775P//pz+f3366i/9+Pm7b6+O963O9/+sMv/7+fxU//6lnxsF9/ - /8v3/+7n73+Ugr/5RZ/I+2u9W73/+D9C/C/f//Y3v/47/d9/iK/q/GfT/7y/+yn+t+f/ev7v+8/x - P03/Y/qf99H//vMvGvy77//rd//5vx1jh1q/+30868++GIm99VbieLYjSjqirTZKXONlwG6rBrzP - O2rA+z7PQlyznhv/2RlgvTHA382A+COOuFs9tz321oD29lkDWpM2R+zvMxA3E2puqN7mQPW22mLA - fq2e25+HCfXmqN77QPU+emeA/lGJ/jChvhzV+zZUH09fNWC8bdRzR3uZ0BgT1YcZqsdrwhahAbYY - 62VCFv9/DbB4fzXA8i8cMXSv59poTCj/QInTUd2WYQvbHVv405iQt4Xq3ieq+zBs4TawhXtnQr4W - qvueqD4fxxbxQWCLMBwTmmOjeqiG6vFgbBE/Y4upt3vE9WxUX+9C9dUmtljdsMUagwmtfP8lblRf - a2KLmAO22McbUuwPqu9j7xSPiVI87zrF83pS3G+pnoZ4EFfZYj3vLFuseP81oRUOMPjVn5dffU0e - Fm+Nhy2vWaz3fUvfFf+mDBDibgzos2ax3uE1ixUqDAas92HA2pMBezGLFitAPTeWD/Rt4zUG2NMY - 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 + Min3GL4rWvmaPN9azTaIQCI5yYp5u+q6wENzA2ZVbXrmW7gQoYP3S1dwAnwwmXftTLYT9fjX9BYa + 5ngzSM8IYQO3Um0gS4txbkBHJ+AlMKdkAmojIMp3bm92Cre9J7n5qvcKUAqtBHxfoRmVa8L41ega + +A9lMtb0uCgVNxrTwcfId9LctyZtalu+G64ZRBeQLjiauLZyke2DxKc5HbWkX4X/IQ0aFwXlFdbj + I/n0eQcN+1hSxHkHUOWcF+Hvqfo1MdrtFjTBB/WWPI8XyKKKmbwL0s2GfN2nvQHW+UBtpL897Uvk + sGM9Min8hu6hh6xI1BoRBYTJGfz5V/rhYi+4wwFcnFKhmxyyrPKd8xtY4VadcdobxbR7V7xBAX1I + lbZ5vS94HpOfHl8SCRv5WLWXj3gR36+yiMNi9exm3DDIqy7/QYbWxlgD4/LC61UNeAOm8oYi75Of + 0Yi/pT24oVmASUZbaS9g7GhBX3elb4DSG6JpiFR7U1ypsATvjJgOnTENLVfWnLRincCJUur6HVKI + OT44DP0S8k5et+ZdpHyZ/MYbCLdqDyhoyAde1QuRy0mZTfdzRxiny1UokpRTW5ZpVz1olZdQFsMb + S9GtQdas6IuwMYqma5WxfFHWAfd1hCxpmoC4f9lCvTEGbWe38AkauCiVruomPleu9GKK3fwhOlWo + U9qkgbSglxE2UhLEkhpQr+DuyJaQJvZN6jYvRCo1aav2xYM626vHh78+v/vE/3HQn47H+3/3//6/ + /ffqFxnb6zf/NT/S/bcv/1LuWvj7F7vvUvi7FN539S6F/4e7FP4uhb9L4e9S+LsU/i6Fv0vh71L4 + uxS+3KXwdyn8XQp/l8LfpfA+zrsUvtyl8OEj9y92v/rl1S9QzE8vL88vD795/+ndu19++V8wW4l5 + D4IAAA== headers: Age: - '0' @@ -3797,7 +398,7 @@ interactions: content-type: - application/json;charset=utf-8 date: - - Mon, 08 Jan 2024 11:43:43 GMT + - Thu, 29 Feb 2024 18:46:31 GMT server: - ATS vary: @@ -3805,7 +406,7 @@ interactions: x-envoy-decorator-operation: - finance-chart-api--mtls-production-gq1.finance-k8s.svc.yahoo.local:4080/* x-envoy-upstream-service-time: - - '37' + - '6' status: code: 200 message: OK diff --git a/openbb_platform/providers/yfinance/tests/record/http/test_yfinance_fetchers/test_y_finance_index_historical_fetcher.yaml b/openbb_platform/providers/yfinance/tests/record/http/test_yfinance_fetchers/test_y_finance_index_historical_fetcher.yaml index e7547797fef..c6f25bf7748 100644 --- a/openbb_platform/providers/yfinance/tests/record/http/test_yfinance_fetchers/test_y_finance_index_historical_fetcher.yaml +++ b/openbb_platform/providers/yfinance/tests/record/http/test_yfinance_fetchers/test_y_finance_index_historical_fetcher.yaml @@ -5,155 +5,7 @@ interactions: Accept: - '*/*' Accept-Encoding: - - gzip, deflate, br - Connection: - - keep-alive - method: GET - uri: https://fc.yahoo.com/ - response: - body: - string: "\n\n \n \n \n Yahoo\n - \ \n - \ \n \n \n - \ \n \n \n \n \n \n \n \n \n \n\n" - headers: - Cache-Control: - - no-store - Connection: - - keep-alive - Content-Language: - - en - Content-Length: - - '4350' - Content-Type: - - text/html - Date: - - Mon, 08 Jan 2024 11:43:34 GMT - Expect-CT: - - max-age=31536000, report-uri="http://csp.yahoo.com/beacon/csp?src=yahoocom-expect-ct-report-only" - Server: - - ATS - Set-Cookie: - - A3=d=AQABBNXfm2UCEACtmMeuc8nOjsLoX1hjlwQFEgEBAQExnWWlZdxW0iMA_eMAAA&S=AQAAAqMQ-PrLvICW--J8J9y-wZQ; - Expires=Tue, 7 Jan 2025 17:43:34 GMT; Max-Age=31557600; Domain=.yahoo.com; - Path=/; SameSite=None; Secure; HttpOnly - Strict-Transport-Security: - - max-age=31536000 - X-Content-Type-Options: - - nosniff - X-XSS-Protection: - - 1; mode=block - status: - code: 502 - message: Connection timed out -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, br - Connection: - - keep-alive - Cookie: - - MOCK_COOKIE - method: GET - uri: https://query1.finance.yahoo.com/v1/test/getcrumb - response: - body: - string: ASqh.0tGvoh - headers: - Age: - - '0' - Connection: - - keep-alive - Expect-CT: - - max-age=31536000, report-uri="http://csp.yahoo.com/beacon/csp?src=yahoocom-expect-ct-report-only" - Referrer-Policy: - - no-referrer-when-downgrade - Strict-Transport-Security: - - max-age=31536000 - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - X-XSS-Protection: - - 1; mode=block - cache-control: - - private - content-type: - - text/plain;charset=utf-8 - date: - - Mon, 08 Jan 2024 11:43:35 GMT - server: - - ATS - x-envoy-decorator-operation: - - finance-yql--mtls-default-production-gq1.finance-k8s.svc.yahoo.local:4080/* - x-envoy-upstream-service-time: - - '1' - x-frame-options: - - SAMEORIGIN - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, br + - gzip, deflate Connection: - keep-alive Cookie: @@ -162,10 +14,10 @@ interactions: uri: https://query2.finance.yahoo.com/v8/finance/chart/%5EGSPC?crumb=MOCK_CRUMB&interval=1d&range=1d response: body: - string: '{"chart":{"result":[{"meta":{"currency":"USD","symbol":"^GSPC","exchangeName":"SNP","instrumentType":"INDEX","firstTradeDate":-1325583000,"regularMarketTime":1704491654,"gmtoffset":-18000,"timezone":"EST","exchangeTimezoneName":"America/New_York","regularMarketPrice":4697.24,"chartPreviousClose":4688.68,"priceHint":2,"currentTradingPeriod":{"pre":{"timezone":"EST","start":1704704400,"end":1704724200,"gmtoffset":-18000},"regular":{"timezone":"EST","start":1704724200,"end":1704747600,"gmtoffset":-18000},"post":{"timezone":"EST","start":1704747600,"end":1704762000,"gmtoffset":-18000}},"dataGranularity":"1d","range":"1d","validRanges":["1d","5d","1mo","3mo","6mo","1y","2y","5y","10y","ytd","max"]},"timestamp":[1704465000],"indicators":{"quote":[{"high":[4721.490234375],"close":[4697.240234375],"open":[4690.56982421875],"volume":[3844370000],"low":[4682.10986328125]}],"adjclose":[{"adjclose":[4697.240234375]}]}}],"error":null}}' + string: '{"chart":{"result":[{"meta":{"currency":"USD","symbol":"^GSPC","exchangeName":"SNP","instrumentType":"INDEX","firstTradeDate":-1325583000,"regularMarketTime":1709232389,"hasPrePostMarketData":false,"gmtoffset":-18000,"timezone":"EST","exchangeTimezoneName":"America/New_York","regularMarketPrice":5085.06,"chartPreviousClose":5069.76,"priceHint":2,"currentTradingPeriod":{"pre":{"timezone":"EST","start":1709197200,"end":1709217000,"gmtoffset":-18000},"regular":{"timezone":"EST","start":1709217000,"end":1709240400,"gmtoffset":-18000},"post":{"timezone":"EST","start":1709240400,"end":1709254800,"gmtoffset":-18000}},"dataGranularity":"1d","range":"1d","validRanges":["1d","5d","1mo","3mo","6mo","1y","2y","5y","10y","ytd","max"]},"timestamp":[1709232389],"indicators":{"quote":[{"close":[5085.06005859375],"volume":[1192320000],"high":[5096.35009765625],"low":[5061.89013671875],"open":[5085.35986328125]}],"adjclose":[{"adjclose":[5085.06005859375]}]}}],"error":null}}' headers: Age: - - '1' + - '0' Connection: - keep-alive Expect-CT: @@ -181,11 +33,11 @@ interactions: cache-control: - public, max-age=10, stale-while-revalidate=20 content-length: - - '936' + - '971' content-type: - application/json;charset=utf-8 date: - - Mon, 08 Jan 2024 11:43:36 GMT + - Thu, 29 Feb 2024 18:46:31 GMT server: - ATS vary: @@ -193,7 +45,7 @@ interactions: x-envoy-decorator-operation: - finance-chart-api--mtls-production-gq1.finance-k8s.svc.yahoo.local:4080/* x-envoy-upstream-service-time: - - '2' + - '3' status: code: 200 message: OK @@ -203,7 +55,7 @@ interactions: Accept: - '*/*' Accept-Encoding: - - gzip, deflate, br + - gzip, deflate Connection: - keep-alive Cookie: @@ -213,127 +65,144 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAAO1cWY8kx3H+L/O8Lud96M2QBNkPJgiTBmwItLHmjqi19qBnZyXTxP53f5GVUR1f - tAw+GxgsMJtdnZUZGfeV/fPD9398/fT88KufH54eP31+h9Hvf354//j8Wh59//np6fHD9z89/Orh - n7/5zcOrh08/vf+Pj+/w8d9+983Xv8aDx//G+x9+ePzq9ftHPP7mq6/x8O2HT89Pn98/fnj+9qcf - 5fE/fPWb3/4LvvjD26dPz98+vX7z+JvXz/jib2JOtY4cQniF/X/4/O710z++fvrT4/O3b2W92EMp - M7ZaXj388P754x/+8OnxWV4b641nTPqfjx9kh99+862B5tv9xYbq794/Pr39/vXffvX4l3//149P - f3pwm32NbzGvtNmPhK0WSr5+evzz24+fP/363cdP+DKPPI/66uFHmfv3bz8AjPRqI2gd6e2HH77G - Nh/fCOJ+fHqU/+4A/PS8kC3nkqPJIR4/vNkPUkny4O6gXy5wf3HNvcRtzdLb/7Xmjx8/Pf/igvv9 - 24Ithb++IFZ88/r59e+eXn8QUN8+C9fEN4JrIQk+YPjn1+/evvkn+fwJjHZ+XeVPfP8Rf/P629bf - +BP+JPlT5U8M8venZ5n8/vV/P3z35aQ/gH3/I9aKradeBbpXMhwltT2caYZzmEOsZQ9TL3tCzi3q - hIIT72HNeewhVt3r5tnqflpCTftpiXnsxUpKdS9Wyig6ofagExrGe9hL3ruVkeZet4ah8NbYFd6a - WtQJGbP3EAvsdWubCm/tQ+GtozWdMGve67aQ5163Yd89oeWhoLfSo06ostw5bEUP1OZQeHvoivUe - m2IdnKinkBPphDoV3t6GYh1jxXofVU8xYlR4R5wK70hDCTByVwKMUvUUA5DrU0zUp2Mo1sfsivUZ - qp5i5qjwYivF+oTy0QlAw153AhF73TnThhd/48Y6hnNjfYQ49ilAk7ZPMcA6Qye0WHVCD1En4Bx7 - XaBhwztiilOf5rCxjuHcWB+x9H2KEXseOmGkohNmjDphzo11zBt6ipSLwgtdovCmGqtOaGFjHcOh - p8BMhTeHvAkwckybACOnsAmA4dQD5VoV9Nyygg66Vp2A4+u64Li9bolVQS+pKOglZyVAKVEJUGrQ - A4ny0gn4pxNmVgLUkJQANQY9UC1V4a01KwGgapQAtUc9RZ1d4W2hKrwtFiVAS1kJ0HLUU0AnKLyQ - V4UXUqEEEFTpujPpKXpqCiT0lWIdikexDrWhWIdoKbxdXtzDWRXrIxTFOlhKTwGrp/DiyIpqAKyo - xs4K+phTgZwQ+T1hLlycQxj7vRhYQFE9m4ophiqmkFIVU9BdxRQ7lH2KCQA2vBiqmM6QVUxnKCqm - kPO6TwHAVEwxVDGdYaqY4rgqppCVug80Y1ExnRhEnVBVTOfS/XsIBbvXTUEldqaoEouhSixoqRIL - TdL0QGAtBT11lVgMVWJnGiqxsG5dD5STSuzMWSVWhC3phKISC6bveiDoD4UXb28CYKhiOkvseopS - VExnqSqmIIqKKYYqpqIS9BQ1qJjOGlVMZ00qpmKblACwAHqK2lRMoX5VTMFkKqbCvUqACt7Y67ak - EjtbVomdrajEwoirxGI49UAQXwVdDron9KASC9lWiZ09BT0QTLqCDoOsoMOcKgFgDJUAAFYPBM2v - oI+owgvcqfCCI1V4JzSeHghaQUGHeCvoY6jwwjCr8OJgUQ8EjtFTzKzmFhhTcwvRLUoW4E/JgoX1 - FDAX5ykEqG1uMYzlJAuGUG1lD2H8dULtXSdAtemEkdteLIZZ91Mw0Qk6hqkNnQDVtheDHo17sbWh - DkfTCVBHOgEcsddNUG173ZSDwpug2nRC6V0ngOf2uglabq+bREPocCroOYy0J2RRInsILbfXzS0o - vFkU8x5Cte3FxG/ci2FXBRKGV1FdoM/2FuBIAf07ia/eIJx5/vj0Sfz3//r8UWIphG1/fPvDHzHI - UEpHAV83iHCvr/A5HxGf4T/oEwQzcGbBIWLw5QkIdkTRr8AJ5AcPajjEVRXTc7404zxETcIfWxN6 - OAJPQPwk8UIA91dZBAfOB5woCH2EYezyJNZDTDlswbkOnhQHHU5/QCsZWDoe3A5U4L8eIpV11P0g - YR94NEk3QawGZEHdpb1Ji3waqLdypGDWbPkQB/gGe+8MF8AZAEM4K69FMTiKgbNA3A6sD9O+t42p - HOJiKxgwDYcwh6B7fa6NN5UH0OJgttKGgrnYCOblPByCjWMY0uEdEFNE8YILcAJmA0bmbWEEj2UR - b4etArl9EPuRRSSVbmkcIloXSkGUcZwzxxEqfQM+WBPi0c1Z8DwcA2CAPxUQQCrh2QWYcC4dDisf - QRgpHMCFIYYAOAwPZJgrD0eo/knudj+xNEeyHIsAr5DswNocMxB3gkTQADfMhHmEoWKxeNMdIfSj - MYODn0n8lqCQbM0D7GzlJkMcJ+Gudsc7MRyLHxL2A8vspxnCb1gQZznasEwL8BD9iL+/GSxIpmPx - bqq31YFeyxBwg+hriE+kZatQXzzqsdm0ATHdsDaixaM2uzG4gR+A1UU/Gs5OB+DTo6UG+QMjXKpk - 4GztUgPyeio3ORGF1YzWiKNZrRFBehKKuLjTyCLEu0WSxdLvAbSvwNlhuYKpP8SRQ4SheAUv2DdK - ProBusTjnFZZcwBYc1Qg+rBwpAiNeSEKeg5axdJi1EOC0wtzAoXVsLFVC4UsNwzxYeodqrwqTFiQ - aAOxI4DBhoQHuLRHviRgfU/8BBY+zIbwdUkK4VkQmwNsYldYL6gLw1t4QhgrIHbpBkdA9hGLkVEY - a8YiIuxFG0RAoM2NhPBtmNHygFK5MRpoyEwBH/XAQ6jpDS38FZaVAqVj1BI+F96iOHwAfLckSEi2 - GRg4WrEzFgXmPlxdBuCGUISS0C7X2xX0Je2Dv8T5VVS5ZQA4Vpalaq2i2BFUGomGB0SngEPORGlQ - VsGqCOjEI17Kroo+tySqo/CC0FqToIKrUG40roI2gwPxeK5P0NHkdSAIZqYXHFmmK91Z8yKUvzE5 - IiQSK3xPDgYOecSbzOTheRjYsIwHuT7qUHiFwNEKuXAVQRMHM5WkuBsdUETAsAgiNvCMkQlhA2MF - 6tZWFT6dtevFc3ypbL2BinzUZPSBvEJeTRmdvRoICLM4rOVhYCtwQyYJEeSU3DPBNzExAlnocwOF - qBELBMLmgwx3ho2pRpJjtloKjjyza4ZUJVpQzDNpGeC83twJQMrfIzA61n+d9V1yxisX9r7APZWo - jciC5V8mEDayeMC05siWfeFOsb3OrZBOzcJQxmglcX8tgyFUMgIGRiKVs2yIsc/YnTSYOMvk9wJe - 0hZilax8pFLdkSHg5KRksCGZlZ4oSlg2oBrFHfnAwAixh4gYMZSItFWjYVirWFngHUPXJDbOKjMn - ERXeB8tru1PCwekwPKj2CPIKrwG5a7wopIbkbnpBBNasHhRbwIpFhNvYAnw0jlhb7oph3Ybwrhsq - NGg20uL4kp3anp0r2VNl/dIh+3TwjoPzGp08jg4HwQLRO0epku5iZsJmjJcO9rDn6sORp8OsGwGD - /JIa7XB4u3WaOvjlsl7fvXr4/ixW/h6eCdRBNmE2hBvggrV6kGzFehIGiTeioWoiGXyE8rIhx8oA - nEHSZEcYO2XDuCIC/lUhMW0/EVEOG9lKWoAU0IqT2OGWyJ7sRojtLsMAEY1mJ8moHeJQZjjNGmcG - ZkiJJsnaBKgqVjZydkP+COvTbXjUXHQD2TVhofjrQZ5K0GZEdoXiEpUFUs6RA9W1vFX3EnhwpmXe - Bcj9ngYwXoWfRI6QgQiIbqKsjoRNNyUOUkMlcu6os6eMEDlykgcvRZdfEFWcKQ8kDni8sRA0rdEh - 2BDcSOw6oVsZ1CFZHjrygIHpHODH6VIA0LGWOcDdiGxBOakc78QFWIqAXSd0+aRAIRIsQfMMLwok - 0hMgbg5GJTy6THv3yB5DSM51khTJLXewwndS8RLIGxcFX92zjjW7UdImFNRiRc4nQXOQ6guCRJLC - WFywJBxNZkQSBJx3gPIblGEorKEhAEcnochuAvYINs8F3Nn0WwA3TM6dIazm+Pw+S9EZKsktmnTP - PJMukmBkrSMie/4/yGrLAtEmKTxeMsdAQj6rSGRZSiCE6fOBw+UDJXQ2blAUatEZZ+I0JYTTnDHG - SnmUGl3oHsSzNMmHUB1dus0cI1SNzGBpsL+Q4IVZQqfhcrPi/dIOaTqPIC1bYnhWHHWakUFpcnaT - jZ2SdUyLZMSu7/JgRyC3yo7DitOs3c+FchtZLJ/lfHHFb0Fw7s2BPhvHmUA2SSw8QYr7mgsTYYoM - +JOz2Otw5KJKZuRm2eBk2Ag7kjUAJNX66DUlolyFDBOrVUksUYSeWeor+NtE4HjfOZ+dDGVFTHe+ - 1imPkNiDrGNQfqsCxxQd1ZidDxscESVYJ1e+SvhMZJkcvxTAahkFW1kxKOIS2Oh9uGAEf5kRYCOJ - j3rgeFZYmjhzuspAHi5hAGSTDDQ2HdCYfILsUiASY1vNIYE/UTPYXDQw52J6cDZhpPq0V+RgRPIG - Jl0jOQHKYLTIulBIwCkanIhi2iVLJC3VZyIk2iCBSS7KXSUKuCIu65fd3snnOFInyyw5z05qkfX2 - SpFalgSLs+Jt+TgD6cHJ0xxW0iDD2t2okSulx4X49pgZAVKzVj9LBrBTciQT8eUzIQbMQJ5GEhES - sIvRKCmy0U7i2lJuejRnz8Q5piy7K1bF5jRgnJmS7MlLVo7+bNUmQ0XFkxoTjW1FXVLB/D5OwRkv - NqJLJ1tJnJxoqsudNIIViFgiZ2RCa3Hp2uxYoLqyVZVki9GzwSUKxBkjfVgpLyV6mPT65EqnJAkI - IfICZSNxegvAsCasBS42teQyrZIBsOjqkhe+Xu/ioxnkymdCRi8u/pPgnzaUjHyl6P+0MxKh23N2 - iPAZykeLni6ZMnq/kQuEgJY+4rzk07cxWAjO3uRbpP/xx8cPK9CvmcMZSWBzVH1X6x8pc2gFmz44 - kML2rvifuUB8Rio8pXFgsbIAFEitIOkMwiJXggH+5CgTAhY5PoRBdj0LInS2hC/WzLjmQE3nRECZ - PpYKvujvmhqWN+1KZc0VUIXbqGwZfFABSDgxWcpZOwfb2b6F2Zzr7xKc8azMxpPnpEPB9VLclfHF - i7nxmdTqmUSishmpiAWYgYTS3BoCM+PyCNA20g1rgujpSrcSe1Eie9X+GRjxTlwnwfCl85jIGIC9 - qw2vVkmf8wRDfD0WADCXi/krJ/+wD4w3h+8dIQFjG9xMPFspRQSsuM/gV7cttIdJ6yyJofAfWGq+ - VQCKPFpcg9/YIYnJearSRFLPXBOTAEqX2wykh4DyTslX8QP7/1Hqrtxr0im8ba6LYFoPVmJdjraz - y2DLA6qg/JWiPywRaxlQig8xObyVmGFyLZ2r2eks7ErB3/URrRwvAdxcLJ1O0fZ1fCmU2Y+Dy/k4 - FRXWpImDeo1S8p1Czk1KsCFE3bgqaDZTIILgkE1F/8revtRXjJ+2lJH5lnP4Up0hpkslUilMmN+U - sXo01j9JbcoqyOST8VkspHW44A+R255rcu4qqGy5QHw4W3sF45K7C91LjJxHoNioVlf5q4WKs1Dp - t4yB+P4uNOvM6RmiTzm04n0ciUw4Giqkb+5r/sCRZaq8quFU8OV6mERHhOUyVza6LsfdFpaCy6ZI - ocq5d5kDP6lkWH+0Up2++GhbrAO7qy5gn4MKzZJGqGd9nzx9KTUZg3dX7y+CE3K0Y6aNFgpuTkSZ - PuqHRSVrv+rS18mEaIxSicWM8rmr+WfOdUEbOcYujvPBl5R+E6pSVfYuW1QNgDCQnKSAWHOFUhqS - 6ln853YQ2+2RXRJ55YWoIeWu5J8LM5+kES1z4lxcrhffhLIFLbGSFNQTF96X/Etl7Jdq0kRgY3a7 - RShZbKWKbmLkyLnZHDlKEyVnLU2SQhlV99PgKCgNl+SWV84QNVPOtLqsPlZ0OdLJDpcU3/vWgzZ5 - GVjtZCmOGQALp2IzEEY6ZHVAUJdAiowzSXNwtjYGVp0JPhvB7gr9sN+Uz04sw8uJsNojLmNyw1Vw - JROxJrZqn51eXH0LlCcT20Fl/3LXTWYSts1ZXqDW5FlEA0xr3CQHxV1B3cYtNXD0Kl0ApLGyy+9X - hBeUk6WuihXJk+4ubAVqj3565zzBXR8XFffBEOv5cM1OdaU7r3WlF8oCPZ0JaJG7k1rhF6TWbU/Z - o6PiKvGbEFwcMCrHN+e79cRdSr1SF3mvzuh1MLZNt/XhNG0frA66CA8dobIzK1G9Yfw2g7UtCPP/ - /PHd5/erog8bJdcVQhCFX4RdMMxykaqewwmpaueEDOL0PQGKOe+nIec9QXKYbb8mVcjzKRbQFaDD - etwT5rr6JE9BrayviQtwDjM8z3OL3NO6RbI2DufdMpmLQLXp0/W1LCaXLs+5Zcjt1TWExBQFUq4Y - nVtIxJv24QHj2BNgtsZeIfW98Cro1g0DDERLip2Z9BR93Sdb65Z1e209hVzo0xQ36FJEz7pCXber - 1ha9d90ty+2mBXpY13lPcOBmDB2um7BrsVH6pkWQ6FkhSxu/ueJwXSlUN4VqjSOe4DS5j5Y2olrd - KzS56BL301n7OXfKjcAThprP+7yyLrCgmKxQmRu/oHHbQNaxGWKZoFqU8kUnRLn4pbwTlBZ4FpUW - 2E7xkPrYZ5tNQc+gStusUeTW2zmUA202ajnvxWBYmrJRlUvOe0JcF85OnLVWdELa/Js7JH9cc/ve - Qq7x7LlwGvS1kXtQ/oVqrkqsC3RYuKxkGS1mJWxT9hTW2gwTwXGbsE0Cy71FDEqAAHWrQNY0L8rn - rqdoKeoK617Y+RqkaB8IzHsJZIm6QkcMtQmAOE6ZtudN2dUyolLYYy0q6GnsU9R1Je18Kr0Vqiou - GHCKnFSkQRalfL4QNVLTUwC9VRWI5H73br1eIgL9odLdlR/aeS93I0pZGcifeVOoni/J3FCzSrfc - RtAJ50XBfXh9rc3WVHMlVZlJripvpJaRdDG5eaZDhJ06Ic0NGXYt6VIrQVECuam6m2h+JexQeRMW - ufSZoiT3dunqKrfW9mLiOijWU1FVMXU3sfmqf6dw134a8oU+KXIo1kPXjRHeKJfAD9orlHUH9Nxt - lLmfjvPm47luyQpvvZhgzFZ0bk4KLybMi/JZ9STkrihZUhuKHSgItQx4rluoBhGJbVvQEzRb2viF - WtqKP4dW4rVbU+sE2VT7BjWqkEE4dePesm4Mx1APlCWc33NzvQQSev8i7OjnhHXbdj+NLeqwwdvY - DAPdWC7VlvJeDLjeKh5BXlXdV/o1AXZfVxjS+LiH0IKXwR4XK4O7VHNt4RZ45XcA9gQwsgK576mu - A6kNkERvu5RCjpcKUunOZXnB5wTYND0QpHQvNuHDXEatXIq0t8074P+oxBrA2sWTvV22ZarETuj1 - /VRMqM5Nlwlt6w7tyZPQChsyQKvo6/OiBXy9SwWF0NUcAOdKIblnfS6GnfJW/GIsFX2tqCvR5Sct - lAmKKibRRnuxUM4rtnJZNl8HEr2tc8e1Gxhxcx9k5fR8ltLtKpvCiBfoczsY0r7clDXAynsoGWqV - wnQphXH+poNsEZra2CYUPmEQqqgXhLg9Ky1Su6w/vL1LGC5zC995qysYfBX01IvyepLLyJsscsla - eaecF28X0wZrhy5e37oCTu+7j38Rj7dP2+2AI1eX+Q82ahSHk2p6UE+Bvu9890/6T022bN0NpPen - FKJNT6tE6lzwSs23Gw66pQUQuutxlXY+10o4qKsN207OpIAOfEmyjKNNf6nW5alT4NAkSFqeU/0l - UrASpSpIrakSoZkJQdoPqAAiPa6mez20yR8DRflBuszM19JtzGl3uS1sszdyn8/dpQRNqNEQZ6yu - OiXtU1TRatPNQGRo+pylBubKTlKWM4CsSo67SSqJHK5MCSDmeKXc9Uhz7/0CzDWnBkdasQG+yTXc - 9U1zHwZswnBFvSEZCgbG5UhWj+vgnl2wKuNNmpCNQMQ7pEijqLvpGpiCZ+csd7jeF72kCmQ5477m - FeZg5kIsbtMWQdr5SIqkAM+Xj7uv7kghjfLesqprdJ2cyooxu9qbu3QlBTK+E56LTbhJMZerxzFz - 2iHe96ZHFkzppOAqti+Aud6LVfGyd5hFB3GpfDguO+u1XGe7K4bh8JRPjdGVtYRs9spt4AsOgl7u - lQ2cmFvNrowcvrAjpXb5T5LkrgOVq/glcQHO657VbEyHo2qYtMw6lDZXfhNNb0uZviDmm5Ske+vW - wyKfbF0iydU0yydpclowu54Z6d+ijHHO7sK43FPlK6HBdazl1l0jWXM3AuECuV7WYgt7ku82qU1p - QAvnKnyTtkdOkd4Xw9bFalMmkS4MLtdVapbL09/UA48b1gP3utbB7IplUiih7st5dz2ycLeh1M1u - qXZJjFL9Tq6H8gIuD76uT1L3LOXFpcfLtmAlf6tKGkpNSUZ+9sP3zlauZZ1VtMJui/wKnmtOc40D - 0rrKt4sbZeClTdPiujjhkh5LJq9ofCqbQR75TnWx5RBhJGZuYSm67Zhc66svi+E13qFyvRgTHdA5 - sg4pcv/xRm75HQXfQcwVsEndtmWVWkxtKvMdILmR7tuJuSO5cvdsddchpNTItUgwkC1rCAR8pTY6 - qSqBTQ0Ccip6Y74tHoXEDay+bTJJnxDVx7hKLA2xpN6TkNVAnGRD2/GaXI08pWp/+MA1AspFAitw - UiPjC6GlkvaqXPvI0empu3KZBBG2BL9+1+Om0901xZRc0wRkgDWjnIBAiCNSrUxuA5FDgh27/4EJ - 8mHERJKRlZ/tMb/18EvFsuK0iHRGmGJYpXtxeV3VtGJXs8XwzO6ugi+WSWMst5yPTlwvv2dC1xMy - NypU22IttS9rJUTDkoourvouPwhA73fWhHLvwPbl1kJNMrIeX3eoTonIjHo2NPAvF3T3Cw/3BbMw - jL8gHbF8aXaFz1dLLGwV3279hWqZlKaIMj34ltjs+rKlYEb1seZ+qaj7En+vdMG5J4oQ2+TrDG04 - zmuD9Nd3X7579fD6zX/qLdif7YeXK7EvV2JfrsS+XInd3ZUvV2K1Y/zlSuz6/HIl9uVK7MuV2Jcr - sS9XYl+uxL5cia0vV2JfrsT+v7oS++W7LxL+Pz49fXx6+NWHz+/effnyvwO1cdbeaAAA + H4sIAAAAAAAAAO1c244lt3X9l36enBTvpN8C23DyEEGIFCCBoQQTqSVNPBelZ2RHMfTvWYvFXWcv + tgJ9QBqCeurU4SE39/1G/vXh6+9fP316+M1fH54eP/74Fk9//OvDu8dPr/nq6x+fnh7ff/3Tw28e + /vmL3z28evj407v/+PAWH//tD198/lu8ePxv/P79d4+fvX73iNdffPY5Xr55//HT04/vHt9/+vKn + H/j6Hz773e//BV98++bp46cvn15/8/i715/wxd+EFEvp6TiOV1j/ux/fvn76x9dPf3r89OUbzhfa + MWKKqY9XD9+//vj50+PnHz5+OkdgBsD47eu3Hx9fPXz37tOHb7/9+PiJc/Y53SfM8D8f3nP533/x + pQP1y/XFAvnv3j0+vfn69d9+9viXf//XD09/etgg+RzfYlw5erkd9dWJL0Dy5zcffvz427cfPuLL + 1NO4lVcPP3Ds3795DzDiq4W9ud8377/7HMt8+IZY/eHpkf88A/Djp0kJbjqMFrmJx/ffLCzgD188 + 2+jPF7i/NqdNcZ8zH/n/mvMH4PlXJ1y/v09Ycv/lCTHjN6DXH55evyeobz6RpcI3xDVJgg94/PPr + t2+++Sd+/gguPL8u/BPefcDfNP/W+Tf8hD+Rfwr/hIN/f/rEwe9e//fDVz+f9Aew737AXKG22Eol + SvnYc6zrccRxnI/pCCWvx9jyGpBSDTYg52YDSkp9PWLWNW8atay3+Shxvc0h9TVZjrGsyXIGEOux + tMMG1NJsQMtprZZ7HGtecKHBW0IzeEuswQYkjF6PmGDNW+oweEvrBm/ptdqAUdKatx5prHkr1l0D + auoGes0t2IDC6c7Hmm1DdXSDtx3NsN5CNay3mG0X3JENKMPgbbUb1vFsWG+92C56CAZvD8Pg7bEb + AXpqRoCei+2iA3J7i4H2tnfDeh/NsD6OYrsYKRi8WMqwPvIwrA+gYc07gIg174DuOgfgb1hYx+NY + WO9H6GsXoEldu+hgnW4Daig2oB3BBmAfa16gYcHbQwzD3qZjYR2PY2G9h9zWLnpoqduAHrMNGCHY + gDEW1jGu2y5iygZvzNHgjSUUG1CPhXU8dtsFRhq86UiLAD2FuAjQUzwWAfA4bEOpFAM91WSgg67F + BmD7Ni84bs2bQzHQc8wGek7JCJBzMALkctiGMhjVBuA/GzCSEaAc0QhQwmEbKrkYvKUkIwBUjRGg + tGC7KKMZvPUoBm8N2QhQYzIC1BRsF9AJBi/k1eCFVBgBiCqbd0TbRYvVgIS+MqxD8RjWoTYM6xAt + g7fxh+txFMN6P7JhHSxlu4DVM3ixZUM1ADZUY2UDvY9hQA6I/BowJi7OR3gCazKwgKF6VBNTPJqY + QkpNTEF3E1OskNcuBgBY8OLRxHQcycR0HNnEFHJe1i4AmIkpHk1MxzFMTLFdE1PISlkbGiGbmA48 + BBtQTEzH1P3rEQp2zRsPk1jYZpNYPJrEgpYmsdAk1TYE1jLQYzOJxaNJ7IjdJBbWrdmGUjSJHSmZ + xFLYog3IJrFg+mYbgv4wePHrRQA8mpiOHJrtImcT05GLiSmIYmKKRxNTqgTbRTlMTEcJJqajRBNT + 2iYjACyA7aJUE1OoXxNTMJmJKbnXCFDAG2veGk1iR00msaNmk1gYcZNYPA7bEMTXQOdG14B2mMRC + tk1i6bvZhmDSDXQYZAMd5tQIAGNoBACwtiFofgO9BxNe4M6EFxxpwjug8WxD0AoGOsTbQO/dhBeG + 2YQXGwu2IXCM7WIkM7fAmJlbiG42sgB/RhZMbLuAuTh3QaCWucVjyCdZ8AjVltcjjL8NKK3ZAKg2 + G9BTXZOFY5T1Fkx0go7HWLsNgGpbk0GPhjXZXNAee7UBUEc2AByx5o1QbWvemA6DN0K12YDcmg0A + z615I7TcmjdSQ9jjMNDT0eMakKhE1iO03Jo31cPgTVTM6xGqbU1Gv3FNhlUNSBheQ3WGPltLgCMN + 9Az3ygaArjYAStMGgHvWatiDgV5yMMigiA3V0HGG6lKbobqMZEASxDUAnrKhuoZhqK6xGaprSQZv + rdHgrZAcG9CGoRoWw3YBp83gBZcZvA1YtQHgzmqP3VDdWjbQ4Q4a6I269nzERIb1fgzbEFwFg7dD + idnbGgzrvQ7bRR/F4IVFMXgH/a/1eEavXzEm/gZR5qcPTx8ZVv3Xjx8Y/yLU/vqMIP8Ihyzf4K3R + DsKnjeUVPO54g7IB3chC883Rb4QeCgQuBl8MBKXcx/rFiDdAcsDwQMb4BpHkbf5bxw30geOSI+SA + b3q6TdlfH8fYfzqObXnoiVuvfhKY3xsDgwsg6AFdJ0PWblQvBYY6nS/qDb4zdH1oNqTeYnArUc3d + wOjQVjVPaDK+upUq07QbtQdEef2m1Vt1yMmBez8gkcf5CxiqG7Ti9XWqN7jE4KdcJxghBIdMeIn5 + dvBtu9HHqCme7+Ek3PgP0JOLmz21G4PJdKJvTh/ArX39DO63gjcnAHhw3NcUYM5nNGg38r5/AyCB + 8XxNDHV4gwd90A2c84AIx42hebLf9HiLpPBBD95GhOxflHAjNe/cB8NzS8XDm8utegbFm37L4c5C + vd4SFXUzlgI3CrvCE9tAhVzdimwZfvStVf3V8JgFmOE2PHOAu49bBOUYztdzbbCUADt3yOj6WhsI + irfu4QXFNobHBluQN0AcZhVUthuDZ7d2C7conBnbJgLluNGnNE47xi357wN0QXGMfBzPWSc1x1sH + 1EB0K3JG/H9n2gDNAV9u0LFeU4RNCkOGFEZGOT1fHA0Mg5FtBJkk0A2J9iJ7DM7PReCIEDkRirQN + wBqOVSEC4Vad1MAAKb7xi6J8CSW2yXFtChX4p9zlmsibRADrqdahyJ7/Qs1GneCuKn8BLwn08eNB + Pq9IOC0tGwLlatTRPZWuugxIvtFOX1sitWSPkK0q2qX4PSI4ucFZvM8fFAK4E1Be9/X4WekCVeQ4 + NMagDBahUpys59iSEDrCunjDAPe66QoI9MGR0OKmTeK0JY5n4WPoiARKuykTbE2Bzjr3mGMBxNen + Y7jvUgd+nSVAMHWb8aJJQ4KygwK6kxTB0C3d959o+Tznw/OC6juCQVI30Adsixc3IFskNpfiYYfo + yfQgoAcfmBmOWnNz0ZETI8C4F2LgAYJfDThEtyJihbS/tDYCtSiUg3+qrFaArOb1AuInka8C/k4X + 5vl7kQ74jWIoS62382fNobDQRkW/bOem3c+A4yYDQrolTzNgSImIGBNc6/BUYH+ULPB6hCyA1TMK + lvJikOkSOLGEs6mowV9lBNhI4SOYjySMApYWzgRAoglSh9z4JYFskYGqpgMaU3cAjasD4FJ4zVHC + Rs0D3zvmKQpPBmcLRooqX/wCnoUnQgGZ76oud+WGXIPqQpJAaER+9V7EKUsiLSVt8pDTJjBgLo9U + KOyDUo1/vE+Z0rY21ZrMHJtY5khyiVpUvc3PwqNgcVW8NU1hQKBxC6KRYLAnRMVRI2GUU+skvt9m + ynDyvdVPkT6yAz9hP574/CyIATOIpxEpQgQ7O40SgxrtSNe2O0Ud4AmqPaNzHMXXbmI/Qt00IALI + m+eruEtWCvveSndqiCpe1Bg1thd1BFzb77ELcSyyGtGpk70kjiK0L9OddIJ1CLEoZ2JCC9fz49PG + AqVUcStKGaJnET5460jFK+qPI5xPQD0sen1kVQRURR4h/EHwZMXuPQDdm7BKRecIWmFWRJQqZNKj + C24XnCT7eaOP5pDLz4IMROoa/7XadUEYSSFfy6edaUX32SDC8z3juDt6GjwW/X0VFwgBrXzEfsWn + rxB1EYIKRevo3yDpxQlNA3XXsl4htH7Ir+hHuVV3rm5JY1z+XPx8VqYFzr7zTa+bzHdg1tOiDy/8 + nWmB5mzegJIRN23ErCM6I0cXbTIBqNQdkF3RXIPY9mAPUFE0yGDqwzMEY+Vh/gSEscqMLN84/xDo + di49U1Fe1DB4iLOBAWD26vTTaMUbAkbLzY+HmfOuB150HVDVh4PZ7SJtc8Q9XbH6D679fvXq4c8f + 3v74buaO4CcxhXYc1FKZoQceE+so5XwcMVF4OCBhk20NgGuY1tsjpTUgn9m0+bM0k4Z8iwlsBshS + C2vAmJUPvoXiSfYzOJVrAExsPpeAtz6TyHPh4ywtcezRWrW382tOxprrORb8Wsc5A/CQDUhWGM4l + oJZhgNYuysw9T3DiLDVMeNuaeKYOyoIBnkiNhp0RbRdtlpPmvHkWr+bbPDsb5tsYFuhM1ySboczi + ylyitWarJRY3JujHTGGe4IC5uz3OQvicrOe2aHEwHWKQxYXfVLC5ZhQqi0IFHm04waksR8WFqFrW + DJV57rDejtLOsYMFwRMGOPPNeAdYMEwWuEgLv6BxXUCWvhiC/JBKNspnGxBY9zHeOYwWeBeMFljO + 8BBbX3sb1UBH3FXrYo3Motf5yA0tNqoprcngSFdjo8IehzUgzHrTibNasw2Ii39Tg8ver7FtLcEs + /hoLqbSf9dQO499ylGLEukBPEb7NIkuvIRlhq7EnWWsxDNyiuAhbmV5cS4TDCHCUFgzIEsdF+dRs + F/Xs4uEMsyx0/gxStDYE5r0EMgebocW+2B4+TTGmbWlRdiYnTQpbKNkEPfa1izIrUudbZvFMVVww + YBcpmkiDLEb5dCGqx2q7AHqLKRB6GWu1Vi4Rgf4w6W7GD/Usyy9EGSsD+SMtCpXzRxx7lGTSzeKs + DTjrhGvz9rM6ajXNFU1lRnYqLKTmHm0yFp7sMR3ZBsSxIMOqOV5q5TCUQG6KrQZPohhhu8kbWeTS + Z4YS+PeXri4sWq3JSjUhg6XIpiqGrZZJYsMvuWu9PdKFPrrThvWj2cJ5mJhC96U1Q54l4HO1nsd6 + 28/C5zlvTgZvuZigj5ptbIoGLwaMi/LJ9OSYjWTngFi7YQcKwiwD3tsSpkEosXUJeoRmiwu/UEtL + 8acDIFyrVbNOkE2zb1CjBhmE0xaGp2YLxzJsQ4newhqbyiWQ0PsXYXs7B8xi+3obarDHCodoMQx0 + Y75UW0xrMuB6qXiEt8V0X27XAHgONkPHLta8kKZxGex+sTK4yzTXEm7CyzagNQCMbECuMvXckNkA + 1ifrpRRSuFSQSXfK0/E8B4xs6GNHx5pswAe+jFq+FGmri3fA/8GI1YG1iydbvWzLMIkdIZiepAm1 + sfEyoXWW0E+ehFZYkAFaQ18bFy3g3F0q6DiamQPg3CjENotzMqyUluKnsTT01WyuRGNHmzFBNsVE + bbQmg7z1c7VQ07Uh6m0b26/VwIiL+yArp+czlW4z2SQjXqCP5WAAJaUaa4CV1yNz2yaF8VIK/Wzp + 4hJHNRtbSeETBlLFvCC4nMloEetl/eHtXcJwmVv4tktdweCboMeWjdcjexEWWdhjYbyTz7r7ZNrD + 26GL1+8aBprLrH+8uA/ut22e/pv5D90oz37PcrnCdyuyDCQHLNmd7u3iT7Jc7EYAUMJY+e7TpmJu + XaKTc6mryxGAbbnohnXNQmLL5krAyTHKw69YWO+jmJdJzVQvcIxhYOabOb2IbOxtLpcnBm43Nz+l + pT3BcZcKamzfWm9LMIeejbLmR/U0TI6hB005dhPTEMaiBWKR79989/2sYjMvfk/v4TPirOKKnLNV + umkxcosGyQVaqpslwHsYfBY4dQCCP6kaMtJ+VmYuWuOk57pBB4db4udZ0PZpaMis5lOxDYSdVzqd + 5e6i9dn6rPCIgNoH7RBCLZYgJlK4AI6WAPCg6ZXAgozPj7EIJRWiViX/AC9DF+ULibAJZvLl/lkY + 2wpXW7qacGrhMemys3ou6dyjxK3QvOUGj9hvZMQLpXTQb+fIrsXwyQerBOvj99nM0H0hfRavfb2e + 8XeWzbFKe4Zje50+aD0XcpJ3OFiR1TfaH8A+tlvUOnfNIjtMioxDuHPLCOLHvtBI3ty2wGS+Mjj4 + WcRvCorI1riBnb3cpENr9IxTNt4JZ001RF88YLXXt0BgL1p2A2ttBWVWtk7ejb5TQ3OLcOjla4iP + ZJNY7pSyzC+UiKOmc8i3+iL1raSeoytXwXxpFu3o2JuvEUvyN7St0sAMudMa7DURoQiTO50s9r2v + hv0kzwCUFHs6tkI5U2hSh05RMsKBKVoHdA6rHF5UczBheN9q3IorMcR7Hg7fjq2roJetWJBUwwbW + G+9QcDpfn4opbKjaVSGsktIGYicAgw21Gt6l2MvvhZ9YmfY1txhFCuECCJsDbGFXWK+tujuTtq48 + xT4anzAFsqU9h76DYpHVi7lWrZKrRfy5lbR69tXeNDamYG1ZKlS59L2iV7ViBzaSJfKGD4C/TQkS + im1mfU5qxLn72k0JW2WEZay7vCPIVO2Dv8L5hapcSiPgWMdSpRQqdgQGUoDWJg4WpIUolQULryKg + E32ZnfpcyuQ9b+WbQ/PkBa6Cq4wWos3hYLh0NWJ39TpYbNIqaVSjmdtmzTMp7wq3wJEXK3yvJdMY + fM/LbJAQHj62ujRMsW9oSFo6IlcJNKErU/EAXZUNHlpHLgBIighkA2cFytJWrLN5u553jmdBWkoL + eS/y8ida9O5NvRoIyNZ7EMLNF7FZixAhgpyKe0Z8CxOzEC7NClQj0gkAuMVwsz/GlSBSSF5LRXbf + eXZlwVTa0hLNs2iZQwqGgFS/j3XWpNnKI/oubsYLIYu2aqRehNqsxYr8c4BgI9EDljlZnnONFCOp + vUYUtZX4hxitSPfXM1gsvl8oFm0EmTbE2Wesrr2lUIri9wJe0Ra0Sl4+4qyB+S2HrXfkrM07s9Gi + RAnTBhSnuINueCRlD4qYMBRF2qvRo3urWFTgN4Yu8ZCWuFI2iSjwPlRe6zMlfGw6DC+kJYw/0Tl6 + 23uJxlbjHrsgNm1Moy1QxULhdraA5cw7oet0Vxzr1pikn4ZlbNHi+FKd2pY2V7LFovql5aEbZy1b + 52jicbSs/WutaZTKwzTKTFhM8dLAHn5fCP+VPCyTOwGD/IoabbFqd0ADvzjr1SB/Ut6ejUEeIuLd + AzCmMukwZMK2jYHsJZctb2Vfbsy3q/W8qTlWr+9WvdetyXvAkor7yRb2sBenhRgjbiH/SMG1LnC8 + /auFcShwj8JBmdGq99bCziZ8z96zLu2xw0qGOF+FYawQenYfS+U6CrNhiii8ghf9plAoy/OkgFNE + ZeYFPJSzcV6AGi4MZEpVEFqY3nAyiuHVm+ivXj28/fAXZpPa8DwJH0Sb0Vgx9g3o/VAnIrFXwX/f + NATneQbHszNEl98PNja5MxKQsi0vBanY2te7BEsAoW1nJkigrTW9S5c0lh3qYQPXmqsA0evYc1tb + 2ike6iEe2J0G9gzwfMdSiEmdlIM2xQ1gE4Nm0Eh6Z0TYsyAfDxHWg13L7mu2cGgsx6Rdk7j3WUoD + NJG8XmIniOYP2Y4rGcY6thHQ4u7czKAHqNkaaBEPCFsh9oQOuGdLHhIQtz3orv3MjZrACdh22OHY + SMtKz35o4nh2Dkf7+uAs9e3EB7t8ggJz6DGFeWai6xkQsKrijYdanECEZ0jhwYMt4XQoBc+TGHpi + AnpP3mQqqS1LiJWbnAgaXZkL/pGPaA62h4sU0XnQHCCHiNSEI2ojEmfdDk4MNVghaA8lpUhin5C3 + pl/ms7KfIG+5p5C01zE8P+sUVDDZmacZZLU9TMwpUOQHn0qkDtIzWH3jsjNl2oVM0+/wKSRsXoKr + wIM43rySbD7zdaifQfTq2YtDo5Z5eEKRo35zYDcwXfZDydLGlneC5yBprV33hK0JbDr994CfRzA2 + lFb1JAI1vXdfIxSunInYml7ZDXx3LPjJJ8YiI0TPJxEhgAR0Ww8m+4HFcUlpy9syXaSZmWPrgE51 + c1pS3QLzVLbUAMM/14gLNely1GxoPs5ZNKHVgnpPeW8gzTO/6QL7VLduZ3bI+VzY2ANm8LhjPXDv + 1oqetpRJH1vQPp5lKbIWRJh9uKdBGCWJ98ksjU6Q1J2dWQw5jSFxKHuGfUtv3IMbHlBwiTFW3/az + GBKKsLn+3KrmeDP73KXZecsF8CiEJvlqkPxSaYLrvAkXe/aVvNT4ntFgA7bUZvatsGQkZW6ylCQd + 4naUYj+UwwyLrMAKmOewsB2FQdCuOiQzDXEnN8sZ+4kUzT0NOb1BlpbjJ0nPlDIxvB9P0RMuRU9j + lO14HbN8EsvgjSQVCIFmtsImVflQU5OiHIaDPfa2LMF+yoGIvWE5wjPxZclIPvKJFzCeqPdIsjqI + Ixf0Jyjo58oKCLdd/WFrLOfBNC9wzBNpXiYX0V5Fw+QUNj2VsiYcqGO9JKVZXrvr9C1bEGEwJUsD + GVDNyB0ICKEHyU3xdKk4JFix7XUe8WFoIsXIsnqeJc/nM01pi8F5UkK0SCrFn4Yrcs46zYyJF7uS + PIZH2jLLLHuKJRibpDMd67meZUU57iZKu0Tp1C5ZrQQ1rKhoutseHubl5fdNNSHPsflzHiVL9Mz5 + 9Phc2ZQIR5TznJ0WENpWaCljO/FWj+78BaamNHc1w+crlQJbpUmmKGdGG6t/fn0eYBDKtGM/YpG2 + cz6NxaOiia2u2Z1jO8BQJM/YokSIdejxuNo3zqt901/8hQK9l0F58EKSb0mOB7ct8gNemghL44E5 + WWEeTfEvmM12KqFnPTbIz15ldCpJObRR/UGbTnmX8xR9c2wYuYmTzBMXwqR9twwDtkpm8Jw05gnP + u1JmmOo3MLo7u3MmqdL1KYhJGnHL+o6i+puxn1jlGQwKqGU73T4gMMeZt7qvVNhZ4oxnOUjI+3mQ + IrkffFZeLkeV06NfvXr48MPj+9nTVJJ2bjCe0/D7WU9TZyrF3y0ArdQ1iEd4tSWTkjbCnFcL6JCq + NwHMyHkLyY543vgBQyXR7ozN5VoInjjRCx1g67feLDpRvlWJx09dxwlQs0WNeeyXHxx7c9PWvDWP + v28tAVsKdh7hlxD52G8BoD8pBRhmjrlclXiTuUY9q78VcsLZgRLOQ2IzVak9Y8/alXjs+M7w7ElS + EvGMpSIVkWPacoJtS7QgFtku/qDj1OTWi7G1qPCyBJH6GbArMFSgW8dU31uEQtzSrHC1nQacrUt6 + sUfn4WwVADDXdklHUV8U6yA60vs24JB3xTa4WXi2yHm3mZaTz+DXbdmWfbXyl3JNue4tUc+STWFr + cglxK64xKV7O9jYlAWzBlnVlRkNSM3u30qEH9pk/2nrqmtxHUbduqeEDMbYBae9T2ip1fCF5hV9o + boJ/qFrmWX5paLchD/kP7RnSTG88G1jY2LQlrp/llHgviyZmTtHe+5XYEOA/ds3vxC0TRcdZeipj + 3Dsit3PNES6UZnhmp4B3tSkIG7Kluano8XxNKcWpjNy3WqtkFVqYbs8nkfldub75PEzsW0Eu7kVH + po+81ecRdPGEU9mSo+w+8lzAQ9c+BwDGlfPp0L1BMzaHNFaVsiVsSpZYM2cXSjHQ2u5S2LItCaIv + ftXznFLZhIPxsJe9Z71Nh5Y509hiIx4al8RJbVsEPub1UWWetPdhyrFdf8KC/HYeO+lNDUVDZzYY + uX6kvF+PUcp+vny7YWNI2Dfv/ShnH5P4uyypO4P3rK8pEydyMj5oInOioLv4bb+mAxZVrP3sv7l2 + RqIpSnl5glM+z3qbksb8zHEoY+eN85k79qgnVaX75Nn1LsUByDyjpG0g1tqJwRJsOZuctO3NJ+/S + duvTvMhFGu+etTalLWtXgnZd7dEXW5+EVJkJYcnz9e2aheetTYw1PPazTwaAjbUgQKFUsWW3kLvU + ImgfXgp6rQKVnCaQhkLMhLPk5WPfbqWK82T1PMMqlxyVLV2OGbdLjYY6XEwetaUH/W1D2xl8ZiZ9 + jmzPGOWy5VfKdhNFikFxxntJ9HqloI0CPK+tsG8NTbDf0scfVYanE+G1R2iS3o1b8fDXc0Z1UwrT + dkh7U37WNetySnWzvJldGk4lbDkj5rW1+7H5uKUcmhVkt5NorLRdyFUQXsglStI9Nq/eEN2d1QqU + FvbhosjH835VaWJi8DpV8dbUWeb9RNe8TTMbz/NFQbswa95SIbzmyzfxhL375ldSRuwCavoD7cZs + RU7LMF8kiGttvw5j07RsD/LqoFF4ZAtFnVlmsRzj17Ena47tXhKoI23wAnW02YqFP3+hCGsjXuGw + PWvLkw39BWtoXrW3sV0Rx5yDg7oXdStn8sCbgt69OPDrewqct4J6N2zwpjTPFn1veOetjOKoMcGk + l20872XyzgdjXkkYDWcf6e3L5RtRM0a1Kb7ZzuF5oPDEio9gysEzAQ6/bKgRA89wWq/j0NwRQ647 + Wxb2vTDB1PRmlHLUdpNWKnbZ3dn3q5+/evXw+pv/tDtd/+o/vFzw+nLB68sFr+XlglfLYLxc8Do/ + v1zwemZ6Xi54ffVywevLBa8vF7y+XPD6csHrywWvr14ueH254PXlgteXC17/317w+vNXPzOf9Pj0 + 9OHp4Tfvf3z79uef/xesyVwkr3cAAA== headers: Age: - '0' @@ -358,7 +227,7 @@ interactions: content-type: - application/json;charset=utf-8 date: - - Mon, 08 Jan 2024 11:43:37 GMT + - Thu, 29 Feb 2024 18:46:31 GMT server: - ATS vary: @@ -366,7 +235,7 @@ interactions: x-envoy-decorator-operation: - finance-chart-api--mtls-production-gq1.finance-k8s.svc.yahoo.local:4080/* x-envoy-upstream-service-time: - - '5' + - '7' status: code: 200 message: OK diff --git a/openbb_platform/providers/yfinance/tests/test_yfinance_fetchers.py b/openbb_platform/providers/yfinance/tests/test_yfinance_fetchers.py index 19bf2b94ccc..7fe29e3c429 100644 --- a/openbb_platform/providers/yfinance/tests/test_yfinance_fetchers.py +++ b/openbb_platform/providers/yfinance/tests/test_yfinance_fetchers.py @@ -63,23 +63,28 @@ def vcr_config(): @pytest.mark.record_http -def test_y_finance_historical_dividends_fetcher(credentials=test_credentials): - params = {"symbol": "IBM"} +def test_y_finance_crypto_historical_fetcher(credentials=test_credentials): + params = { + "symbol": "BTCUSD", + "start_date": date(2023, 1, 1), + "end_date": date(2023, 1, 10), + "interval": "1d", + } - fetcher = YFinanceHistoricalDividendsFetcher() + fetcher = YFinanceCryptoHistoricalFetcher() result = fetcher.test(params, credentials) assert result is None @pytest.mark.record_http -def test_y_finance_market_indices_fetcher(credentials=test_credentials): +def test_y_finance_currency_historical_fetcher(credentials=test_credentials): params = { - "symbol": "^GSPC", + "symbol": "EURUSD", "start_date": date(2023, 1, 1), "end_date": date(2023, 1, 10), } - fetcher = YFinanceMarketIndicesFetcher() + fetcher = YFinanceCurrencyHistoricalFetcher() result = fetcher.test(params, credentials) assert result is None @@ -97,23 +102,13 @@ def test_y_finance_index_historical_fetcher(credentials=test_credentials): assert result is None -@pytest.mark.record_http -def test_y_finance_crypto_historical_fetcher(credentials=test_credentials): - params = { - "symbol": "BTCUSD", - "start_date": date(2023, 1, 1), - "end_date": date(2023, 1, 10), - } - - fetcher = YFinanceCryptoHistoricalFetcher() - result = fetcher.test(params, credentials) - assert result is None - - @pytest.mark.record_http def test_y_finance_equity_historical_fetcher(credentials=test_credentials): params = { "symbol": "AAPL", + "start_date": date(2023, 1, 1), + "end_date": date(2023, 1, 10), + "interval": "1d", } fetcher = YFinanceEquityHistoricalFetcher() @@ -122,14 +117,23 @@ def test_y_finance_equity_historical_fetcher(credentials=test_credentials): @pytest.mark.record_http -def test_y_finance_currency_historical_fetcher(credentials=test_credentials): +def test_y_finance_historical_dividends_fetcher(credentials=test_credentials): + params = {"symbol": "IBM"} + + fetcher = YFinanceHistoricalDividendsFetcher() + result = fetcher.test(params, credentials) + assert result is None + + +@pytest.mark.record_http +def test_y_finance_market_indices_fetcher(credentials=test_credentials): params = { - "symbol": "EURUSD", + "symbol": "^GSPC", "start_date": date(2023, 1, 1), "end_date": date(2023, 1, 10), } - fetcher = YFinanceCurrencyHistoricalFetcher() + fetcher = YFinanceMarketIndicesFetcher() result = fetcher.test(params, credentials) assert result is None