diff options
author | Danglewood <85772166+deeleeramone@users.noreply.github.com> | 2024-06-14 17:41:56 -0700 |
---|---|---|
committer | Danglewood <85772166+deeleeramone@users.noreply.github.com> | 2024-06-14 17:41:56 -0700 |
commit | 4d8e6eee9d792915b6ef54a7d040d25b5c8f6e04 (patch) | |
tree | da8e619f55ad18a78c7e0b29748e91e6e4ae5079 | |
parent | fc70fb9f317b3a3acbd8f725cc072f4c1dd43f8d (diff) |
stuff and things
-rw-r--r-- | openbb_platform/providers/intrinio/openbb_intrinio/models/options_chains.py | 33 |
1 files changed, 17 insertions, 16 deletions
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 d2f253b5c4a..e36828e8aee 100644 --- a/openbb_platform/providers/intrinio/openbb_intrinio/models/options_chains.py +++ b/openbb_platform/providers/intrinio/openbb_intrinio/models/options_chains.py @@ -10,7 +10,6 @@ from typing import Any, Dict, List, Literal, Optional, Union from warnings import warn from dateutil import parser -from openbb_core.provider.abstract.annotated_result import AnnotatedResult from openbb_core.provider.abstract.fetcher import Fetcher from openbb_core.provider.standard_models.options_chains import ( OptionsChainsData, @@ -204,15 +203,20 @@ class IntrinioOptionsChainsFetcher( "show_extended_price", ], ) - url = url + f"eod?date={date}&{query_string}" + url = url + f"eod?date={query.date}&{query_string}" else: + if query.moneyness: + moneyness = ( + "out_of_the_money" + if query.moneyness == "otm" + else "in_the_money" if query.moneyness == "itm" else "all" + ) + query_string = get_querystring( - query.model_dump(exclude_none=True), ["symbol", "date"] + query.model_dump(exclude_none=True), + ["symbol", "date", "moneyness"], ) - query_string = query_string.replace( - "otm", "out_of_the_money" - ).replace("itm", "in_the_money") - url = url + f"realtime?{query_string}" + url = url + f"realtime?{query_string}&moneyness={moneyness}" return url + f"&api_key={api_key}" @@ -239,7 +243,7 @@ class IntrinioOptionsChainsFetcher( underlying_price: Dict = {} # If the EOD chains are requested, get the underlying price on the given date. if query.date is not None: - if query.symbol.endswith("W"): + if query.symbol.endswith("W") and query.symbol.startswith("SPX"): query.symbol = query.symbol[:-1] temp = None try: @@ -272,7 +276,7 @@ class IntrinioOptionsChainsFetcher( query: IntrinioOptionsChainsQueryParams, data: Dict, **kwargs: Any, - ) -> AnnotatedResult[List[IntrinioOptionsChainsData]]: + ) -> List[IntrinioOptionsChainsData]: """Return the transformed data.""" results: List[IntrinioOptionsChainsData] = [] chains = data.get("data", []) @@ -313,11 +317,8 @@ class IntrinioOptionsChainsFetcher( _ = new_item.pop("exercise_style", None) results.append(IntrinioOptionsChainsData.model_validate(new_item)) - return AnnotatedResult( - result=sorted( - results, - key=lambda x: (x.expiration, x.strike, x.option_type), - reverse=False, - ), - metadata=underlying, + return sorted( + results, + key=lambda x: (x.expiration, x.strike, x.option_type), + reverse=False, ) |