mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-05-06 22:12:12 +08:00
Merge branch 'develop' into feature/refactor-oecd
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
from typing import Any
|
||||
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.app.model.abstract.error import OpenBBError
|
||||
from openbb_core.provider.standard_models.cik_map import CikMapData, CikMapQueryParams
|
||||
from pydantic import Field
|
||||
|
||||
@@ -48,10 +49,10 @@ class SecCikMapFetcher(
|
||||
# pylint: disable=import-outside-toplevel
|
||||
from openbb_sec.utils.helpers import symbol_map
|
||||
|
||||
results = {"cik": await symbol_map(query.symbol, query.use_cache)}
|
||||
if not results:
|
||||
return {"Error": "Symbol not found."}
|
||||
return results
|
||||
cik = await symbol_map(query.symbol, query.use_cache)
|
||||
if not cik:
|
||||
raise OpenBBError(f"Symbol '{query.symbol}' not found in SEC database.")
|
||||
return {"cik": cik}
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
|
||||
@@ -49,8 +49,17 @@ async def get_all_companies(use_cache: bool = True) -> DataFrame:
|
||||
else:
|
||||
response = await amake_request(url, headers=SEC_HEADERS) # type: ignore
|
||||
|
||||
df = DataFrame(response).transpose()
|
||||
if not response or not isinstance(response, dict):
|
||||
raise OpenBBError(
|
||||
"Empty or invalid response from SEC company tickers endpoint."
|
||||
)
|
||||
|
||||
df = DataFrame.from_dict(response, orient="index")
|
||||
cols = ["cik", "symbol", "name"]
|
||||
if len(df.columns) != len(cols):
|
||||
raise OpenBBError(
|
||||
f"Unexpected SEC response format. Expected {len(cols)} fields, got {len(df.columns)}: {df.columns.tolist()}"
|
||||
)
|
||||
df.columns = cols
|
||||
return df.astype(str)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user