summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormontezdesousa <79287829+montezdesousa@users.noreply.github.com>2024-01-09 14:38:33 +0000
committerGitHub <noreply@github.com>2024-01-09 14:38:33 +0000
commit16bd470a782449474e1aae31d6b4356e3b904ab5 (patch)
tree15968573965048ef64f5958ba786f035ee03433c
parent0b8d6e6620dc18e2af5f57280d19b8e7837b0337 (diff)
Allow multiple symbols `equity.profile` (#5929)
* allow multiple symbols * pylint * pylint ignore position * change callback to helper func --------- Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com> Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt>
-rw-r--r--openbb_platform/extensions/equity/integration/test_equity_api.py4
-rw-r--r--openbb_platform/extensions/equity/integration/test_equity_python.py4
-rw-r--r--openbb_platform/openbb/package/equity.py2
-rw-r--r--openbb_platform/providers/intrinio/openbb_intrinio/models/equity_info.py25
4 files changed, 24 insertions, 11 deletions
diff --git a/openbb_platform/extensions/equity/integration/test_equity_api.py b/openbb_platform/extensions/equity/integration/test_equity_api.py
index b25085736b6..e2720cd3065 100644
--- a/openbb_platform/extensions/equity/integration/test_equity_api.py
+++ b/openbb_platform/extensions/equity/integration/test_equity_api.py
@@ -1102,7 +1102,9 @@ def test_equity_price_quote(params, headers):
"params",
[
({"symbol": "AAPL", "provider": "cboe"}),
- ({"provider": "intrinio", "symbol": "AAPL"}),
+ ({"symbol": "MSFT", "provider": "intrinio"}),
+ ({"symbol": "AAPL,MSFT", "provider": "cboe"}),
+ ({"symbol": "AAPL,MSFT", "provider": "intrinio"}),
],
)
@pytest.mark.integration
diff --git a/openbb_platform/extensions/equity/integration/test_equity_python.py b/openbb_platform/extensions/equity/integration/test_equity_python.py
index 9c6cf964b73..679555b6cc4 100644
--- a/openbb_platform/extensions/equity/integration/test_equity_python.py
+++ b/openbb_platform/extensions/equity/integration/test_equity_python.py
@@ -1049,7 +1049,9 @@ def test_equity_price_quote(params, obb):
"params",
[
({"symbol": "AAPL", "provider": "cboe"}),
- ({"provider": "intrinio", "symbol": "AAPL"}),
+ ({"symbol": "MSFT", "provider": "intrinio"}),
+ ({"symbol": "AAPL,MSFT", "provider": "cboe"}),
+ ({"symbol": "AAPL,MSFT", "provider": "intrinio"}),
],
)
@pytest.mark.integration
diff --git a/openbb_platform/openbb/package/equity.py b/openbb_platform/openbb/package/equity.py
index 4f363a8f121..63924b32bc2 100644
--- a/openbb_platform/openbb/package/equity.py
+++ b/openbb_platform/openbb/package/equity.py
@@ -241,7 +241,7 @@ class ROUTER_equity(Container):
Returns
-------
OBBject
- results : EquityInfo
+ results : List[EquityInfo]
Serializable results.
provider : Optional[Literal['intrinio']]
Provider name.
diff --git a/openbb_platform/providers/intrinio/openbb_intrinio/models/equity_info.py b/openbb_platform/providers/intrinio/openbb_intrinio/models/equity_info.py
index 27f23a6f08d..3bcc679a543 100644
--- a/openbb_platform/providers/intrinio/openbb_intrinio/models/equity_info.py
+++ b/openbb_platform/providers/intrinio/openbb_intrinio/models/equity_info.py
@@ -7,7 +7,10 @@ from openbb_core.provider.standard_models.equity_info import (
EquityInfoData,
EquityInfoQueryParams,
)
-from openbb_intrinio.utils.helpers import get_data_one
+from openbb_core.provider.utils.helpers import (
+ amake_requests,
+)
+from openbb_intrinio.utils.helpers import response_callback
from pydantic import Field
@@ -34,7 +37,7 @@ class IntrinioEquityInfoData(EquityInfoData):
class IntrinioEquityInfoFetcher(
Fetcher[
IntrinioEquityInfoQueryParams,
- IntrinioEquityInfoData,
+ List[IntrinioEquityInfoData],
]
):
"""Transform the query, extract and transform the data from the Intrinio endpoints."""
@@ -44,24 +47,30 @@ class IntrinioEquityInfoFetcher(
"""Transform the query."""
return IntrinioEquityInfoQueryParams(**params)
+ # pylint: disable=W0613:unused-argument
@staticmethod
async def aextract_data(
- query: IntrinioEquityInfoQueryParams, # pylint: disable=unused-argument
+ query: IntrinioEquityInfoQueryParams,
credentials: Optional[Dict[str, str]],
**kwargs: Any,
) -> Dict:
"""Return the raw data from the Intrinio endpoint."""
api_key = credentials.get("intrinio_api_key") if credentials else ""
base_url = "https://api-v2.intrinio.com"
- url = f"{base_url}/companies/{query.symbol}?api_key={api_key}"
- return await get_data_one(url, **kwargs)
+ urls = [
+ f"{base_url}/companies/{s.strip()}?api_key={api_key}"
+ for s in query.symbol.split(",")
+ ]
+ return await amake_requests(urls, response_callback, **kwargs)
+
+ # pylint: disable=W0613:unused-argument
@staticmethod
def transform_data(
query: IntrinioEquityInfoQueryParams,
data: List[Dict],
- **kwargs: Any, # pylint: disable=unused-argument
- ) -> IntrinioEquityInfoData:
+ **kwargs: Any,
+ ) -> List[IntrinioEquityInfoData]:
"""Transforms the data."""
- return IntrinioEquityInfoData.model_validate(data)
+ return [IntrinioEquityInfoData.model_validate(d) for d in data]