diff --git a/openbb_sdk/providers/polygon/openbb_polygon/models/balance_sheet.py b/openbb_sdk/providers/polygon/openbb_polygon/models/balance_sheet.py index 2835de250e8..bdd851a7d0b 100644 --- a/openbb_sdk/providers/polygon/openbb_polygon/models/balance_sheet.py +++ b/openbb_sdk/providers/polygon/openbb_polygon/models/balance_sheet.py @@ -56,8 +56,7 @@ class PolygonBalanceSheetFetcher( def extract_data( query: PolygonBalanceSheetQueryParams, credentials: Optional[Dict[str, str]] ) -> List[PolygonBalanceSheetData]: - if credentials: - api_key = credentials.get("polygon_api_key") + api_key = credentials.get("polygon_api_key") if credentials else "" base_url = "https://api.polygon.io/vX/reference/financials" query_string = get_querystring(query.dict(), []) diff --git a/openbb_sdk/providers/polygon/openbb_polygon/models/cash_flow.py b/openbb_sdk/providers/polygon/openbb_polygon/models/cash_flow.py index 6c82e04d9fc..8d3bf292bbc 100644 --- a/openbb_sdk/providers/polygon/openbb_polygon/models/cash_flow.py +++ b/openbb_sdk/providers/polygon/openbb_polygon/models/cash_flow.py @@ -62,8 +62,8 @@ class PolygonCashFlowStatementFetcher( query: PolygonCashFlowStatementQueryParams, credentials: Optional[Dict[str, str]], ) -> List[PolygonCashFlowStatementData]: - if credentials: - api_key = credentials.get("polygon_api_key") + + api_key = credentials.get("polygon_api_key") if credentials else "" base_url = "https://api.polygon.io/vX/reference/financials" query_string = get_querystring(query.dict(), []) diff --git a/openbb_sdk/providers/polygon/openbb_polygon/models/crypto_eod.py b/openbb_sdk/providers/polygon/openbb_polygon/models/crypto_eod.py index 10626a4d692..777d6be1e27 100644 --- a/openbb_sdk/providers/polygon/openbb_polygon/models/crypto_eod.py +++ b/openbb_sdk/providers/polygon/openbb_polygon/models/crypto_eod.py @@ -2,7 +2,7 @@ from datetime import datetime, timedelta -from typing import Dict, List, Literal, Optional +from typing import Any, Dict, List, Literal, Optional from openbb_provider.abstract.fetcher import Fetcher from openbb_provider.helpers import data_transformer @@ -68,25 +68,23 @@ class PolygonCryptoEODFetcher( ] ): @staticmethod - def transform_query( - query: CryptoEODQueryParams, extra_params: Optional[Dict] = None - ) -> PolygonCryptoEODQueryParams: + def transform_query(params: Dict[str, Any]) -> PolygonCryptoEODQueryParams: now = datetime.now().date() - start_date = query.start_date or (now - timedelta(days=7)) - end_date = query.end_date or now - return PolygonCryptoEODQueryParams( - symbol=query.symbol, - start_date=start_date, - end_date=end_date, - **extra_params or {}, - ) + transformed_params = params + if params.get("start_date") is None: + transformed_params["start_date"] = now - timedelta(days=7) + + if params.get("end_date") is None: + transformed_params["end_date"] = now + + return PolygonCryptoEODQueryParams(**transformed_params) @staticmethod def extract_data( query: PolygonCryptoEODQueryParams, credentials: Optional[Dict[str, str]] ) -> List[PolygonCryptoEODData]: - if credentials: - api_key = credentials.get("polygon_api_key") + + api_key = credentials.get("polygon_api_key") if credentials else "" request_url = ( f"https://api.polygon.io/v2/aggs/ticker/" @@ -107,5 +105,5 @@ class PolygonCryptoEODFetcher( return [PolygonCryptoEODData(**d) for d in data] @staticmethod - def transform_data(data: List[PolygonCryptoEODData]) -> List[CryptoEODData]: - return data_transformer(data, CryptoEODData) + def transform_data(data: List[PolygonCryptoEODData]) -> List[PolygonCryptoEODData]: + return data diff --git a/openbb_sdk/providers/polygon/openbb_polygon/models/forex_eod.py b/openbb_sdk/providers/polygon/openbb_polygon/models/forex_eod.py index 1eaade89318..0a65b25b52a 100644 --- a/openbb_sdk/providers/polygon/openbb_polygon/models/forex_eod.py +++ b/openbb_sdk/providers/polygon/openbb_polygon/models/forex_eod.py @@ -2,7 +2,7 @@ from datetime import datetime, timedelta -from typing import Dict, List, Literal, Optional +from typing import Any, Dict, List, Literal, Optional from openbb_provider.abstract.fetcher import Fetcher from openbb_provider.helpers import data_transformer @@ -68,28 +68,26 @@ class PolygonForexEODFetcher( ] ): @staticmethod - def transform_query( - query: ForexEODQueryParams, extra_params: Optional[Dict] = None - ) -> PolygonForexEODQueryParams: - return PolygonForexEODQueryParams( - symbol=query.symbol, - **extra_params or {}, - ) + def transform_query(params: Dict[str, Any]) -> PolygonForexEODQueryParams: + now = datetime.now().date() + transformed_params = params + if params.get("start_date") is None: + transformed_params["start_date"] = now - timedelta(days=7) + + if params.get("end_date") is None: + transformed_params["end_date"] = now + return PolygonForexEODQueryParams(**transformed_params) @staticmethod def extract_data( query: PolygonForexEODQueryParams, credentials: Optional[Dict[str, str]] ) -> List[PolygonForexEODData]: - if credentials: - api_key = credentials.get("polygon_api_key") + api_key = credentials.get("polygon_api_key") if credentials else "" - now = datetime.now() - start_date = query.start_date or (now - timedelta(days=7)).date() - end_date = query.end_date or now.date() request_url = ( f"https://api.polygon.io/v2/aggs/ticker/" f"C:{query.symbol}/range/1/{query.timespan}/" - f"{start_date}/{end_date}?adjusted={query.adjusted}" + f"{query.start_date}/{query.end_date}?adjusted={query.adjusted}" f"&sort={query.sort}&limit={query.limit}&multiplier={query.multiplier}" f"&apiKey={api_key}" ) @@ -105,5 +103,5 @@ class PolygonForexEODFetcher( return [PolygonForexEODData(**d) for d in data] @staticmethod - def transform_data(data: List[PolygonForexEODData]) -> List[ForexEODData]: - return data_transformer(data, ForexEODData) + def transform_data(data: List[PolygonForexEODData]) -> List[PolygonForexEODData]: + return data diff --git a/openbb_sdk/providers/polygon/openbb_polygon/models/forex_pairs.py b/openbb_sdk/providers/polygon/openbb_polygon/models/forex_pairs.py index 85ccbe07fba..19f710b7c34 100644 --- a/openbb_sdk/providers/polygon/openbb_polygon/models/forex_pairs.py +++ b/openbb_sdk/providers/polygon/openbb_polygon/models/forex_pairs.py @@ -5,7 +5,7 @@ from datetime import ( date as dateType, datetime, ) -from typing import Dict, List, Literal, Optional +from typing import Any, Dict, List, Literal, Optional from openbb_provider.abstract.fetcher import Fetcher from openbb_provider.helpers import data_transformer @@ -88,19 +88,14 @@ class PolygonForexPairsFetcher( ] ): @staticmethod - def transform_query( - query: ForexPairsQueryParams, extra_params: Optional[Dict] = None - ) -> PolygonForexPairsQueryParams: - return PolygonForexPairsQueryParams( - **extra_params or {}, - ) + def transform_query(params: Dict[str, Any]) -> PolygonForexPairsQueryParams: + return PolygonForexPairsQueryParams(**params) @staticmethod def extract_data( query: PolygonForexPairsQueryParams, credentials: Optional[Dict[str, str]] ) -> List[PolygonForexPairsData]: - if credentials: - api_key = credentials.get("polygon_api_key") + api_key = credentials.get("polygon_api_key") if credentials else "" tickers = f"ticker=C:{query.symbol}" if query.symbol else "" request_url = ( @@ -135,5 +130,5 @@ class PolygonForexPairsFetcher( return all_data @staticmethod - def transform_data(data: List[PolygonForexPairsData]) -> List[ForexPairsData]: - return data_transformer(data, ForexPairsData) + def transform_data(data: List[PolygonForexPairsData]) -> List[PolygonForexPairsData]: + return data diff --git a/openbb_sdk/providers/polygon/openbb_polygon/models/income_statement.py b/openbb_sdk/providers/polygon/openbb_polygon/models/income_statement.py index 26850fdadbe..6b5ada94c39 100644 --- a/openbb_sdk/providers/polygon/openbb_polygon/models/income_statement.py +++ b/openbb_sdk/providers/polygon/openbb_polygon/models/income_statement.py @@ -73,8 +73,7 @@ class PolygonIncomeStatementFetcher( def extract_data( query: PolygonIncomeStatementQueryParams, credentials: Optional[Dict[str, str]] ) -> List[PolygonIncomeStatementData]: - if credentials: - api_key = credentials.get("polygon_api_key") + api_key = credentials.get("polygon_api_key") if credentials else "" base_url = "https://api.polygon.io/vX/reference/financials" query_string = get_querystring(query.dict(), []) diff --git a/openbb_sdk/providers/polygon/openbb_polygon/models/major_indices_eod.py b/openbb_sdk/providers/polygon/openbb_polygon/models/major_indices_eod.py index 619a6b63a85..7a76aacbdb7 100644 --- a/openbb_sdk/providers/polygon/openbb_polygon/models/major_indices_eod.py +++ b/openbb_sdk/providers/polygon/openbb_polygon/models/major_indices_eod.py @@ -2,7 +2,7 @@ from datetime import datetime, timedelta -from typing import Dict, List, Literal, Optional +from typing import Any, Dict, List, Literal, Optional from openbb_provider.abstract.fetcher import Fetcher from openbb_provider.helpers import data_transformer @@ -71,25 +71,21 @@ class PolygonMajorIndicesEODFetcher( ] ): @staticmethod - def transform_query( - query: MajorIndicesEODQueryParams, extra_params: Optional[Dict] = None - ) -> PolygonMajorIndicesEODQueryParams: + def transform_query(params: Dict[str, Any]) -> PolygonMajorIndicesEODQueryParams: now = datetime.now().date() - start_date = query.start_date or (now - timedelta(days=7)) - end_date = query.end_date or now - return PolygonMajorIndicesEODQueryParams( - symbol=query.symbol, - start_date=start_date, - end_date=end_date, - **extra_params or {}, - ) + transformed_params = params + if params.get("start_date") is None: + transformed_params["start_date"] = now - timedelta(days=7) + + if params.get("end_date") is None: + transformed_params["end_date"] = now + return PolygonMajorIndicesEODQueryParams(**transformed_params) @staticmethod def extract_data( query: PolygonMajorIndicesEODQueryParams, credentials: Optional[Dict[str, str]] ) -> List[PolygonMajorIndicesEODData]: - if credentials: - api_key = credentials.get("polygon_api_key") + api_key = credentials.get("polygon_api_key") if credentials else "" request_url = ( f"https://api.polygon.io/v2/aggs/ticker/" @@ -112,5 +108,5 @@ class PolygonMajorIndicesEODFetcher( @staticmethod def transform_data( data: List[PolygonMajorIndicesEODData], - ) -> List[MajorIndicesEODData]: - return data_transformer(data, MajorIndicesEODData) + ) -> List[PolygonMajorIndicesEODData]: + return data diff --git a/openbb_sdk/providers/polygon/openbb_polygon/models/stock_eod.py b/openbb_sdk/providers/polygon/openbb_polygon/models/stock_eod.py index a039b15cbbb..3d328ab3d92 100644 --- a/openbb_sdk/providers/polygon/openbb_polygon/models/stock_eod.py +++ b/openbb_sdk/providers/polygon/openbb_polygon/models/stock_eod.py @@ -2,7 +2,7 @@ from datetime import datetime, timedelta -from typing import Dict, List, Literal, Optional +from typing import Any, Dict, List, Literal, Optional from openbb_provider.abstract.fetcher import Fetcher from openbb_provider.helpers import data_transformer @@ -68,25 +68,21 @@ class PolygonStockEODFetcher( ] ): @staticmethod - def transform_query( - query: StockEODQueryParams, extra_params: Optional[Dict] = None - ) -> PolygonStockEODQueryParams: + def transform_query(params: Dict[str, Any]) -> PolygonStockEODQueryParams: now = datetime.now().date() - start_date = query.start_date or (now - timedelta(days=7)) - end_date = query.end_date or now - return PolygonStockEODQueryParams( - symbol=query.symbol, - start_date=start_date, - end_date=end_date, - **extra_params or {}, - ) + transformed_params = params + if params.get("start_date") is None: + transformed_params["start_date"] = now - timedelta(days=7) + + if params.get("end_date") is None: + transformed_params["end_date"] = now + return PolygonStockEODQueryParams(**transformed_params) @staticmethod def extract_data( query: PolygonStockEODQueryParams, credentials: Optional[Dict[str, str]] ) -> List[PolygonStockEODData]: - if credentials: - api_key = credentials.get("polygon_api_key") + api_key = credentials.get("polygon_api_key") if credentials else "" request_url = ( f"https://api.polygon.io/v2/aggs/ticker/" @@ -107,5 +103,5 @@ class PolygonStockEODFetcher( return [PolygonStockEODData(**d) for d in data] @staticmethod - def transform_data(data: List[PolygonStockEODData]) -> List[StockEODData]: - return data_transformer(data, StockEODData) + def transform_data(data: List[PolygonStockEODData]) -> List[PolygonStockEODData]: + return data diff --git a/openbb_sdk/providers/polygon/openbb_polygon/models/stock_news.py b/openbb_sdk/providers/polygon/openbb_polygon/models/stock_news.py index 1d0e281ac8a..1110d598ffa 100644 --- a/openbb_sdk/providers/polygon/openbb_polygon/models/stock_news.py +++ b/openbb_sdk/providers/polygon/openbb_polygon/models/stock_news.py @@ -2,7 +2,7 @@ from datetime import datetime -from typing import Dict, List, Literal, Optional +from typing import Any, Dict, List, Literal, Optional from openbb_provider.abstract.data import Data from openbb_provider.abstract.fetcher import Fetcher @@ -90,22 +90,15 @@ class PolygonStockNewsFetcher( ] ): @staticmethod - def transform_query( - query: StockNewsQueryParams, extra_params: Optional[Dict] = None - ) -> PolygonStockNewsQueryParams: - return PolygonStockNewsQueryParams( - ticker=query.symbols, - page=query.page, - limit=query.limit, - **extra_params if extra_params else {}, - ) + def transform_query(params: Dict[str, Any]) -> PolygonStockNewsQueryParams: + return PolygonStockNewsQueryParams(**params) @staticmethod def extract_data( query: PolygonStockNewsQueryParams, credentials: Optional[Dict[str, str]] ) -> List[PolygonStockNewsData]: - if credentials: - api_key = credentials.get("polygon_api_key") + + api_key = credentials.get("polygon_api_key") if credentials else "" base_url = "https://api.polygon.io/v2/reference/news" querystring = get_querystring(query.dict(by_alias=True), [])