standardised date in stockeod

This commit is contained in:
Diogo Sousa
2023-08-01 14:59:54 +01:00
parent b44aa8b2b9
commit 07343f1f97
6 changed files with 16 additions and 17 deletions

View File

@@ -9,11 +9,10 @@ from openbb_provider.models.key_executives import (
KeyExecutivesData,
KeyExecutivesQueryParams,
)
from pydantic import validator
from openbb_fmp.utils.helpers import get_data_many
from pydantic import validator
class FMPKeyExecutivesQueryParams(KeyExecutivesQueryParams):
"""FMP Key Executives QueryParams.

View File

@@ -6,7 +6,6 @@ from typing import Any, Dict, List, Optional
from openbb_provider.abstract.fetcher import Fetcher
from openbb_provider.helpers import get_querystring
from openbb_provider.metadata import DATA_DESCRIPTIONS
from openbb_provider.models.stock_eod import StockEODData, StockEODQueryParams
from pydantic import Field, NonNegativeInt, validator
@@ -27,7 +26,6 @@ class FMPStockEODQueryParams(StockEODQueryParams):
class FMPStockEODData(StockEODData):
"""FMP Stock end of day Data."""
date: datetime = Field(description=DATA_DESCRIPTIONS.get("date", ""))
adjClose: float = Field(
description="Adjusted Close Price of the symbol.", alias="adj_close"
)
@@ -41,14 +39,14 @@ class FMPStockEODData(StockEODData):
changePercent: float = Field(
description=r"Change \% in the price of the symbol.", alias="change_percent"
)
vwap: float = Field(description="Volume Weighted Average Price of the symbol.")
label: str = Field(description="Human readable format of the date.")
changeOverTime: float = Field(
description=r"Change \% in the price of the symbol over a period of time.",
alias="change_over_time",
)
@validator("date", pre=True)
@validator("date", pre=True, check_fields=False)
def date_validate(cls, v): # pylint: disable=E0213
return datetime.strptime(v, "%Y-%m-%d")

View File

@@ -7,7 +7,7 @@ from typing import Any, Dict, List, Literal, Optional
from openbb_provider.abstract.fetcher import Fetcher
from openbb_provider.metadata import QUERY_DESCRIPTIONS
from openbb_provider.models.stock_eod import StockEODData, StockEODQueryParams
from pydantic import Field, PositiveFloat, PositiveInt, validator
from pydantic import Field, PositiveInt, validator
from openbb_polygon.utils.helpers import get_data
@@ -38,23 +38,21 @@ class PolygonStockEODData(StockEODData):
class Config:
fields = {
"date": "t",
"open": "o",
"high": "h",
"low": "l",
"close": "c",
"volume": "v",
"vwap": "vw",
}
t: datetime = Field(description="The timestamp of the data.")
n: PositiveInt = Field(
description="The number of transactions for the symbol in the time period."
)
vw: PositiveFloat = Field(
description="The volume weighted average price of the symbol."
)
@validator("t", pre=True, check_fields=False)
def time_validate(cls, v): # pylint: disable=E0213
def t_validate(cls, v): # pylint: disable=E0213
return datetime.fromtimestamp(v / 1000)

View File

@@ -3,12 +3,12 @@
from datetime import date, datetime
from pydantic import Field
from openbb_provider.abstract.data import Data
from openbb_provider.abstract.query_params import QueryParams
from openbb_provider.models.base import BaseSymbol
from pydantic import Field
class HistoricalEmployeesQueryParams(QueryParams, BaseSymbol):
"""Historical Employees Query."""

View File

@@ -3,12 +3,12 @@
from typing import Optional
from pydantic import Field
from openbb_provider.abstract.data import Data
from openbb_provider.abstract.query_params import QueryParams
from openbb_provider.models.base import BaseSymbol
from pydantic import Field
class KeyExecutivesQueryParams(QueryParams, BaseSymbol):
"""Key Executives Query."""

View File

@@ -1,7 +1,7 @@
"""Stock aggregate end of day price data model."""
from datetime import date
from datetime import date, datetime
from typing import Optional
from pydantic import Field, PositiveFloat
@@ -28,8 +28,12 @@ class StockEODQueryParams(QueryParams, BaseSymbol):
class StockEODData(Data):
"""Stock end of day price Data."""
date: datetime = Field(description=DATA_DESCRIPTIONS.get("date", ""))
open: PositiveFloat = Field(description=DATA_DESCRIPTIONS.get("open", ""))
high: PositiveFloat = Field(description=DATA_DESCRIPTIONS.get("high", ""))
low: PositiveFloat = Field(description=DATA_DESCRIPTIONS.get("low", ""))
close: PositiveFloat = Field(description=DATA_DESCRIPTIONS.get("close", ""))
volume: PositiveFloat = Field(description=DATA_DESCRIPTIONS.get("volume", ""))
vwap: PositiveFloat = Field(
description="Volume Weighted Average Price of the symbol."
)