diff options
-rw-r--r-- | openbb_platform/core/openbb_core/provider/registry_map.py | 21 | ||||
-rw-r--r-- | openbb_platform/openbb/assets/reference.json | 4 | ||||
-rw-r--r-- | openbb_platform/openbb/package/economy.py | 10 |
3 files changed, 17 insertions, 18 deletions
diff --git a/openbb_platform/core/openbb_core/provider/registry_map.py b/openbb_platform/core/openbb_core/provider/registry_map.py index 0742c54d849..38c49aadef2 100644 --- a/openbb_platform/core/openbb_core/provider/registry_map.py +++ b/openbb_platform/core/openbb_core/provider/registry_map.py @@ -1,6 +1,7 @@ """Provider registry map.""" import sys +from copy import deepcopy from inspect import getfile, isclass from pathlib import Path from typing import Any, Dict, List, Literal, Optional, Tuple, get_origin @@ -82,9 +83,10 @@ class RegistryMap: standard_data, extra_data = self.extract_info(fetcher, "data") if model_name not in map_: map_[model_name] = {} + # The deepcopy avoids modifications from one model to affect another map_[model_name]["openbb"] = { - "QueryParams": standard_query, - "Data": standard_data, + "QueryParams": deepcopy(standard_query), + "Data": deepcopy(standard_data), } map_[model_name][p] = { "QueryParams": extra_query, @@ -98,7 +100,7 @@ class RegistryMap: {p: {"model": provider_model, "is_list": is_list}} ) - self._merge_json_schema_extra(p, fetcher, standard_query, extra_query) + self._merge_json_schema_extra(p, fetcher, map_[model_name]) return map_, return_schemas @@ -106,17 +108,18 @@ class RegistryMap: self, provider: str, fetcher: Fetcher, - standard_query: dict, - extra_query: dict, + model_map: dict, ): """Merge json schema extra for different providers""" model: BaseModel = RegistryMap._get_model(fetcher, "query_params") + std_fields = model_map["openbb"]["QueryParams"]["fields"] + extra_fields = model_map[provider]["QueryParams"]["fields"] for f, props in getattr(model, "__json_schema_extra__", {}).items(): for p in props: - if f in standard_query["fields"]: - model_field = standard_query["fields"][f] - elif f in extra_query["fields"]: - model_field = extra_query["fields"][f] + if f in std_fields: + model_field = std_fields[f] + elif f in extra_fields: + model_field = extra_fields[f] else: continue diff --git a/openbb_platform/openbb/assets/reference.json b/openbb_platform/openbb/assets/reference.json index 465a0f4bb6f..6b304444527 100644 --- a/openbb_platform/openbb/assets/reference.json +++ b/openbb_platform/openbb/assets/reference.json @@ -2855,8 +2855,8 @@ "standard": [ { "name": "symbol", - "type": "Union[str, List[str]]", - "description": "Symbol to get data for. Multiple items allowed for provider(s): fred.", + "type": "str", + "description": "Symbol to get data for.", "default": "", "optional": false }, diff --git a/openbb_platform/openbb/package/economy.py b/openbb_platform/openbb/package/economy.py index d5c9b9e9122..b14cf8a76bd 100644 --- a/openbb_platform/openbb/package/economy.py +++ b/openbb_platform/openbb/package/economy.py @@ -429,10 +429,7 @@ class ROUTER_economy(Container): def fred_regional( self, symbol: Annotated[ - Union[str, List[str]], - OpenBBCustomParameter( - description="Symbol to get data for. Multiple items allowed for provider(s): fred." - ), + str, OpenBBCustomParameter(description="Symbol to get data for.") ], start_date: Annotated[ Union[datetime.date, None, str], @@ -464,8 +461,8 @@ class ROUTER_economy(Container): Parameters ---------- - symbol : Union[str, List[str]] - Symbol to get data for. Multiple items allowed for provider(s): fred. + symbol : str + Symbol to get data for. start_date : Union[datetime.date, None, str] Start date of the data, in YYYY-MM-DD format. end_date : Union[datetime.date, None, str] @@ -579,7 +576,6 @@ class ROUTER_economy(Container): "limit": limit, }, extra_params=kwargs, - extra_info={"symbol": {"multiple_items_allowed": ["fred"]}}, ) ) |