From e3136b3910753bc227416c925d5825a3aae21fe2 Mon Sep 17 00:00:00 2001 From: Diogo Sousa Date: Tue, 25 Jul 2023 18:21:56 +0100 Subject: [PATCH 1/7] sort and set index to date --- .../sdk/core/openbb_core/app/model/command_output.py | 8 +++++++- .../provider/openbb_provider/models/analyst_estimates.py | 8 ++++---- .../provider/openbb_provider/models/available_indices.py | 4 ++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/openbb_sdk/sdk/core/openbb_core/app/model/command_output.py b/openbb_sdk/sdk/core/openbb_core/app/model/command_output.py index 9a2f4c512af..529d69e2213 100644 --- a/openbb_sdk/sdk/core/openbb_core/app/model/command_output.py +++ b/openbb_sdk/sdk/core/openbb_core/app/model/command_output.py @@ -49,7 +49,9 @@ class CommandOutput(GenericModel, Generic[T], Tagged): + "\n".join([f"{k}: {v}" for k, v in self.dict().items()]) ) - def to_dataframe(self, concat: bool = True) -> Union[pd.DataFrame, Dict[str, pd.DataFrame]]: + def to_dataframe( + self, concat: bool = True + ) -> Union[pd.DataFrame, Dict[str, pd.DataFrame]]: """Converts results field to pandas dataframe. Parameters @@ -81,6 +83,10 @@ class CommandOutput(GenericModel, Generic[T], Tagged): except Exception as e: raise OpenBBError("Failed to convert results to DataFrame.") from e + if df.index.name == "date": + df.index = pd.to_datetime(df.index) + df.sort_index(axis=0, inplace=True) + return df def to_dict(self) -> Dict[str, List]: diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/analyst_estimates.py b/openbb_sdk/sdk/provider/openbb_provider/models/analyst_estimates.py index c4f4ce6a2f4..fb0fa1af83d 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/analyst_estimates.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/analyst_estimates.py @@ -4,12 +4,12 @@ from datetime import date as dateType from typing import Literal -from openbb_provider.abstract.data import Data, QueryParams -from openbb_provider.models.base import BaseSymbol -from openbb_provider.metadata import DESCRIPTIONS - from pydantic import Field +from openbb_provider.abstract.data import Data, QueryParams +from openbb_provider.metadata import DESCRIPTIONS +from openbb_provider.models.base import BaseSymbol + class AnalystEstimatesQueryParams(QueryParams, BaseSymbol): """Analyst Estimates query.""" diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/available_indices.py b/openbb_sdk/sdk/provider/openbb_provider/models/available_indices.py index 09e2ae50253..7bc099b85d5 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/available_indices.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/available_indices.py @@ -3,11 +3,11 @@ from typing import Optional +from pydantic import Field + from openbb_provider.abstract.data import Data, QueryParams from openbb_provider.models.base import BaseSymbol -from pydantic import Field - class AvailableIndicesQueryParams(QueryParams): """Available Indices Query.""" From 035fbc060be4440e68af966df13f26b161c5d0d8 Mon Sep 17 00:00:00 2001 From: Diogo Sousa Date: Tue, 25 Jul 2023 18:24:52 +0100 Subject: [PATCH 2/7] place it inside exception --- .../sdk/core/openbb_core/app/model/command_output.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/openbb_sdk/sdk/core/openbb_core/app/model/command_output.py b/openbb_sdk/sdk/core/openbb_core/app/model/command_output.py index 529d69e2213..e106b04b4dc 100644 --- a/openbb_sdk/sdk/core/openbb_core/app/model/command_output.py +++ b/openbb_sdk/sdk/core/openbb_core/app/model/command_output.py @@ -80,13 +80,14 @@ class CommandOutput(GenericModel, Generic[T], Tagged): df = basemodel_to_df(self.results, "date") else: df = basemodel_to_df(self.results, "date") + + if df.index.name == "date": + df.index = pd.to_datetime(df.index) + df.sort_index(axis=0, inplace=True) + except Exception as e: raise OpenBBError("Failed to convert results to DataFrame.") from e - if df.index.name == "date": - df.index = pd.to_datetime(df.index) - df.sort_index(axis=0, inplace=True) - return df def to_dict(self) -> Dict[str, List]: From dc56a0dd1ff5caedd7a01025121a71aa17456060 Mon Sep 17 00:00:00 2001 From: Diogo Sousa Date: Tue, 25 Jul 2023 18:27:22 +0100 Subject: [PATCH 3/7] move literals to core --- .../fred/openbb_fred/utils/fred_helpers.py | 58 +----------------- .../provider/openbb_provider/models/cpi.py | 59 ++++++++++++++++++- 2 files changed, 58 insertions(+), 59 deletions(-) diff --git a/openbb_sdk/providers/fred/openbb_fred/utils/fred_helpers.py b/openbb_sdk/providers/fred/openbb_fred/utils/fred_helpers.py index 08b13e6823f..2992406b7a5 100644 --- a/openbb_sdk/providers/fred/openbb_fred/utils/fred_helpers.py +++ b/openbb_sdk/providers/fred/openbb_fred/utils/fred_helpers.py @@ -1,63 +1,7 @@ import csv import os from pathlib import Path -from typing import List, Literal - -CPI_COUNTRIES = Literal[ - "australia", - "austria", - "belgium", - "brazil", - "bulgaria", - "canada", - "chile", - "china", - "croatia", - "cyprus", - "czech_republic", - "denmark", - "estonia", - "euro_area", - "finland", - "france", - "germany", - "greece", - "hungary", - "iceland", - "india", - "indonesia", - "ireland", - "israel", - "italy", - "japan", - "korea", - "latvia", - "lithuania", - "luxembourg", - "malta", - "mexico", - "netherlands", - "new_zealand", - "norway", - "poland", - "portugal", - "romania", - "russian_federation", - "slovak_republic", - "slovakia", - "slovenia", - "south_africa", - "spain", - "sweden", - "switzerland", - "turkey", - "united_kingdom", - "united_states", -] - -CPI_UNITS = Literal["growth_previous", "growth_same", "index_2015"] - -CPI_FREQUENCY = Literal["monthly", "quarterly", "annual"] +from typing import List def all_cpi_options(harmonized: bool = False) -> List[dict]: diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py b/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py index 7604f696abd..6953d75c39f 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py @@ -1,11 +1,66 @@ from datetime import date as dateType -from typing import List, Optional +from typing import List, Literal, Optional -from openbb_fred.utils.fred_helpers import CPI_COUNTRIES, CPI_FREQUENCY, CPI_UNITS from pydantic import validator from openbb_provider.abstract.data import Data, QueryParams +CPI_COUNTRIES = Literal[ + "australia", + "austria", + "belgium", + "brazil", + "bulgaria", + "canada", + "chile", + "china", + "croatia", + "cyprus", + "czech_republic", + "denmark", + "estonia", + "euro_area", + "finland", + "france", + "germany", + "greece", + "hungary", + "iceland", + "india", + "indonesia", + "ireland", + "israel", + "italy", + "japan", + "korea", + "latvia", + "lithuania", + "luxembourg", + "malta", + "mexico", + "netherlands", + "new_zealand", + "norway", + "poland", + "portugal", + "romania", + "russian_federation", + "slovak_republic", + "slovakia", + "slovenia", + "south_africa", + "spain", + "sweden", + "switzerland", + "turkey", + "united_kingdom", + "united_states", +] + +CPI_UNITS = Literal["growth_previous", "growth_same", "index_2015"] + +CPI_FREQUENCY = Literal["monthly", "quarterly", "annual"] + class CPIQueryParams(QueryParams): """CPI query. From 0c6f12da89595a6ed1829625e9fd5fbd62f69064 Mon Sep 17 00:00:00 2001 From: Diogo Sousa Date: Tue, 25 Jul 2023 18:39:13 +0100 Subject: [PATCH 4/7] rename descriptions dict --- .../sdk/provider/openbb_provider/metadata.py | 13 ++++-- .../models/analyst_estimates.py | 8 ++-- .../provider/openbb_provider/models/base.py | 6 +-- .../provider/openbb_provider/models/cpi.py | 44 ++++++++----------- .../openbb_provider/models/crypto_eod.py | 6 +-- .../openbb_provider/models/crypto_price.py | 6 +-- .../models/dividend_calendar.py | 6 +-- .../openbb_provider/models/forex_price.py | 6 +-- .../models/institutional_ownership.py | 4 +- .../models/major_indices_constituents.py | 4 +- .../models/major_indices_eod.py | 6 +-- .../models/revenue_business_line.py | 4 +- .../models/revenue_geographic.py | 4 +- .../openbb_provider/models/stock_eod.py | 6 +-- .../openbb_provider/models/stock_news.py | 6 ++- .../openbb_provider/models/stock_price.py | 6 +-- .../openbb_provider/models/stock_splits.py | 6 +-- .../openbb_provider/models/treasury_rates.py | 6 +-- 18 files changed, 75 insertions(+), 72 deletions(-) diff --git a/openbb_sdk/sdk/provider/openbb_provider/metadata.py b/openbb_sdk/sdk/provider/openbb_provider/metadata.py index c2bb464a186..9ead4ebc3f0 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/metadata.py +++ b/openbb_sdk/sdk/provider/openbb_provider/metadata.py @@ -1,12 +1,19 @@ """Metadata for the parameters of the Pydantic models.""" -DESCRIPTIONS = { +QUERY_DESCRIPTIONS = { "symbol": "Symbol to get data for.", - "start_date": "Start date of the data.", - "end_date": "End date of the data.", + "start_date": "Start date of the data, in YYYY-MM-DD format.", + "end_date": "End date of the data, in YYYY-MM-DD format.", "weekly": "Whether to return weekly data.", "monthly": "Whether to return monthly data.", "period": "Period of the data to return (quarterly or annually).", "date": "A specific date to get data for.", "limit": "The number of data entries to return.", + "countries": "The country or countries you want to get data.", + "units": "The units you want to see.", + "frequency": "The frequency you want to see.", +} + +DATA_DESCRIPTIONS = { + "date": "The date of the data.", } diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/analyst_estimates.py b/openbb_sdk/sdk/provider/openbb_provider/models/analyst_estimates.py index fb0fa1af83d..bc4b4b8e533 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/analyst_estimates.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/analyst_estimates.py @@ -7,7 +7,7 @@ from typing import Literal from pydantic import Field from openbb_provider.abstract.data import Data, QueryParams -from openbb_provider.metadata import DESCRIPTIONS +from openbb_provider.metadata import QUERY_DESCRIPTIONS from openbb_provider.models.base import BaseSymbol @@ -15,15 +15,15 @@ class AnalystEstimatesQueryParams(QueryParams, BaseSymbol): """Analyst Estimates query.""" period: Literal["quarterly", "annually"] = Field( - default="annually", description=DESCRIPTIONS.get("period", "") + default="annually", description=QUERY_DESCRIPTIONS.get("period", "") ) - limit: int = Field(default=30, description=DESCRIPTIONS.get("limit", "")) + limit: int = Field(default=30, description=QUERY_DESCRIPTIONS.get("limit", "")) class AnalystEstimatesData(Data, BaseSymbol): """Analyst estimates data.""" - date: dateType = Field(description=DESCRIPTIONS.get("date", "")) + date: dateType = Field(description=QUERY_DESCRIPTIONS.get("date", "")) estimated_revenue_low: int = Field(description="The estimated revenue low.") estimated_revenue_high: int = Field(description="The estimated revenue high.") estimated_revenue_avg: int = Field(description="The estimated revenue average.") diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/base.py b/openbb_sdk/sdk/provider/openbb_provider/models/base.py index 2825b518e86..03a761f2c6b 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/base.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/base.py @@ -3,11 +3,11 @@ from typing import Literal from pydantic import BaseModel, Field, validator from openbb_provider.abstract.data import QueryParams -from openbb_provider.metadata import DESCRIPTIONS +from openbb_provider.metadata import QUERY_DESCRIPTIONS class BaseSymbol(BaseModel): - symbol: str = Field(min_length=1, description=DESCRIPTIONS.get("symbol", "")) + symbol: str = Field(min_length=1, description=QUERY_DESCRIPTIONS.get("symbol", "")) @validator("symbol", pre=True) def upper_symbol(cls, v: str): # pylint: disable=E0213 @@ -16,5 +16,5 @@ class BaseSymbol(BaseModel): class FinancialStatementQueryParams(QueryParams, BaseSymbol): period: Literal["annually", "quarterly"] = Field( - default="annually", description=DESCRIPTIONS.get("period", "") + default="annually", description=QUERY_DESCRIPTIONS.get("period", "") ) diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py b/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py index 6953d75c39f..bc949577aa1 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py @@ -1,9 +1,10 @@ from datetime import date as dateType from typing import List, Literal, Optional -from pydantic import validator +from pydantic import Field, validator from openbb_provider.abstract.data import Data, QueryParams +from openbb_provider.metadata import QUERY_DESCRIPTIONS CPI_COUNTRIES = Literal[ "australia", @@ -63,31 +64,24 @@ CPI_FREQUENCY = Literal["monthly", "quarterly", "annual"] class CPIQueryParams(QueryParams): - """CPI query. - When other provders are added, this will probably need less strict types + """CPI query.""" - Parameter - --------- - countries: List[CPI_COUNTRIES] - The country or countries you want to see. - units: List[CPI_UNITS] - The units you want to see, can be "growth_previous", "growth_same" or "index_2015". - frequency: List[CPI_FREQUENCY] - The frequency you want to see, either "annual", monthly" or "quarterly". - harmonized: bool - Whether you wish to obtain harmonized data. - start_date: Optional[date] - Start date, formatted YYYY-MM-DD - end_date: Optional[date] - End date, formatted YYYY-MM-DD - """ - - countries: List[CPI_COUNTRIES] - units: CPI_UNITS = "growth_same" - frequency: CPI_FREQUENCY = "monthly" - harmonized: bool = False - start_date: Optional[dateType] - end_date: Optional[dateType] + countries: List[CPI_COUNTRIES] = Field( + description=QUERY_DESCRIPTIONS.get("countries") + ) + units: CPI_UNITS = Field("growth_same", description=QUERY_DESCRIPTIONS.get("units")) + frequency: CPI_FREQUENCY = Field( + "monthly", description=QUERY_DESCRIPTIONS.get("frequency") + ) + harmonized: bool = Field( + False, description="Whether you wish to obtain harmonized data." + ) + start_date: Optional[dateType] = Field( + None, description=QUERY_DESCRIPTIONS.get("start_date") + ) + end_date: Optional[dateType] = Field( + None, description=QUERY_DESCRIPTIONS.get("end_date") + ) class CPIData(Data): diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/crypto_eod.py b/openbb_sdk/sdk/provider/openbb_provider/models/crypto_eod.py index 8739fca3508..bc5a208e0c0 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/crypto_eod.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/crypto_eod.py @@ -7,7 +7,7 @@ from typing import Optional from pydantic import Field, PositiveFloat from openbb_provider.abstract.data import Data, QueryParams -from openbb_provider.metadata import DESCRIPTIONS +from openbb_provider.metadata import QUERY_DESCRIPTIONS from openbb_provider.models.base import BaseSymbol @@ -25,11 +25,11 @@ class CryptoEODQueryParams(QueryParams, BaseSymbol): """ start_date: Optional[date] = Field( - description=DESCRIPTIONS.get("start_date", ""), + description=QUERY_DESCRIPTIONS.get("start_date", ""), default=None, ) end_date: Optional[date] = Field( - description=DESCRIPTIONS.get("end_date", ""), default=None + description=QUERY_DESCRIPTIONS.get("end_date", ""), default=None ) diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/crypto_price.py b/openbb_sdk/sdk/provider/openbb_provider/models/crypto_price.py index 45084ed4fc5..e5331bea291 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/crypto_price.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/crypto_price.py @@ -7,7 +7,7 @@ from typing import Optional from pydantic import Field, PositiveFloat from openbb_provider.abstract.data import Data, QueryParams -from openbb_provider.metadata import DESCRIPTIONS +from openbb_provider.metadata import QUERY_DESCRIPTIONS from openbb_provider.models.base import BaseSymbol @@ -25,9 +25,9 @@ class CryptoPriceQueryParams(QueryParams, BaseSymbol): """ # These fields only work with Polygon - start_date: date = Field(description=DESCRIPTIONS.get("start_date", "")) + start_date: date = Field(description=QUERY_DESCRIPTIONS.get("start_date", "")) end_date: Optional[date] = Field( - description=DESCRIPTIONS.get("end_date", ""), default=date.today() + description=QUERY_DESCRIPTIONS.get("end_date", ""), default=date.today() ) diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/dividend_calendar.py b/openbb_sdk/sdk/provider/openbb_provider/models/dividend_calendar.py index 944c834f478..7225371e06e 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/dividend_calendar.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/dividend_calendar.py @@ -11,7 +11,7 @@ from typing import Optional from pydantic import Field, NonNegativeFloat from openbb_provider.abstract.data import Data, QueryParams -from openbb_provider.metadata import DESCRIPTIONS +from openbb_provider.metadata import QUERY_DESCRIPTIONS class DividendCalendarQueryParams(QueryParams): @@ -31,11 +31,11 @@ class DividendCalendarQueryParams(QueryParams): """ start_date: Optional[dateType] = Field( - description=DESCRIPTIONS.get("start_date", ""), + description=QUERY_DESCRIPTIONS.get("start_date", ""), default=datetime.now().date() - timedelta(days=31), ) end_date: Optional[dateType] = Field( - description=DESCRIPTIONS.get("end_date", ""), + description=QUERY_DESCRIPTIONS.get("end_date", ""), default=datetime.now().date() - timedelta(days=1), ) diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/forex_price.py b/openbb_sdk/sdk/provider/openbb_provider/models/forex_price.py index dc7047b6e55..16923eb2045 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/forex_price.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/forex_price.py @@ -7,7 +7,7 @@ from typing import Optional from pydantic import Field, PositiveFloat from openbb_provider.abstract.data import Data, QueryParams -from openbb_provider.metadata import DESCRIPTIONS +from openbb_provider.metadata import QUERY_DESCRIPTIONS from openbb_provider.models.base import BaseSymbol @@ -25,9 +25,9 @@ class ForexPriceQueryParams(QueryParams, BaseSymbol): """ # These fields only work with Polygon - start_date: date = Field(description=DESCRIPTIONS.get("start_date", "")) + start_date: date = Field(description=QUERY_DESCRIPTIONS.get("start_date", "")) end_date: Optional[date] = Field( - description=DESCRIPTIONS.get("end_date", ""), default=date.today() + description=QUERY_DESCRIPTIONS.get("end_date", ""), default=date.today() ) diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/institutional_ownership.py b/openbb_sdk/sdk/provider/openbb_provider/models/institutional_ownership.py index 1cd5b5cdc32..7d790803a83 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/institutional_ownership.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/institutional_ownership.py @@ -7,7 +7,7 @@ from typing import Optional from pydantic import Field from openbb_provider.abstract.data import Data, QueryParams -from openbb_provider.metadata import DESCRIPTIONS +from openbb_provider.metadata import QUERY_DESCRIPTIONS from openbb_provider.models.base import BaseSymbol @@ -27,7 +27,7 @@ class InstitutionalOwnershipQueryParams(QueryParams, BaseSymbol): include_current_quarter: bool = Field( default=False, description="Include current quarter data." ) - date: Optional[dateType] = Field(description=DESCRIPTIONS.get("date", "")) + date: Optional[dateType] = Field(description=QUERY_DESCRIPTIONS.get("date", "")) class InstitutionalOwnershipData(Data): diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/major_indices_constituents.py b/openbb_sdk/sdk/provider/openbb_provider/models/major_indices_constituents.py index 9ea3d709112..98f23ee9b8c 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/major_indices_constituents.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/major_indices_constituents.py @@ -7,7 +7,7 @@ from typing import Literal, Optional, Union from pydantic import Field from openbb_provider.abstract.data import Data, QueryParams -from openbb_provider.metadata import DESCRIPTIONS +from openbb_provider.metadata import QUERY_DESCRIPTIONS class MajorIndicesConstituentsQueryParams(QueryParams): @@ -20,7 +20,7 @@ class MajorIndicesConstituentsQueryParams(QueryParams): """ index: Literal["nasdaq", "sp500", "dowjones"] = Field( - description=DESCRIPTIONS.get("index", ""), + description=QUERY_DESCRIPTIONS.get("index", ""), default="dowjones", ) diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/major_indices_eod.py b/openbb_sdk/sdk/provider/openbb_provider/models/major_indices_eod.py index 4f29a63edc6..b3f80dd9366 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/major_indices_eod.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/major_indices_eod.py @@ -7,7 +7,7 @@ from typing import Optional from pydantic import Field, PositiveFloat from openbb_provider.abstract.data import Data, QueryParams -from openbb_provider.metadata import DESCRIPTIONS +from openbb_provider.metadata import QUERY_DESCRIPTIONS from openbb_provider.models.base import BaseSymbol @@ -24,9 +24,9 @@ class MajorIndicesEODQueryParams(QueryParams, BaseSymbol): The end date of the stock data up to which to retrieve the data. """ - start_date: date = Field(description=DESCRIPTIONS.get("start_date", "")) + start_date: date = Field(description=QUERY_DESCRIPTIONS.get("start_date", "")) end_date: Optional[date] = Field( - description=DESCRIPTIONS.get("end_date", ""), default=date.today() + description=QUERY_DESCRIPTIONS.get("end_date", ""), default=date.today() ) diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/revenue_business_line.py b/openbb_sdk/sdk/provider/openbb_provider/models/revenue_business_line.py index 19477b968e2..0d33afa8c60 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/revenue_business_line.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/revenue_business_line.py @@ -7,7 +7,7 @@ from typing import Dict, Literal from pydantic import Field from openbb_provider.abstract.data import Data, QueryParams -from openbb_provider.metadata import DESCRIPTIONS +from openbb_provider.metadata import QUERY_DESCRIPTIONS from openbb_provider.models.base import BaseSymbol @@ -26,7 +26,7 @@ class RevenueBusinessLineQueryParams(QueryParams, BaseSymbol): """ period: Literal["quarterly", "annually"] = Field( - default="quarterly", description=DESCRIPTIONS.get("period", "") + default="quarterly", description=QUERY_DESCRIPTIONS.get("period", "") ) structure: Literal["hierarchical", "flat"] = Field( default="flat" diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/revenue_geographic.py b/openbb_sdk/sdk/provider/openbb_provider/models/revenue_geographic.py index 1e3f3733949..9cd61898d6a 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/revenue_geographic.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/revenue_geographic.py @@ -7,7 +7,7 @@ from typing import Literal, Optional from pydantic import Field from openbb_provider.abstract.data import Data, QueryParams -from openbb_provider.metadata import DESCRIPTIONS +from openbb_provider.metadata import QUERY_DESCRIPTIONS from openbb_provider.models.base import BaseSymbol @@ -25,7 +25,7 @@ class RevenueGeographicQueryParams(QueryParams, BaseSymbol): """ period: Literal["quarterly", "annually"] = Field( - default="quarterly", description=DESCRIPTIONS.get("period", "") + default="quarterly", description=QUERY_DESCRIPTIONS.get("period", "") ) structure: Literal["hierarchical", "flat"] = Field( default="flat" diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/stock_eod.py b/openbb_sdk/sdk/provider/openbb_provider/models/stock_eod.py index 4bfb3ec837a..4c7d6b5936b 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/stock_eod.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/stock_eod.py @@ -7,7 +7,7 @@ from typing import Optional from pydantic import Field, PositiveFloat from openbb_provider.abstract.data import Data, QueryParams -from openbb_provider.metadata import DESCRIPTIONS +from openbb_provider.metadata import QUERY_DESCRIPTIONS from openbb_provider.models.base import BaseSymbol @@ -24,11 +24,11 @@ class StockEODQueryParams(QueryParams, BaseSymbol): """ start_date: Optional[date] = Field( - description=DESCRIPTIONS.get("start_date", ""), + description=QUERY_DESCRIPTIONS.get("start_date", ""), default=None, ) end_date: Optional[date] = Field( - description=DESCRIPTIONS.get("end_date", ""), default=None + description=QUERY_DESCRIPTIONS.get("end_date", ""), default=None ) diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/stock_news.py b/openbb_sdk/sdk/provider/openbb_provider/models/stock_news.py index dd97e10f751..eaa9f325b99 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/stock_news.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/stock_news.py @@ -7,7 +7,7 @@ from typing import Optional from pydantic import Field, validator from openbb_provider.abstract.data import Data, QueryParams -from openbb_provider.metadata import DESCRIPTIONS +from openbb_provider.metadata import QUERY_DESCRIPTIONS class StockNewsQueryParams(QueryParams): @@ -22,7 +22,9 @@ class StockNewsQueryParams(QueryParams): The page of the stock news to be retrieved. """ - symbols: str = Field(min_length=1, description=DESCRIPTIONS.get("symbols", "")) + symbols: str = Field( + min_length=1, description=QUERY_DESCRIPTIONS.get("symbols", "") + ) page: int = Field(default=0) @validator("symbols", pre=True) diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/stock_price.py b/openbb_sdk/sdk/provider/openbb_provider/models/stock_price.py index 71616ed75b3..7c61f5ac536 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/stock_price.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/stock_price.py @@ -7,7 +7,7 @@ from typing import Optional from pydantic import Field, PositiveFloat from openbb_provider.abstract.data import Data, QueryParams -from openbb_provider.metadata import DESCRIPTIONS +from openbb_provider.metadata import QUERY_DESCRIPTIONS from openbb_provider.models.base import BaseSymbol @@ -25,9 +25,9 @@ class StockPriceQueryParams(QueryParams, BaseSymbol): """ # These fields only work with Polygon - start_date: date = Field(description=DESCRIPTIONS.get("start_date", "")) + start_date: date = Field(description=QUERY_DESCRIPTIONS.get("start_date", "")) end_date: Optional[date] = Field( - description=DESCRIPTIONS.get("end_date", ""), default=date.today() + description=QUERY_DESCRIPTIONS.get("end_date", ""), default=date.today() ) diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/stock_splits.py b/openbb_sdk/sdk/provider/openbb_provider/models/stock_splits.py index 369903b9c36..a3d7214af4d 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/stock_splits.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/stock_splits.py @@ -7,7 +7,7 @@ from typing import Optional from pydantic import Field from openbb_provider.abstract.data import Data, QueryParams -from openbb_provider.metadata import DESCRIPTIONS +from openbb_provider.metadata import QUERY_DESCRIPTIONS class StockSplitCalendarQueryParams(QueryParams): @@ -22,10 +22,10 @@ class StockSplitCalendarQueryParams(QueryParams): """ start_date: Optional[dateType] = Field( - description=DESCRIPTIONS.get("start_date", ""), default=None + description=QUERY_DESCRIPTIONS.get("start_date", ""), default=None ) end_date: Optional[dateType] = Field( - description=DESCRIPTIONS.get("end_date", ""), default=None + description=QUERY_DESCRIPTIONS.get("end_date", ""), default=None ) diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/treasury_rates.py b/openbb_sdk/sdk/provider/openbb_provider/models/treasury_rates.py index 32ac4532b9f..72445905a42 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/treasury_rates.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/treasury_rates.py @@ -10,7 +10,7 @@ from typing import Optional from pydantic import Field from openbb_provider.abstract.data import Data, QueryParams -from openbb_provider.metadata import DESCRIPTIONS +from openbb_provider.metadata import QUERY_DESCRIPTIONS class TreasuryRatesQueryParams(QueryParams): @@ -25,11 +25,11 @@ class TreasuryRatesQueryParams(QueryParams): """ start_date: Optional[str] = Field( - default=None, description=DESCRIPTIONS["start_date"] + default=None, description=QUERY_DESCRIPTIONS["start_date"] ) end_date: Optional[str] = Field( default=datetime.today().strftime("%Y-%m-%d"), - description=DESCRIPTIONS["end_date"], + description=QUERY_DESCRIPTIONS["end_date"], ) From 1cd5ebeeaaf30792afde74ca9e17e941dc6fcb37 Mon Sep 17 00:00:00 2001 From: Diogo Sousa Date: Tue, 25 Jul 2023 18:45:33 +0100 Subject: [PATCH 5/7] add descriptions to cpi data --- .../sdk/provider/openbb_provider/models/cpi.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py b/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py index bc949577aa1..999bf53fcd3 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py @@ -4,7 +4,7 @@ from typing import List, Literal, Optional from pydantic import Field, validator from openbb_provider.abstract.data import Data, QueryParams -from openbb_provider.metadata import QUERY_DESCRIPTIONS +from openbb_provider.metadata import DATA_DESCRIPTIONS, QUERY_DESCRIPTIONS CPI_COUNTRIES = Literal[ "australia", @@ -85,10 +85,14 @@ class CPIQueryParams(QueryParams): class CPIData(Data): - date: dateType - realtime_start: dateType - realtime_end: dateType - value: float + date: dateType = Field(description=DATA_DESCRIPTIONS.get("date")) + realtime_start: dateType = Field( + description="The date the data was updated." + ) # TODO: What is this? + realtime_end: dateType = Field( + description="The date the data was updated." + ) # TODO: What is this? + value: float = Field(description="The value of the data.") @validator("value", pre=True) def value_validate(cls, v: str): # pylint: disable=E0213 From a514c3f4dc9550674956ed764b9ba1f0fced9f70 Mon Sep 17 00:00:00 2001 From: Diogo Sousa Date: Tue, 25 Jul 2023 18:49:12 +0100 Subject: [PATCH 6/7] change description --- openbb_sdk/sdk/provider/openbb_provider/metadata.py | 6 +++--- openbb_sdk/sdk/provider/openbb_provider/models/cpi.py | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/openbb_sdk/sdk/provider/openbb_provider/metadata.py b/openbb_sdk/sdk/provider/openbb_provider/metadata.py index 9ead4ebc3f0..c4ce0e8af33 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/metadata.py +++ b/openbb_sdk/sdk/provider/openbb_provider/metadata.py @@ -9,9 +9,9 @@ QUERY_DESCRIPTIONS = { "period": "Period of the data to return (quarterly or annually).", "date": "A specific date to get data for.", "limit": "The number of data entries to return.", - "countries": "The country or countries you want to get data.", - "units": "The units you want to see.", - "frequency": "The frequency you want to see.", + "countries": "The country or countries to get data.", + "units": "The data units.", + "frequency": "The data time frequency.", } DATA_DESCRIPTIONS = { diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py b/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py index 999bf53fcd3..0a2e65a27b1 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py @@ -85,6 +85,8 @@ class CPIQueryParams(QueryParams): class CPIData(Data): + """CPI data.""" + date: dateType = Field(description=DATA_DESCRIPTIONS.get("date")) realtime_start: dateType = Field( description="The date the data was updated." From c231bfa09d24a607bd67f88d8d48ef7c9ebbc14f Mon Sep 17 00:00:00 2001 From: Diogo Sousa Date: Tue, 25 Jul 2023 18:50:21 +0100 Subject: [PATCH 7/7] black --- .../sdk/provider/openbb_provider/models/cpi.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py b/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py index 0a2e65a27b1..1de70fe77b2 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/cpi.py @@ -69,18 +69,20 @@ class CPIQueryParams(QueryParams): countries: List[CPI_COUNTRIES] = Field( description=QUERY_DESCRIPTIONS.get("countries") ) - units: CPI_UNITS = Field("growth_same", description=QUERY_DESCRIPTIONS.get("units")) + units: CPI_UNITS = Field( + default="growth_same", description=QUERY_DESCRIPTIONS.get("units") + ) frequency: CPI_FREQUENCY = Field( - "monthly", description=QUERY_DESCRIPTIONS.get("frequency") + default="monthly", description=QUERY_DESCRIPTIONS.get("frequency") ) harmonized: bool = Field( - False, description="Whether you wish to obtain harmonized data." + default=False, description="Whether you wish to obtain harmonized data." ) start_date: Optional[dateType] = Field( - None, description=QUERY_DESCRIPTIONS.get("start_date") + default=None, description=QUERY_DESCRIPTIONS.get("start_date") ) end_date: Optional[dateType] = Field( - None, description=QUERY_DESCRIPTIONS.get("end_date") + default=None, description=QUERY_DESCRIPTIONS.get("end_date") )