1- from typing import Optional , Dict , List
1+ from dataclasses import dataclass
2+ from typing import Any , Dict , List , Optional
23from ...modelclass import modelclass
34
45
56@modelclass
7+ @dataclass
68class DataPoint :
79 """Represents a single numeric or textual data point in the financials."""
810
@@ -16,7 +18,7 @@ class DataPoint:
1618 xpath : Optional [str ] = None
1719
1820 @staticmethod
19- def from_dict (d : dict ) -> "DataPoint" :
21+ def from_dict (d : Optional [ Dict [ str , Any ]] ) -> "DataPoint" :
2022 if not d :
2123 return DataPoint ()
2224 return DataPoint (
@@ -31,6 +33,7 @@ def from_dict(d: dict) -> "DataPoint":
3133 )
3234
3335
36+ @dataclass
3437@modelclass
3538class BalanceSheet :
3639 assets : Optional [DataPoint ] = None
@@ -68,10 +71,9 @@ class BalanceSheet:
6871 liabilities_and_equity : Optional [DataPoint ] = None
6972
7073 @staticmethod
71- def from_dict (d : dict ) -> "BalanceSheet" :
74+ def from_dict (d : Optional [ Dict [ str , Any ]] ) -> "BalanceSheet" :
7275 if not d :
7376 return BalanceSheet ()
74-
7577 return BalanceSheet (
7678 assets = DataPoint .from_dict (d .get ("assets" )),
7779 current_assets = DataPoint .from_dict (d .get ("current_assets" )),
@@ -133,9 +135,9 @@ def from_dict(d: dict) -> "BalanceSheet":
133135 )
134136
135137
138+ @dataclass
136139@modelclass
137140class CashFlowStatement :
138-
139141 net_cash_flow_from_operating_activities : Optional [DataPoint ] = None
140142 net_cash_flow_from_operating_activities_continuing : Optional [DataPoint ] = None
141143 net_cash_flow_from_operating_activities_discontinued : Optional [DataPoint ] = None
@@ -151,10 +153,9 @@ class CashFlowStatement:
151153 net_cash_flow_discontinued : Optional [DataPoint ] = None
152154
153155 @staticmethod
154- def from_dict (d : dict ) -> "CashFlowStatement" :
156+ def from_dict (d : Optional [ Dict [ str , Any ]] ) -> "CashFlowStatement" :
155157 if not d :
156158 return CashFlowStatement ()
157-
158159 return CashFlowStatement (
159160 net_cash_flow_from_operating_activities = DataPoint .from_dict (
160161 d .get ("net_cash_flow_from_operating_activities" )
@@ -194,9 +195,9 @@ def from_dict(d: dict) -> "CashFlowStatement":
194195 )
195196
196197
198+ @dataclass
197199@modelclass
198200class ComprehensiveIncome :
199-
200201 comprehensive_income_loss : Optional [DataPoint ] = None
201202 comprehensive_income_loss_attributable_to_noncontrolling_interest : Optional [
202203 DataPoint
@@ -209,10 +210,9 @@ class ComprehensiveIncome:
209210 other_comprehensive_income_loss_attributable_to_parent : Optional [DataPoint ] = None
210211
211212 @staticmethod
212- def from_dict (d : dict ) -> "ComprehensiveIncome" :
213+ def from_dict (d : Optional [ Dict [ str , Any ]] ) -> "ComprehensiveIncome" :
213214 if not d :
214215 return ComprehensiveIncome ()
215-
216216 return ComprehensiveIncome (
217217 comprehensive_income_loss = DataPoint .from_dict (
218218 d .get ("comprehensive_income_loss" )
@@ -239,9 +239,9 @@ def from_dict(d: dict) -> "ComprehensiveIncome":
239239 )
240240
241241
242+ @dataclass
242243@modelclass
243244class IncomeStatement :
244-
245245 revenues : Optional [DataPoint ] = None
246246 benefits_costs_expenses : Optional [DataPoint ] = None
247247 cost_of_revenue : Optional [DataPoint ] = None
@@ -310,7 +310,7 @@ class IncomeStatement:
310310 common_stock_dividends : Optional [DataPoint ] = None
311311
312312 @staticmethod
313- def from_dict (d : dict ) -> "IncomeStatement" :
313+ def from_dict (d : Optional [ Dict [ str , Any ]] ) -> "IncomeStatement" :
314314 if not d :
315315 return IncomeStatement ()
316316 return IncomeStatement (
@@ -457,6 +457,7 @@ def from_dict(d: dict) -> "IncomeStatement":
457457 )
458458
459459
460+ @dataclass
460461@modelclass
461462class Financials :
462463 """
@@ -473,7 +474,7 @@ class Financials:
473474 income_statement : Optional [IncomeStatement ] = None
474475
475476 @staticmethod
476- def from_dict (d : dict ) -> "Financials" :
477+ def from_dict (d : Optional [ Dict [ str , Any ]] ) -> "Financials" :
477478 if not d :
478479 return Financials ()
479480 return Financials (
@@ -488,6 +489,7 @@ def from_dict(d: dict) -> "Financials":
488489 )
489490
490491
492+ @dataclass
491493@modelclass
492494class StockFinancial :
493495 """
@@ -508,7 +510,7 @@ class StockFinancial:
508510 start_date : Optional [str ] = None
509511
510512 @staticmethod
511- def from_dict (d : dict ) -> "StockFinancial" :
513+ def from_dict (d : Optional [ Dict [ str , Any ]] ) -> "StockFinancial" :
512514 if not d :
513515 return StockFinancial ()
514516 return StockFinancial (
0 commit comments