mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-10-28 21:12:16 +00:00
Added stocks.ca.get to sdk
This commit is contained in:
@@ -1,14 +1,27 @@
|
||||
from openbb_core.app.model.command_context import CommandContext
|
||||
from openbb_core.app.model.command_output import CommandOutput
|
||||
from openbb_core.app.model.results.empty import Empty
|
||||
from openbb_core.app.provider_interface import (
|
||||
ExtraParams,
|
||||
ProviderChoices,
|
||||
StandardParams,
|
||||
)
|
||||
from openbb_core.app.query import Query
|
||||
from openbb_core.app.router import Router
|
||||
from pydantic import BaseModel
|
||||
|
||||
router = Router(prefix="/ca")
|
||||
|
||||
|
||||
@router.command
|
||||
def get() -> CommandOutput[Empty]: # type: ignore
|
||||
@router.command(query="StockPeers")
|
||||
def get(
|
||||
cc: CommandContext,
|
||||
provider_choices: ProviderChoices,
|
||||
standard_params: StandardParams,
|
||||
extra_params: ExtraParams,
|
||||
) -> CommandOutput[BaseModel]:
|
||||
"""Company peers."""
|
||||
return CommandOutput(results=Empty())
|
||||
return CommandOutput(results=Query(**locals()).execute())
|
||||
|
||||
|
||||
@router.command
|
||||
|
||||
@@ -41,6 +41,7 @@ from .stock_eod import FMPStockEODFetcher
|
||||
from .stock_insider_trading import FMPStockInsiderTradingFetcher
|
||||
from .stock_news import FMPStockNewsFetcher
|
||||
from .stock_ownership import FMPStockOwnershipFetcher
|
||||
from .stock_peers import FMPStockPeersFetcher
|
||||
from .stock_price import FMPStockPriceFetcher
|
||||
from .stock_splits import FMPStockSplitCalendarFetcher
|
||||
from .treasury_rates import FMPTreasuryRatesFetcher
|
||||
@@ -88,5 +89,6 @@ fmp_provider = Provider(
|
||||
FMPForexEODFetcher,
|
||||
FMPForexPriceFetcher,
|
||||
FMPForexPairsFetcher,
|
||||
FMPStockPeersFetcher,
|
||||
],
|
||||
)
|
||||
|
||||
57
openbb_sdk/providers/fmp/openbb_fmp/stock_peers.py
Normal file
57
openbb_sdk/providers/fmp/openbb_fmp/stock_peers.py
Normal file
@@ -0,0 +1,57 @@
|
||||
"""FMP Stock Peers fetcher."""
|
||||
|
||||
# IMPORT STANDARD
|
||||
from typing import Dict, List, Optional
|
||||
|
||||
# IMPORT INTERNAL
|
||||
from openbb_provider.models.stock_peers import StockPeersData, StockPeersQueryParams
|
||||
from openbb_provider.abstract.fetcher import Fetcher
|
||||
from openbb_provider.helpers import data_transformer
|
||||
|
||||
from .helpers import get_data_many
|
||||
|
||||
|
||||
# FMP SPECIFIC FUNCTIONALITY CURRENTLY
|
||||
|
||||
|
||||
class FMPStockPeersQueryParams(StockPeersQueryParams):
|
||||
"""FMP Stock Peers query.
|
||||
|
||||
Source: https://site.financialmodelingprep.com/developer/docs/#Stock-Peers
|
||||
|
||||
Parameter
|
||||
---------
|
||||
symbol : str
|
||||
The symbol of the company.
|
||||
"""
|
||||
|
||||
|
||||
class FMPStockPeersData(StockPeersData):
|
||||
"""FMP Stock Peers data."""
|
||||
|
||||
|
||||
class FMPStockPeersFetcher(
|
||||
Fetcher[
|
||||
StockPeersQueryParams,
|
||||
StockPeersData,
|
||||
FMPStockPeersQueryParams,
|
||||
FMPStockPeersData,
|
||||
]
|
||||
):
|
||||
@staticmethod
|
||||
def transform_query(
|
||||
query: StockPeersQueryParams, extra_params: Optional[Dict] = None
|
||||
) -> FMPStockPeersQueryParams:
|
||||
return FMPStockPeersQueryParams(symbol=query.symbol, **extra_params or {})
|
||||
|
||||
@staticmethod
|
||||
def extract_data(
|
||||
query: FMPStockPeersQueryParams, api_key: str
|
||||
) -> List[FMPStockPeersData]:
|
||||
base_url = "https://financialmodelingprep.com/api/v4"
|
||||
url = f"{base_url}/stock_peers?symbol={query.symbol}&apikey={api_key}"
|
||||
return get_data_many(url, FMPStockPeersData, "peersList")
|
||||
|
||||
@staticmethod
|
||||
def transform_data(data: List[FMPStockPeersData]) -> List[StockPeersData]:
|
||||
return data_transformer(data, StockPeersData)
|
||||
@@ -0,0 +1,25 @@
|
||||
"""Stock Peers data model."""
|
||||
|
||||
from typing import List, Optional
|
||||
|
||||
from openbb_provider.abstract.data import Data, QueryParams
|
||||
from openbb_provider.models.base import BaseSymbol
|
||||
|
||||
|
||||
class StockPeersQueryParams(QueryParams, BaseSymbol):
|
||||
"""Stock Peers query model.
|
||||
|
||||
Parameter
|
||||
---------
|
||||
symbol: str
|
||||
The symbol of the company.
|
||||
"""
|
||||
|
||||
|
||||
class StockPeersData(Data):
|
||||
"""Stock Peers data.
|
||||
|
||||
Returns
|
||||
-------
|
||||
A list of stock peers based on sector, exchange and market cap
|
||||
"""
|
||||
Reference in New Issue
Block a user