From 89023948ee76b99b779bc3dc03092b1943c634aa Mon Sep 17 00:00:00 2001 From: Danglewood <85772166+deeleeramone@users.noreply.github.com> Date: Mon, 25 May 2026 22:11:24 -0700 Subject: [PATCH] [BugFix] Remove Bad Validator & Make Fields Optional in `FuturesHistoricalData` (#7510) * remove bad validator from futures_historical data model * ohlv should be optional fields * black --- .../standard_models/futures_historical.py | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/openbb_platform/core/openbb_core/provider/standard_models/futures_historical.py b/openbb_platform/core/openbb_core/provider/standard_models/futures_historical.py index 1f92af6b63f..1b8e1abe5ae 100644 --- a/openbb_platform/core/openbb_core/provider/standard_models/futures_historical.py +++ b/openbb_platform/core/openbb_core/provider/standard_models/futures_historical.py @@ -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", "") + )