mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-10-27 20:42:26 +00:00
Standardize balance, income, cash for Intrinio (#5809)
* Fix test coverage test failing * Fix spot rates integration test * Apply the standardization to intrinio balance, income and cash --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> Co-authored-by: James Maslek <jmaslek11@gmail.com>
This commit is contained in:
committed by
GitHub
parent
6d13807047
commit
dc81f6cd24
@@ -11,7 +11,7 @@ from openbb_core.provider.standard_models.balance_sheet import (
|
||||
BalanceSheetQueryParams,
|
||||
)
|
||||
from openbb_intrinio.utils.helpers import get_data_one
|
||||
from pydantic import alias_generators
|
||||
from pydantic import Field
|
||||
|
||||
|
||||
class IntrinioBalanceSheetQueryParams(BalanceSheetQueryParams):
|
||||
@@ -26,18 +26,74 @@ class IntrinioBalanceSheetData(BalanceSheetData):
|
||||
"""Intrinio Balance Sheet Data."""
|
||||
|
||||
__alias_dict__ = {
|
||||
"cash_and_cash_equivalents_at_carrying_value": "cash_and_equivalents",
|
||||
"marketable_securities_current": "short_term_investments",
|
||||
"accounts_receivable_net_current": "note_and_lease_receivable",
|
||||
"inventory": "inventory_net",
|
||||
"total_non_current_assets": "total_noncurrent_assets",
|
||||
"tax_payables": "other_taxes_payables",
|
||||
"deferred_revenue": "current_deferred_revenue",
|
||||
"deferred_revenue_non_current": "noncurrent_deferred_revenue",
|
||||
"deferred_tax_liabilities_non_current": "noncurrent_deferred_and_payable_income_tax_liabilities",
|
||||
"other_liabilities": "other_long_term_liabilities",
|
||||
"accumulated_other_comprehensive_income_loss": "accumulated_other_comprehensive_income_loss",
|
||||
"cash_and_cash_equivalents": "cashandequivalents",
|
||||
"short_term_investments": "shortterminvestments",
|
||||
"accounts_receivable": "accountsreceivable",
|
||||
"net_inventory": "netinventory",
|
||||
"other_current_assets": "othercurrentassets",
|
||||
"total_current_assets": "totalcurrentassets",
|
||||
"long_term_investments": "longterminvestments",
|
||||
"other_noncurrent_assets": "othernoncurrentassets",
|
||||
"total_assets": "totalassets",
|
||||
"short_term_debt": "shorttermdebt",
|
||||
"accounts_payable": "accountspayable",
|
||||
"other_current_liabilities": "othercurrentliabilities",
|
||||
"total_current_liabilities": "totalcurrentliabilities",
|
||||
"long_term_debt": "longtermdebt",
|
||||
"total_liabilities": "totalliabilities",
|
||||
"common_stock": "commonequity",
|
||||
"retained_earnings": "retainedearnings",
|
||||
"total_equity": "totalequity",
|
||||
}
|
||||
note_receivable: Optional[float] = Field(
|
||||
default=None, alias="notereceivable", description="Notes and lease receivable."
|
||||
)
|
||||
net_ppe: Optional[float] = Field(
|
||||
default=None, alias="netppe", description="Plant, property, and equipment, net."
|
||||
)
|
||||
total_noncurrent_assets: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="totalnoncurrentassets",
|
||||
description="Total noncurrent assets.",
|
||||
)
|
||||
current_deferred_revenue: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="currentdeferredrevenue",
|
||||
description="Current deferred revenue.",
|
||||
)
|
||||
other_noncurrent_liabilities: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="othernoncurrentliabilities",
|
||||
description="Other noncurrent operating liabilities.",
|
||||
)
|
||||
total_noncurrent_liabilities: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="totalnoncurrentliabilities",
|
||||
description="Total noncurrent liabilities.",
|
||||
)
|
||||
commitments_and_contingencies: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="commitmentsandcontingencies",
|
||||
description="Commitments and contingencies.",
|
||||
)
|
||||
aoci: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="aoci",
|
||||
description="Accumulated other comprehensive income / (loss).",
|
||||
)
|
||||
total_common_equity: Optional[float] = Field(
|
||||
default=None, alias="totalcommonequity", description="Total common equity."
|
||||
)
|
||||
total_equity_and_noncontrolling_interests: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="totalequityandnoncontrollinginterests",
|
||||
description="Total equity & noncontrolling interests.",
|
||||
)
|
||||
total_liabilities_and_equity: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="totalliabilitiesandequity",
|
||||
description="Total liabilities & shareholders' equity.",
|
||||
)
|
||||
|
||||
|
||||
class IntrinioBalanceSheetFetcher(
|
||||
@@ -114,7 +170,7 @@ class IntrinioBalanceSheetFetcher(
|
||||
sub_dict: Dict[str, Any] = {}
|
||||
|
||||
for sub_item in item["financials"]:
|
||||
field_name = alias_generators.to_snake(sub_item["data_tag"]["name"])
|
||||
field_name = sub_item["data_tag"]["tag"]
|
||||
sub_dict[field_name] = float(sub_item["value"])
|
||||
|
||||
sub_dict["date"] = item["date"]
|
||||
|
||||
@@ -11,7 +11,7 @@ from openbb_core.provider.standard_models.cash_flow import (
|
||||
CashFlowStatementQueryParams,
|
||||
)
|
||||
from openbb_intrinio.utils.helpers import get_data_one
|
||||
from pydantic import alias_generators
|
||||
from pydantic import Field
|
||||
|
||||
|
||||
class IntrinioCashFlowStatementQueryParams(CashFlowStatementQueryParams):
|
||||
@@ -26,11 +26,9 @@ class IntrinioCashFlowStatementData(CashFlowStatementData):
|
||||
"""Intrinio Cash Flow Statement Data."""
|
||||
|
||||
__alias_dict__ = {
|
||||
"net_income": "NetIncomeLoss",
|
||||
"depreciation_and_amortization": "DepreciationDepletionAndAmortization",
|
||||
"stock_based_compensation": "ShareBasedCompensation",
|
||||
"deferred_income_tax": "DeferredIncomeTaxExpenseBenefit",
|
||||
"other_non_cash_items": "OtherNoncashIncomeExpense",
|
||||
"net_income": "netincome",
|
||||
"depreciation_and_amortization": "depreciationexpense",
|
||||
"other_non_cash_items": "noncashadjustmentstonetincome",
|
||||
"accounts_receivables": "IncreaseDecreaseInAccountsReceivable",
|
||||
"inventory": "IncreaseDecreaseInInventories",
|
||||
"vendor_non_trade_receivables": "IncreaseDecreaseInOtherReceivables",
|
||||
@@ -38,23 +36,62 @@ class IntrinioCashFlowStatementData(CashFlowStatementData):
|
||||
"accounts_payables": "IncreaseDecreaseInAccountsPayable",
|
||||
"deferred_revenue": "IncreaseDecreaseInContractWithCustomerLiability",
|
||||
"other_current_and_non_current_liabilities": "IncreaseDecreaseInOtherOperatingLiabilities",
|
||||
"net_cash_flow_from_operating_activities": "NetCashProvidedByUsedInOperatingActivities",
|
||||
"purchases_of_marketable_securities": "PaymentsToAcquireAvailableForSaleSecuritiesDebt",
|
||||
"sales_from_maturities_of_investments": "ProceedsFromSaleOfAvailableForSaleSecuritiesDebt",
|
||||
"investments_in_property_plant_and_equipment": "ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities", # noqa: E501
|
||||
"payments_from_acquisitions": "PaymentsToAcquireBusinessesNetOfCashAcquired",
|
||||
"other_investing_activities": "PaymentsForProceedsFromOtherInvestingActivities",
|
||||
"net_cash_flow_from_investing_activities": "NetCashProvidedByUsedInInvestingActivities",
|
||||
"taxes_paid_on_net_share_settlement": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation",
|
||||
"dividends_paid": "PaymentsOfDividends",
|
||||
"common_stock_repurchased": "PaymentsForRepurchaseOfCommonStock",
|
||||
"debt_proceeds": "ProceedsFromIssuanceOfLongTermDebt",
|
||||
"debt_repayment": "RepaymentsOfLongTermDebt",
|
||||
"other_financing_activities": "ProceedsFromPaymentsForOtherFinancingActivities",
|
||||
"net_cash_flow_from_financing_activities": "NetCashProvidedByUsedInFinancingActivities",
|
||||
"net_change_in_cash": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", # noqa: E501
|
||||
"net_cash_flow_from_operating_activities": "netcashfromoperatingactivities",
|
||||
"purchases_of_marketable_securities": "purchaseofinvestments",
|
||||
"sales_from_maturities_of_investments": "saleofinvestments",
|
||||
"investments_in_property_plant_and_equipment": "purchaseofplantpropertyandequipment",
|
||||
"payments_from_acquisitions": "acquisitions",
|
||||
"other_investing_activities": "otherinvestingactivitiesnet",
|
||||
"net_cash_flow_from_investing_activities": "netcashfrominvestingactivities",
|
||||
"dividends_paid": "paymentofdividends",
|
||||
"common_stock_repurchased": "repurchaseofcommonequity",
|
||||
"debt_proceeds": "issuanceofdebt",
|
||||
"debt_repayment": "repaymentofdebt",
|
||||
"other_financing_activities": "otherfinancingactivitiesnet",
|
||||
"net_cash_flow_from_financing_activities": "netcashfromfinancingactivities",
|
||||
"net_change_in_cash": "netchangeincash",
|
||||
}
|
||||
|
||||
changes_in_operating_assets_and_liabilities: Optional[float] = Field(
|
||||
None,
|
||||
alias="increasedecreaseinoperatingcapital",
|
||||
description="Changes in operating assets and liabilities.",
|
||||
)
|
||||
|
||||
net_income_continuing: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="netincomecontinuing",
|
||||
description="Net income from continuing operations.",
|
||||
)
|
||||
net_cash_from_continuing_operating_activities: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="netcashfromcontinuingoperatingactivities",
|
||||
description="Net cash from continuing operating activities.",
|
||||
)
|
||||
net_cash_from_continuing_investing_activities: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="netcashfromcontinuinginvestingactivities",
|
||||
description="Net cash from continuing investing activities.",
|
||||
)
|
||||
net_cash_from_continuing_financing_activities: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="netcashfromcontinuingfinancingactivities",
|
||||
description="Net cash from continuing financing activities.",
|
||||
)
|
||||
cash_interest_paid: Optional[float] = Field(
|
||||
default=None, alias="cashinterestpaid", description="Cash paid for interest."
|
||||
)
|
||||
cash_income_taxes_paid: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="cashincometaxespaid",
|
||||
description="Cash paid for income taxes.",
|
||||
)
|
||||
issuance_of_common_equity: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="issuanceofcommonequity",
|
||||
description="Issuance of common equity.",
|
||||
)
|
||||
|
||||
|
||||
class IntrinioCashFlowStatementFetcher(
|
||||
Fetcher[
|
||||
@@ -130,7 +167,7 @@ class IntrinioCashFlowStatementFetcher(
|
||||
sub_dict: Dict[str, Any] = {}
|
||||
|
||||
for sub_item in item["financials"]:
|
||||
field_name = alias_generators.to_snake(sub_item["data_tag"]["name"])
|
||||
field_name = sub_item["data_tag"]["tag"]
|
||||
sub_dict[field_name] = float(sub_item["value"])
|
||||
|
||||
sub_dict["date"] = item["date"]
|
||||
|
||||
@@ -11,7 +11,7 @@ from openbb_core.provider.standard_models.income_statement import (
|
||||
IncomeStatementQueryParams,
|
||||
)
|
||||
from openbb_intrinio.utils.helpers import get_data_one
|
||||
from pydantic import alias_generators
|
||||
from pydantic import Field
|
||||
|
||||
|
||||
class IntrinioIncomeStatementQueryParams(IncomeStatementQueryParams):
|
||||
@@ -26,17 +26,68 @@ class IntrinioIncomeStatementData(IncomeStatementData):
|
||||
"""Intrinio Income Statement Data."""
|
||||
|
||||
__alias_dict__ = {
|
||||
"research_and_development_expenses": "ResearchAndDevelopmentExpense",
|
||||
"selling_general_and_administrative_expenses": "SellingGeneralAndAdministrativeExpense",
|
||||
"ebit": "earnings before interest and taxes (ebit)",
|
||||
"ebitda": "earnings before interest, taxes, depreciation and amortization (ebitda)",
|
||||
"ebitda_margin": "ebitda margin",
|
||||
"operating_income": "OperatingIncomeLoss",
|
||||
"income_before_tax": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", # noqa: E501
|
||||
"eps_diluted": "EarningsPerShareDiluted",
|
||||
"weighted_average_shares_outstanding": "WeightedAverageNumberOfSharesOutstandingBasic",
|
||||
"weighted_average_shares_outstanding_dil": "WeightedAverageNumberOfDilutedSharesOutstanding",
|
||||
"revenue": "totalrevenue",
|
||||
"cost_of_revenue": "totalcostofrevenue",
|
||||
"gross_profit": "totalgrossprofit",
|
||||
"research_and_development_expenses": "rdexpense",
|
||||
"selling_general_and_administrative_expenses": "sgaexpense",
|
||||
"operating_expenses": "totaloperatingexpenses",
|
||||
"operating_income": "totaloperatingincome",
|
||||
"interest_expense": "interestexpense",
|
||||
"income_before_tax": "totalpretaxincome",
|
||||
"income_tax_expense": "incometaxexpense",
|
||||
"net_income": "netincome",
|
||||
"eps": "basiceps",
|
||||
"eps_diluted": "dilutedeps",
|
||||
"weighted_average_shares_outstanding": "weightedavebasicsharesos",
|
||||
"ebit": "ebit",
|
||||
"ebitda": "ebitda",
|
||||
}
|
||||
# Intrinio-specific fields that don't have a direct mapping to the standard model
|
||||
operating_revenue: Optional[float] = Field(
|
||||
default=None, alias="operatingrevenue", description="Operating revenue."
|
||||
)
|
||||
operating_cost_of_revenue: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="operatingcostofrevenue",
|
||||
description="Operating cost of revenue.",
|
||||
)
|
||||
total_other_income_expenses_net: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="totalotherincome",
|
||||
description="Total other income/expenses net.",
|
||||
)
|
||||
net_income_continuing: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="netincomecontinuing",
|
||||
description="Net income from continuing operations.",
|
||||
)
|
||||
net_income_to_common: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="netincometocommon",
|
||||
description="Net income to common shareholders.",
|
||||
)
|
||||
weighted_average_shares_outstanding_dil: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="weightedavedilutedsharesos",
|
||||
description="Weighted average diluted shares outstanding.",
|
||||
)
|
||||
cash_dividends_per_share: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="cashdividendspershare",
|
||||
description="Cash dividends per share.",
|
||||
)
|
||||
ebitda_ratio: Optional[float] = Field(
|
||||
default=None, alias="ebitdamargin", description="EBITDA margin."
|
||||
)
|
||||
other_income: Optional[float] = Field(
|
||||
default=None, alias="otherincome", description="Other income."
|
||||
)
|
||||
weighted_ave_basic_diluted_shares_os: Optional[float] = Field(
|
||||
default=None,
|
||||
alias="weightedavebasicdilutedsharesos",
|
||||
description="Weighted average basic and diluted shares outstanding.",
|
||||
)
|
||||
|
||||
|
||||
class IntrinioIncomeStatementFetcher(
|
||||
@@ -127,7 +178,7 @@ class IntrinioIncomeStatementFetcher(
|
||||
sub_dict: Dict[str, Any] = {}
|
||||
|
||||
for sub_item in item["financials"]:
|
||||
field_name = alias_generators.to_snake(sub_item["data_tag"]["name"])
|
||||
field_name = sub_item["data_tag"]["tag"]
|
||||
sub_dict[field_name] = float(sub_item["value"])
|
||||
|
||||
sub_dict["date"] = item["date"]
|
||||
|
||||
Reference in New Issue
Block a user