From d9b7cef58ef3e53e94e9285920185550e7683a7a Mon Sep 17 00:00:00 2001 From: Diogo Sousa Date: Mon, 31 Jul 2023 11:40:36 +0100 Subject: [PATCH] fix bug with generic --- openbb_sdk/sdk/core/openbb_core/app/provider_interface.py | 5 +++-- openbb_sdk/sdk/provider/openbb_provider/abstract/fetcher.py | 5 ++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/openbb_sdk/sdk/core/openbb_core/app/provider_interface.py b/openbb_sdk/sdk/core/openbb_core/app/provider_interface.py index 8f0fe2178c7..c0a0fee755a 100644 --- a/openbb_sdk/sdk/core/openbb_core/app/provider_interface.py +++ b/openbb_sdk/sdk/core/openbb_core/app/provider_interface.py @@ -416,7 +416,7 @@ class ProviderInterface: types_list.append(ret) if types_list: - returns[model_name] = Union[*types_list] # type: ignore + returns[model_name] = Union[tuple(types_list)] # type: ignore return returns @@ -455,7 +455,8 @@ class ProviderInterface: ) ReturnType = merged_return_type.get(model_name, GenericDataType) - result[model_name] = ReturnType[ReturnModel] # type: ignore + n_params = len(getattr(ReturnType, "__parameters__", ())) + result[model_name] = ReturnType[tuple([ReturnModel] * n_params)] # type: ignore return result diff --git a/openbb_sdk/sdk/provider/openbb_provider/abstract/fetcher.py b/openbb_sdk/sdk/provider/openbb_provider/abstract/fetcher.py index 55cb29abc46..442c2860fda 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/abstract/fetcher.py +++ b/openbb_sdk/sdk/provider/openbb_provider/abstract/fetcher.py @@ -1,6 +1,7 @@ """Abstract class for the fetcher.""" +from abc import abstractmethod from typing import Any, Dict, Generic, List, Optional, TypeVar, Union from openbb_provider.abstract.data import Data @@ -77,6 +78,8 @@ class Fetcher( # pylint: disable=E1101 return self.__orig_bases__[0].__args__[3] - # TODO: Create abstract class attribute for generic return type # @property + # @abstractmethod # def generic_return_type(self): + # """Get the type of the generic return.""" + # raise NotImplementedError