diff options
Diffstat (limited to 'openbb_platform/core/openbb_core/provider/standard_models/cash_flow.py')
-rw-r--r-- | openbb_platform/core/openbb_core/provider/standard_models/cash_flow.py | 129 |
1 files changed, 17 insertions, 112 deletions
diff --git a/openbb_platform/core/openbb_core/provider/standard_models/cash_flow.py b/openbb_platform/core/openbb_core/provider/standard_models/cash_flow.py index 3a2f4bc1ae4..8e7cc2b40a4 100644 --- a/openbb_platform/core/openbb_core/provider/standard_models/cash_flow.py +++ b/openbb_platform/core/openbb_core/provider/standard_models/cash_flow.py @@ -1,24 +1,23 @@ """Cash Flow Statement Standard Model.""" - +import warnings from datetime import date as dateType -from typing import List, Literal, Optional, Set, Union +from typing import Optional -from pydantic import Field, NonNegativeInt, StrictFloat, field_validator +from pydantic import Field, NonNegativeInt, field_validator from openbb_core.provider.abstract.data import Data from openbb_core.provider.abstract.query_params import QueryParams -from openbb_core.provider.utils.descriptions import ( - DATA_DESCRIPTIONS, - QUERY_DESCRIPTIONS, -) +from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS + +_warn = warnings.warn class CashFlowStatementQueryParams(QueryParams): """Cash Flow Statement Query.""" symbol: str = Field(description=QUERY_DESCRIPTIONS.get("symbol", "")) - period: Optional[Literal["annual", "quarter"]] = Field( + period: str = Field( default="annual", description=QUERY_DESCRIPTIONS.get("period", ""), ) @@ -28,116 +27,22 @@ class CashFlowStatementQueryParams(QueryParams): @field_validator("symbol", mode="before", check_fields=False) @classmethod - def upper_symbol(cls, v: Union[str, List[str], Set[str]]): + def upper_symbol(cls, v: str): """Convert symbol to uppercase.""" + if "," in v: + _warn( + f"{QUERY_DESCRIPTIONS.get('symbol_list_warning', '')} {v.split(',')[0].upper()}" + ) return v.split(",")[0].upper() if "," in v else v.upper() class CashFlowStatementData(Data): """Cash Flow Statement Data.""" - symbol: Optional[str] = Field( - default=None, description=DATA_DESCRIPTIONS.get("symbol", "") - ) - date: dateType = Field(description=DATA_DESCRIPTIONS.get("date" "")) - period: Optional[str] = Field( - default=None, description="Reporting period of the statement." - ) - cik: Optional[str] = Field( - default=None, - description=DATA_DESCRIPTIONS.get("cik", ""), - ) - - net_income: Optional[StrictFloat] = Field(default=None, description="Net income.") - - depreciation_and_amortization: Optional[StrictFloat] = Field( - default=None, description="Depreciation and amortization." - ) - stock_based_compensation: Optional[StrictFloat] = Field( - default=None, description="Stock based compensation." - ) - deferred_income_tax: Optional[StrictFloat] = Field( - default=None, description="Deferred income tax." - ) - other_non_cash_items: Optional[StrictFloat] = Field( - default=None, description="Other non-cash items." - ) - changes_in_operating_assets_and_liabilities: Optional[StrictFloat] = Field( - default=None, description="Changes in operating assets and liabilities." - ) - - accounts_receivables: Optional[StrictFloat] = Field( - default=None, description="Accounts receivables." - ) - inventory: Optional[StrictFloat] = Field(default=None, description="Inventory.") - vendor_non_trade_receivables: Optional[StrictFloat] = Field( - default=None, description="Vendor non-trade receivables." - ) - other_current_and_non_current_assets: Optional[StrictFloat] = Field( - default=None, description="Other current and non-current assets." - ) - accounts_payables: Optional[StrictFloat] = Field( - default=None, description="Accounts payables." - ) - deferred_revenue: Optional[StrictFloat] = Field( - default=None, description="Deferred revenue." - ) - other_current_and_non_current_liabilities: Optional[StrictFloat] = Field( - default=None, description="Other current and non-current liabilities." - ) - net_cash_flow_from_operating_activities: Optional[StrictFloat] = Field( - default=None, description="Net cash flow from operating activities." - ) - - purchases_of_marketable_securities: Optional[StrictFloat] = Field( - default=None, description="Purchases of investments." - ) - sales_from_maturities_of_investments: Optional[StrictFloat] = Field( - default=None, description="Sales and maturities of investments." - ) - investments_in_property_plant_and_equipment: Optional[StrictFloat] = Field( - default=None, description="Investments in property, plant, and equipment." - ) - payments_from_acquisitions: Optional[StrictFloat] = Field( - default=None, description="Acquisitions, net of cash acquired, and other" - ) - other_investing_activities: Optional[StrictFloat] = Field( - default=None, description="Other investing activities" - ) - net_cash_flow_from_investing_activities: Optional[StrictFloat] = Field( - default=None, description="Net cash used for investing activities." - ) - - taxes_paid_on_net_share_settlement: Optional[StrictFloat] = Field( - default=None, description="Taxes paid on net share settlement of equity awards." - ) - dividends_paid: Optional[StrictFloat] = Field( - default=None, description="Payments for dividends and dividend equivalents" + period_ending: dateType = Field(description="The end date of the reporting period.") + fiscal_period: Optional[str] = Field( + description="The fiscal period of the report.", default=None ) - common_stock_repurchased: Optional[StrictFloat] = Field( - default=None, description="Payments related to repurchase of common stock" + fiscal_year: Optional[int] = Field( + description="The fiscal year of the fiscal period.", default=None ) - debt_proceeds: Optional[StrictFloat] = Field( - default=None, description="Proceeds from issuance of term debt" - ) - debt_repayment: Optional[StrictFloat] = Field( - default=None, description="Payments of long-term debt" - ) - other_financing_activities: Optional[StrictFloat] = Field( - default=None, description="Other financing activities, net" - ) - net_cash_flow_from_financing_activities: Optional[StrictFloat] = Field( - default=None, description="Net cash flow from financing activities." - ) - net_change_in_cash: Optional[StrictFloat] = Field( - default=None, - description="Net increase (decrease) in cash, cash equivalents, and restricted cash", - ) - - @field_validator("symbol", mode="before", check_fields=False) - @classmethod - def upper_symbol(cls, v: Union[str, List[str], Set[str]]): - """Convert symbol to uppercase.""" - if isinstance(v, str): - return v.upper() - return ",".join([symbol.upper() for symbol in list(v)]) if v else None |