diff --git a/openbb_platform/core/openbb_core/provider/standard_models/income_statement_growth.py b/openbb_platform/core/openbb_core/provider/standard_models/income_statement_growth.py index f1b5f97ea35..fa88e3e1584 100644 --- a/openbb_platform/core/openbb_core/provider/standard_models/income_statement_growth.py +++ b/openbb_platform/core/openbb_core/provider/standard_models/income_statement_growth.py @@ -116,4 +116,3 @@ class IncomeStatementGrowthData(Data): if isinstance(v, str): return v.upper() return ",".join([symbol.upper() for symbol in list(v)]) if v else None - return ",".join([symbol.upper() for symbol in list(v)]) if v else None diff --git a/openbb_platform/core/openbb_core/provider/utils/client.py b/openbb_platform/core/openbb_core/provider/utils/client.py index b84053175e8..ff6002ba12a 100644 --- a/openbb_platform/core/openbb_core/provider/utils/client.py +++ b/openbb_platform/core/openbb_core/provider/utils/client.py @@ -71,6 +71,7 @@ class ClientSession(aiohttp.ClientSession): super().__init__(*args, **kwargs) + # pylint: disable=unused-argument def __del__(self, _warnings: Any = warnings) -> None: """Close the session.""" if not self.closed: 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 30dab874fc1..79e65dd7426 100644 --- a/openbb_platform/providers/fmp/openbb_fmp/models/equity_historical.py +++ b/openbb_platform/providers/fmp/openbb_fmp/models/equity_historical.py @@ -9,8 +9,11 @@ from openbb_core.provider.standard_models.equity_historical import ( EquityHistoricalData, EquityHistoricalQueryParams, ) -from openbb_core.provider.utils.client import ClientResponse -from openbb_core.provider.utils.helpers import async_requests, get_querystring +from openbb_core.provider.utils.helpers import ( + ClientResponse, + async_requests, + get_querystring, +) from openbb_fmp.utils.helpers import get_interval from pydantic import Field, NonNegativeInt diff --git a/openbb_platform/providers/fmp/openbb_fmp/models/equity_valuation_multiples.py b/openbb_platform/providers/fmp/openbb_fmp/models/equity_valuation_multiples.py index 22dd4c4ba7b..77091f2464d 100644 --- a/openbb_platform/providers/fmp/openbb_fmp/models/equity_valuation_multiples.py +++ b/openbb_platform/providers/fmp/openbb_fmp/models/equity_valuation_multiples.py @@ -7,8 +7,7 @@ from openbb_core.provider.standard_models.equity_valuation_multiples import ( EquityValuationMultiplesData, EquityValuationMultiplesQueryParams, ) -from openbb_core.provider.utils.client import ClientResponse -from openbb_core.provider.utils.helpers import async_requests +from openbb_core.provider.utils.helpers import ClientResponse, async_requests from openbb_fmp.utils.helpers import create_url diff --git a/openbb_platform/providers/fred/openbb_fred/models/series.py b/openbb_platform/providers/fred/openbb_fred/models/series.py index 3c400bbdb37..dc51040a784 100644 --- a/openbb_platform/providers/fred/openbb_fred/models/series.py +++ b/openbb_platform/providers/fred/openbb_fred/models/series.py @@ -10,9 +10,13 @@ from openbb_core.provider.standard_models.fred_series import ( SeriesData, SeriesQueryParams, ) -from openbb_core.provider.utils.client import ClientResponse, ClientSession from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS -from openbb_core.provider.utils.helpers import async_requests, get_querystring +from openbb_core.provider.utils.helpers import ( + ClientResponse, + ClientSession, + async_requests, + get_querystring, +) from pydantic import Field _warn = warnings.warn diff --git a/openbb_platform/providers/intrinio/openbb_intrinio/models/balance_sheet.py b/openbb_platform/providers/intrinio/openbb_intrinio/models/balance_sheet.py index e54c245c6d9..23bf418aaa4 100644 --- a/openbb_platform/providers/intrinio/openbb_intrinio/models/balance_sheet.py +++ b/openbb_platform/providers/intrinio/openbb_intrinio/models/balance_sheet.py @@ -120,14 +120,15 @@ class IntrinioBalanceSheetFetcher( period_type = "FY" if query.period == "annual" else "QTR" base_url = "https://api-v2.intrinio.com" - fundamentals_url_params = f"statement_code={statement_code}&type={period_type}" + fundamentals_url = ( f"{base_url}/companies/{query.symbol}/fundamentals?" - f"{fundamentals_url_params}&api_key={api_key}" + f"statement_code={statement_code}&type={period_type}&api_key={api_key}" + ) + fundamentals_data = (await get_data_one(fundamentals_url, **kwargs)).get( + "fundamentals", [] ) - fundamentals_response = await get_data_one(fundamentals_url, **kwargs) - fundamentals_data = fundamentals_response.get("fundamentals", []) fiscal_periods = [ f"{item['fiscal_year']}-{item['fiscal_period']}" for item in fundamentals_data diff --git a/openbb_platform/providers/intrinio/openbb_intrinio/models/cash_flow.py b/openbb_platform/providers/intrinio/openbb_intrinio/models/cash_flow.py index eb76a3e101a..0dda995dd01 100644 --- a/openbb_platform/providers/intrinio/openbb_intrinio/models/cash_flow.py +++ b/openbb_platform/providers/intrinio/openbb_intrinio/models/cash_flow.py @@ -117,14 +117,14 @@ class IntrinioCashFlowStatementFetcher( period_type = "FY" if query.period == "annual" else "QTR" base_url = "https://api-v2.intrinio.com" - fundamentals_url_params = f"statement_code={statement_code}&type={period_type}" + fundamentals_url = ( f"{base_url}/companies/{query.symbol}/fundamentals?" - f"{fundamentals_url_params}&api_key={api_key}" + f"statement_code={statement_code}&type={period_type}&api_key={api_key}" + ) + fundamentals_data = (await get_data_one(fundamentals_url, **kwargs)).get( + "fundamentals", [] ) - - fundamentals_response = await get_data_one(fundamentals_url, **kwargs) - fundamentals_data = fundamentals_response.get("fundamentals", []) fiscal_periods = [ f"{item['fiscal_year']}-{item['fiscal_period']}" diff --git a/openbb_platform/providers/intrinio/openbb_intrinio/models/income_statement.py b/openbb_platform/providers/intrinio/openbb_intrinio/models/income_statement.py index 0395ecdba40..33be2671a0c 100644 --- a/openbb_platform/providers/intrinio/openbb_intrinio/models/income_statement.py +++ b/openbb_platform/providers/intrinio/openbb_intrinio/models/income_statement.py @@ -120,14 +120,14 @@ class IntrinioIncomeStatementFetcher( data_tags = ["ebit", "ebitda", "ebitdamargin"] base_url = "https://api-v2.intrinio.com" - fundamentals_url_params = f"statement_code={statement_code}&type={period_type}" + fundamentals_url = ( f"{base_url}/companies/{query.symbol}/fundamentals?" - f"{fundamentals_url_params}&api_key={api_key}" + f"statement_code={statement_code}&type={period_type}&api_key={api_key}" + ) + fundamentals_data = (await get_data_one(fundamentals_url, **kwargs)).get( + "fundamentals", [] ) - - fundamentals_response = await get_data_one(fundamentals_url, **kwargs) - fundamentals_data = fundamentals_response.get("fundamentals", []) fiscal_periods = [ f"{item['fiscal_year']}-{item['fiscal_period']}" @@ -142,9 +142,8 @@ class IntrinioIncomeStatementFetcher( statement_data = await response.json() calculations_url = f"{base_url}/fundamentals/{intrinio_id}/standardized_financials?api_key={api_key}" - calculations_response = await session.get(calculations_url) + calculations_data = await session.get_json(calculations_url) - calculations_data = await calculations_response.json() calculations_data = [ item for item in calculations_data.get("standardized_financials", []) diff --git a/openbb_platform/providers/intrinio/openbb_intrinio/models/options_chains.py b/openbb_platform/providers/intrinio/openbb_intrinio/models/options_chains.py index 0985ea3f819..094c4293993 100644 --- a/openbb_platform/providers/intrinio/openbb_intrinio/models/options_chains.py +++ b/openbb_platform/providers/intrinio/openbb_intrinio/models/options_chains.py @@ -49,6 +49,7 @@ class IntrinioOptionsChainsData(OptionsChainsData): # only pass it to the parser if it is not a datetime object if isinstance(v, str): return parser.parse(v) + return v class IntrinioOptionsChainsFetcher( diff --git a/openbb_platform/providers/nasdaq/openbb_nasdaq/models/calendar_earnings.py b/openbb_platform/providers/nasdaq/openbb_nasdaq/models/calendar_earnings.py index 1766ddb142f..1bd5cab1f8d 100644 --- a/openbb_platform/providers/nasdaq/openbb_nasdaq/models/calendar_earnings.py +++ b/openbb_platform/providers/nasdaq/openbb_nasdaq/models/calendar_earnings.py @@ -166,8 +166,7 @@ class NasdaqCalendarEarningsFetcher( r_json["data"]["asOf"], "%a, %b %d, %Y" ).date() if len(response) > 0: - [d.update({"date": _as_of_date}) for d in response] - data.extend(response) + data.extend([{**d, "date": _as_of_date} for d in response]) with ThreadPoolExecutor() as executor: executor.map(get_calendar_data, dates) diff --git a/openbb_platform/providers/nasdaq/openbb_nasdaq/models/calendar_ipo.py b/openbb_platform/providers/nasdaq/openbb_nasdaq/models/calendar_ipo.py index 0e1bde2eb98..25a99b5956d 100644 --- a/openbb_platform/providers/nasdaq/openbb_nasdaq/models/calendar_ipo.py +++ b/openbb_platform/providers/nasdaq/openbb_nasdaq/models/calendar_ipo.py @@ -145,10 +145,8 @@ class NasdaqCalendarIpoFetcher( dates = sorted( list( set( - [ - date.strftime("%Y-%m") - for date in date_range(query.start_date, query.end_date) - ] + date.strftime("%Y-%m") + for date in date_range(query.start_date, query.end_date) ) ) ) diff --git a/openbb_platform/providers/tradingeconomics/openbb_tradingeconomics/models/economic_calendar.py b/openbb_platform/providers/tradingeconomics/openbb_tradingeconomics/models/economic_calendar.py index 4a2a31397b0..d8c845f88fe 100644 --- a/openbb_platform/providers/tradingeconomics/openbb_tradingeconomics/models/economic_calendar.py +++ b/openbb_platform/providers/tradingeconomics/openbb_tradingeconomics/models/economic_calendar.py @@ -9,7 +9,7 @@ from openbb_core.provider.standard_models.economic_calendar import ( EconomicCalendarData, EconomicCalendarQueryParams, ) -from openbb_core.provider.utils.helpers import make_request +from openbb_core.provider.utils.helpers import ClientResponse, async_request from openbb_tradingeconomics.utils import url_generator from openbb_tradingeconomics.utils.countries import country_list from pandas import to_datetime @@ -108,7 +108,7 @@ class TEEconomicCalendarFetcher( return TEEconomicCalendarQueryParams(**params) @staticmethod - def extract_data( + async def extract_data_async( query: TEEconomicCalendarQueryParams, credentials: Optional[Dict[str, str]], **kwargs: Any, @@ -133,10 +133,14 @@ class TEEconomicCalendarFetcher( "No url generated. Check combination of input parameters." ) url = f"{url}{api_key}" - response = make_request(url, **kwargs) - if response.status_code != 200: - raise RuntimeError(f"Error in TE request -> {response.text}") - return response.json() + + async def callback(response: ClientResponse, _: Any) -> List[Dict]: + """Return the response.""" + if response.status != 200: + raise RuntimeError(f"Error in TE request -> {await response.text()}") + return await response.json() + + return await async_request(url, response_callback=callback, **kwargs) @staticmethod def transform_data(