From fa9d401bfaf44e966d62d009f1ecbfd132f116e5 Mon Sep 17 00:00:00 2001 From: hjoaquim Date: Tue, 23 Jan 2024 10:28:15 +0000 Subject: [PATCH] change types to dateType --- .../provider/standard_models/company_news.py | 32 +++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/openbb_platform/core/openbb_core/provider/standard_models/company_news.py b/openbb_platform/core/openbb_core/provider/standard_models/company_news.py index da59fe31790..2609c6ed6dc 100644 --- a/openbb_platform/core/openbb_core/provider/standard_models/company_news.py +++ b/openbb_platform/core/openbb_core/provider/standard_models/company_news.py @@ -1,9 +1,12 @@ """Company News Standard Model.""" - -from datetime import datetime +from datetime import ( + date as dateType, + datetime, +) from typing import Optional +from dateutil.relativedelta import relativedelta from pydantic import Field, NonNegativeInt, field_validator from openbb_core.provider.abstract.data import Data @@ -25,22 +28,39 @@ class CompanyNewsQueryParams(QueryParams): limit: Optional[NonNegativeInt] = Field( default=20, description=QUERY_DESCRIPTIONS.get("limit", "") ) - date: Optional[str] = Field( + date: Optional[dateType] = Field( default=None, description="Date of the news to retrieve." ) - start_date: Optional[str] = Field( + start_date: Optional[dateType] = Field( default=None, description="Start date of the news to retrieve." ) - end_date: Optional[str] = Field( + end_date: Optional[dateType] = Field( default=None, description="End date of the news to retrieve." ) @field_validator("symbols", mode="before") @classmethod - def symbols_validate(cls, v: str): # pylint: disable=E0213 + def symbols_validate(cls, v: str) -> str: # pylint: disable=E0213 """Validate the symbols.""" return v.upper() + @field_validator("start_date", mode="before") + @classmethod + def start_date_validate(cls, v) -> dateType: # pylint: disable=E0213 + """Populate start date if empty.""" + if not v: + now = datetime.now().date() + v = now - relativedelta(years=1) + return v + + @field_validator("end_date", mode="before") + @classmethod + def end_date_validate(cls, v) -> dateType: # pylint: disable=E0213 + """Populate end date if empty.""" + if not v: + v = datetime.now().date() + return v + class CompanyNewsData(Data): """Company News Data."""