[BugFix] Remove Bad Validator & Make Fields Optional in FuturesHistoricalData (#7510)

* remove bad validator from futures_historical data model

* ohlv should be optional fields

* black
This commit is contained in:
Danglewood
2026-05-25 22:11:24 -07:00
committed by GitHub
parent fa9729f4a0
commit 89023948ee

View File

@@ -1,8 +1,10 @@
"""Futures Historical Price Standard Model."""
from datetime import date, datetime
from datetime import (
date as dateType,
datetime,
)
from dateutil import parser
from openbb_core.provider.abstract.data import Data
from openbb_core.provider.abstract.query_params import QueryParams
from openbb_core.provider.utils.descriptions import (
@@ -16,11 +18,11 @@ class FuturesHistoricalQueryParams(QueryParams):
"""Futures Historical Price Query."""
symbol: str = Field(description=QUERY_DESCRIPTIONS.get("symbol", ""))
start_date: date | None = Field(
start_date: dateType | None = Field(
default=None,
description=QUERY_DESCRIPTIONS.get("start_date", ""),
)
end_date: date | None = Field(
end_date: dateType | None = Field(
default=None,
description=QUERY_DESCRIPTIONS.get("end_date", ""),
)
@@ -39,15 +41,17 @@ class FuturesHistoricalQueryParams(QueryParams):
class FuturesHistoricalData(Data):
"""Futures Historical Price Data."""
date: datetime = Field(description=DATA_DESCRIPTIONS.get("date", ""))
open: float = Field(description=DATA_DESCRIPTIONS.get("open", ""))
high: float = Field(description=DATA_DESCRIPTIONS.get("high", ""))
low: float = Field(description=DATA_DESCRIPTIONS.get("low", ""))
date: datetime | dateType = Field(description=DATA_DESCRIPTIONS.get("date", ""))
open: float | None = Field(
default=None, description=DATA_DESCRIPTIONS.get("open", "")
)
high: float | None = Field(
default=None, description=DATA_DESCRIPTIONS.get("high", "")
)
low: float | None = Field(
default=None, description=DATA_DESCRIPTIONS.get("low", "")
)
close: float = Field(description=DATA_DESCRIPTIONS.get("close", ""))
volume: float = Field(description=DATA_DESCRIPTIONS.get("volume", ""))
@field_validator("symbol", mode="before", check_fields=False)
@classmethod
def date_validate(cls, v):
"""Return formatted datetime."""
return parser.isoparse(str(v))
volume: float | None = Field(
default=None, description=DATA_DESCRIPTIONS.get("volume", "")
)