mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-11-13 12:51:49 +00:00
add some blank standard models
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
"""Index Constituents data model."""
|
||||
|
||||
from typing import List, Optional, Set, Union
|
||||
|
||||
from pydantic import Field, field_validator
|
||||
|
||||
from openbb_provider.abstract.data import Data
|
||||
from openbb_provider.abstract.query_params import QueryParams
|
||||
|
||||
|
||||
class IndexConstituentsQueryParams(QueryParams):
|
||||
"""Index Constituents Query Params"""
|
||||
|
||||
symbol: str = Field(description="The index ticker symbol.")
|
||||
|
||||
@field_validator("symbol", pre=True, check_fields=False, always=True)
|
||||
def upper_symbol(cls, v: Union[str, List[str], Set[str]]):
|
||||
"""Convert symbol to uppercase."""
|
||||
if isinstance(v, str):
|
||||
return v.upper()
|
||||
return ",".join([symbol.upper() for symbol in list(v)])
|
||||
|
||||
|
||||
class IndexConstituentsData(Data):
|
||||
"""Index Constituents Data."""
|
||||
|
||||
symbol: str = Field(description="The ticker symbol of the index constituent.")
|
||||
name: Optional[str] = Field(
|
||||
description="The name of the index constituent.", default=None
|
||||
)
|
||||
weight: Optional[float] = Field(
|
||||
description="The weight of the sector in the index.", default=None
|
||||
)
|
||||
value: Optional[float] = Field(
|
||||
description="The current market value of the index constituent.", default=None
|
||||
)
|
||||
@@ -0,0 +1,40 @@
|
||||
"""Index Info data model."""
|
||||
|
||||
from typing import List, Optional, Set, Union
|
||||
|
||||
from pydantic import Field, field_validator
|
||||
|
||||
from openbb_provider.abstract.data import Data
|
||||
from openbb_provider.abstract.query_params import QueryParams
|
||||
|
||||
|
||||
class IndexInfoQueryParams(QueryParams):
|
||||
"""Index Info Query Params"""
|
||||
|
||||
symbol: str = Field(description="The index ticker symbol.")
|
||||
|
||||
@field_validator("symbol", pre=True, check_fields=False, always=True)
|
||||
def upper_symbol(cls, v: Union[str, List[str], Set[str]]):
|
||||
"""Convert symbol to uppercase."""
|
||||
if isinstance(v, str):
|
||||
return v.upper()
|
||||
return ",".join([symbol.upper() for symbol in list(v)])
|
||||
|
||||
|
||||
class IndexInfoData(Data):
|
||||
"""Index Info Data."""
|
||||
|
||||
symbol: str = Field(description="The index ticker symbol.")
|
||||
name: str = Field(description="The name of the index.")
|
||||
description: Optional[str] = Field(
|
||||
description="The short description of the index.", default=None
|
||||
)
|
||||
methodology: Optional[str] = Field(
|
||||
description="URL to the methodology document.", default=None
|
||||
)
|
||||
factsheet: Optional[str] = Field(
|
||||
description="URL to the factsheet document.", default=None
|
||||
)
|
||||
nb_constituents: Optional[int] = Field(
|
||||
description="The number of constituents in the index.", default=None
|
||||
)
|
||||
@@ -0,0 +1,28 @@
|
||||
"""Index Sectors data model."""
|
||||
|
||||
from typing import List, Optional, Set, Union
|
||||
|
||||
from pydantic import Field, field_validator
|
||||
|
||||
from openbb_provider.abstract.data import Data
|
||||
from openbb_provider.abstract.query_params import QueryParams
|
||||
|
||||
|
||||
class IndexSectorsQueryParams(QueryParams):
|
||||
"""Index Info Query Params"""
|
||||
|
||||
symbol: str = Field(description="The index ticker symbol.")
|
||||
|
||||
@field_validator("symbol", pre=True, check_fields=False, always=True)
|
||||
def upper_symbol(cls, v: Union[str, List[str], Set[str]]):
|
||||
"""Convert symbol to uppercase."""
|
||||
if isinstance(v, str):
|
||||
return v.upper()
|
||||
return ",".join([symbol.upper() for symbol in list(v)])
|
||||
|
||||
|
||||
class IndexSectorsData(Data):
|
||||
"""Index Sectors Data."""
|
||||
|
||||
sector: str = Field(description="The sector name.")
|
||||
weight: float = Field(description="The weight of the sector in the index.")
|
||||
@@ -0,0 +1,33 @@
|
||||
"""Recent Performance data model."""
|
||||
|
||||
from typing import List, Optional, Set, Union
|
||||
|
||||
from pydantic import Field, field_validator
|
||||
|
||||
from openbb_provider.abstract.data import Data
|
||||
from openbb_provider.abstract.query_params import QueryParams
|
||||
|
||||
|
||||
class RecentPerformanceQueryParams(QueryParams):
|
||||
"""Recent Performance Query Params"""
|
||||
|
||||
symbol: str = Field(description="The ticker symbol to fetch.")
|
||||
|
||||
@field_validator("symbol", pre=True, check_fields=False, always=True)
|
||||
def upper_symbol(cls, v: Union[str, List[str], Set[str]]):
|
||||
"""Convert symbol to uppercase."""
|
||||
if isinstance(v, str):
|
||||
return v.upper()
|
||||
return ",".join([symbol.upper() for symbol in list(v)])
|
||||
|
||||
|
||||
class RecentPerformanceData(Data):
|
||||
"""Recent Performance Data."""
|
||||
|
||||
one_day: Optional[float] = Field(description="One-day return.", default=None)
|
||||
one_week: Optional[float] = Field(description="One-week return.", default=None)
|
||||
mtd: Optional[float] = Field(description="MTD return.", default=None)
|
||||
qtd: Optional[float] = Field(description="QTD return.", default=None)
|
||||
ytd: Optional[float] = Field(description="YTD return.", default=None)
|
||||
ttm: Optional[float] = Field(description="TTM return.", default=None)
|
||||
one_year: Optional[float] = Field(description="One-year return.", default=None)
|
||||
Reference in New Issue
Block a user