1
- from typing import Optional , Dict , List
1
+ from dataclasses import dataclass
2
+ from typing import Any , Dict , List , Optional
2
3
from ...modelclass import modelclass
3
4
4
5
5
6
@modelclass
7
+ @dataclass
6
8
class DataPoint :
7
9
"""Represents a single numeric or textual data point in the financials."""
8
10
@@ -16,7 +18,7 @@ class DataPoint:
16
18
xpath : Optional [str ] = None
17
19
18
20
@staticmethod
19
- def from_dict (d : dict ) -> "DataPoint" :
21
+ def from_dict (d : Optional [ Dict [ str , Any ]] ) -> "DataPoint" :
20
22
if not d :
21
23
return DataPoint ()
22
24
return DataPoint (
@@ -31,6 +33,7 @@ def from_dict(d: dict) -> "DataPoint":
31
33
)
32
34
33
35
36
+ @dataclass
34
37
@modelclass
35
38
class BalanceSheet :
36
39
assets : Optional [DataPoint ] = None
@@ -68,10 +71,9 @@ class BalanceSheet:
68
71
liabilities_and_equity : Optional [DataPoint ] = None
69
72
70
73
@staticmethod
71
- def from_dict (d : dict ) -> "BalanceSheet" :
74
+ def from_dict (d : Optional [ Dict [ str , Any ]] ) -> "BalanceSheet" :
72
75
if not d :
73
76
return BalanceSheet ()
74
-
75
77
return BalanceSheet (
76
78
assets = DataPoint .from_dict (d .get ("assets" )),
77
79
current_assets = DataPoint .from_dict (d .get ("current_assets" )),
@@ -133,9 +135,9 @@ def from_dict(d: dict) -> "BalanceSheet":
133
135
)
134
136
135
137
138
+ @dataclass
136
139
@modelclass
137
140
class CashFlowStatement :
138
-
139
141
net_cash_flow_from_operating_activities : Optional [DataPoint ] = None
140
142
net_cash_flow_from_operating_activities_continuing : Optional [DataPoint ] = None
141
143
net_cash_flow_from_operating_activities_discontinued : Optional [DataPoint ] = None
@@ -151,10 +153,9 @@ class CashFlowStatement:
151
153
net_cash_flow_discontinued : Optional [DataPoint ] = None
152
154
153
155
@staticmethod
154
- def from_dict (d : dict ) -> "CashFlowStatement" :
156
+ def from_dict (d : Optional [ Dict [ str , Any ]] ) -> "CashFlowStatement" :
155
157
if not d :
156
158
return CashFlowStatement ()
157
-
158
159
return CashFlowStatement (
159
160
net_cash_flow_from_operating_activities = DataPoint .from_dict (
160
161
d .get ("net_cash_flow_from_operating_activities" )
@@ -194,9 +195,9 @@ def from_dict(d: dict) -> "CashFlowStatement":
194
195
)
195
196
196
197
198
+ @dataclass
197
199
@modelclass
198
200
class ComprehensiveIncome :
199
-
200
201
comprehensive_income_loss : Optional [DataPoint ] = None
201
202
comprehensive_income_loss_attributable_to_noncontrolling_interest : Optional [
202
203
DataPoint
@@ -209,10 +210,9 @@ class ComprehensiveIncome:
209
210
other_comprehensive_income_loss_attributable_to_parent : Optional [DataPoint ] = None
210
211
211
212
@staticmethod
212
- def from_dict (d : dict ) -> "ComprehensiveIncome" :
213
+ def from_dict (d : Optional [ Dict [ str , Any ]] ) -> "ComprehensiveIncome" :
213
214
if not d :
214
215
return ComprehensiveIncome ()
215
-
216
216
return ComprehensiveIncome (
217
217
comprehensive_income_loss = DataPoint .from_dict (
218
218
d .get ("comprehensive_income_loss" )
@@ -239,9 +239,9 @@ def from_dict(d: dict) -> "ComprehensiveIncome":
239
239
)
240
240
241
241
242
+ @dataclass
242
243
@modelclass
243
244
class IncomeStatement :
244
-
245
245
revenues : Optional [DataPoint ] = None
246
246
benefits_costs_expenses : Optional [DataPoint ] = None
247
247
cost_of_revenue : Optional [DataPoint ] = None
@@ -310,7 +310,7 @@ class IncomeStatement:
310
310
common_stock_dividends : Optional [DataPoint ] = None
311
311
312
312
@staticmethod
313
- def from_dict (d : dict ) -> "IncomeStatement" :
313
+ def from_dict (d : Optional [ Dict [ str , Any ]] ) -> "IncomeStatement" :
314
314
if not d :
315
315
return IncomeStatement ()
316
316
return IncomeStatement (
@@ -457,6 +457,7 @@ def from_dict(d: dict) -> "IncomeStatement":
457
457
)
458
458
459
459
460
+ @dataclass
460
461
@modelclass
461
462
class Financials :
462
463
"""
@@ -473,7 +474,7 @@ class Financials:
473
474
income_statement : Optional [IncomeStatement ] = None
474
475
475
476
@staticmethod
476
- def from_dict (d : dict ) -> "Financials" :
477
+ def from_dict (d : Optional [ Dict [ str , Any ]] ) -> "Financials" :
477
478
if not d :
478
479
return Financials ()
479
480
return Financials (
@@ -488,6 +489,7 @@ def from_dict(d: dict) -> "Financials":
488
489
)
489
490
490
491
492
+ @dataclass
491
493
@modelclass
492
494
class StockFinancial :
493
495
"""
@@ -508,7 +510,7 @@ class StockFinancial:
508
510
start_date : Optional [str ] = None
509
511
510
512
@staticmethod
511
- def from_dict (d : dict ) -> "StockFinancial" :
513
+ def from_dict (d : Optional [ Dict [ str , Any ]] ) -> "StockFinancial" :
512
514
if not d :
513
515
return StockFinancial ()
514
516
return StockFinancial (
0 commit comments