massive 2.4.0__tar.gz → 2.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {massive-2.4.0 → massive-2.5.0}/PKG-INFO +1 -1
- {massive-2.4.0 → massive-2.5.0}/massive/rest/economy.py +102 -0
- massive-2.5.0/massive/rest/models/economy.py +229 -0
- {massive-2.4.0 → massive-2.5.0}/pyproject.toml +1 -1
- massive-2.4.0/massive/rest/models/economy.py +0 -106
- {massive-2.4.0 → massive-2.5.0}/LICENSE +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/__init__.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/exceptions.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/logging.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/modelclass.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/__init__.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/aggs.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/base.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/benzinga.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/etf_global.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/financials.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/futures.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/indicators.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/__init__.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/aggs.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/benzinga.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/common.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/conditions.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/contracts.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/dividends.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/etf_global.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/exchanges.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/financials.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/futures.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/indicators.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/markets.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/quotes.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/request.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/snapshot.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/splits.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/summaries.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/tickers.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/tmx.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/models/trades.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/quotes.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/reference.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/snapshot.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/summaries.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/tmx.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/trades.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/rest/vX.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/websocket/__init__.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/websocket/models/__init__.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/websocket/models/common.py +0 -0
- {massive-2.4.0 → massive-2.5.0}/massive/websocket/models/models.py +0 -0
|
@@ -8,6 +8,8 @@ from .models.economy import (
|
|
|
8
8
|
TreasuryYield,
|
|
9
9
|
FedInflationExpectations,
|
|
10
10
|
FedLaborMarket,
|
|
11
|
+
EUMerchantAggregate,
|
|
12
|
+
EUMerchantHierarchy,
|
|
11
13
|
)
|
|
12
14
|
from .models.common import Sort, Order
|
|
13
15
|
from .models.request import RequestOptionBuilder
|
|
@@ -168,3 +170,103 @@ class EconomyClient(BaseClient):
|
|
|
168
170
|
raw=raw,
|
|
169
171
|
options=options,
|
|
170
172
|
)
|
|
173
|
+
|
|
174
|
+
def list_eu_merchant_aggregates(
|
|
175
|
+
self,
|
|
176
|
+
transaction_date: Optional[Union[str, date]] = None,
|
|
177
|
+
transaction_date_gt: Optional[Union[str, date]] = None,
|
|
178
|
+
transaction_date_gte: Optional[Union[str, date]] = None,
|
|
179
|
+
transaction_date_lt: Optional[Union[str, date]] = None,
|
|
180
|
+
transaction_date_lte: Optional[Union[str, date]] = None,
|
|
181
|
+
name: Optional[str] = None,
|
|
182
|
+
name_any_of: Optional[str] = None,
|
|
183
|
+
name_gt: Optional[str] = None,
|
|
184
|
+
name_gte: Optional[str] = None,
|
|
185
|
+
name_lt: Optional[str] = None,
|
|
186
|
+
name_lte: Optional[str] = None,
|
|
187
|
+
user_country: Optional[str] = None,
|
|
188
|
+
user_country_any_of: Optional[str] = None,
|
|
189
|
+
channel: Optional[str] = None,
|
|
190
|
+
channel_any_of: Optional[str] = None,
|
|
191
|
+
consumer_type: Optional[str] = None,
|
|
192
|
+
consumer_type_any_of: Optional[str] = None,
|
|
193
|
+
parent_name: Optional[str] = None,
|
|
194
|
+
parent_name_any_of: Optional[str] = None,
|
|
195
|
+
parent_name_gt: Optional[str] = None,
|
|
196
|
+
parent_name_gte: Optional[str] = None,
|
|
197
|
+
parent_name_lt: Optional[str] = None,
|
|
198
|
+
parent_name_lte: Optional[str] = None,
|
|
199
|
+
limit: Optional[int] = None,
|
|
200
|
+
sort: Optional[Union[str, Sort]] = None,
|
|
201
|
+
params: Optional[Dict[str, Any]] = None,
|
|
202
|
+
raw: bool = False,
|
|
203
|
+
options: Optional[RequestOptionBuilder] = None,
|
|
204
|
+
) -> Union[Iterator[EUMerchantAggregate], HTTPResponse]:
|
|
205
|
+
"""
|
|
206
|
+
Aggregated consumer transactions from European credit card panels (UK, DE, FR, IT, ES, AT).
|
|
207
|
+
Each row represents daily credit card, debit card, or open banking transactions
|
|
208
|
+
(7-day lag from transaction date) at a tagged merchant or payment processor.
|
|
209
|
+
|
|
210
|
+
Includes ticker (Bloomberg) and industry mapping for ~250 US public companies.
|
|
211
|
+
User counts provided across 8- and 28-day windows for normalization.
|
|
212
|
+
"""
|
|
213
|
+
url = "/consumer-spending/eu/v1/merchant-aggregates"
|
|
214
|
+
|
|
215
|
+
return self._paginate(
|
|
216
|
+
path=url,
|
|
217
|
+
params=self._get_params(self.list_eu_merchant_aggregates, locals()),
|
|
218
|
+
deserializer=EUMerchantAggregate.from_dict,
|
|
219
|
+
raw=raw,
|
|
220
|
+
result_key="results",
|
|
221
|
+
options=options,
|
|
222
|
+
)
|
|
223
|
+
|
|
224
|
+
def list_eu_merchant_hierarchy(
|
|
225
|
+
self,
|
|
226
|
+
lookup_name: Optional[str] = None,
|
|
227
|
+
lookup_name_any_of: Optional[str] = None,
|
|
228
|
+
lookup_name_gt: Optional[str] = None,
|
|
229
|
+
lookup_name_gte: Optional[str] = None,
|
|
230
|
+
lookup_name_lt: Optional[str] = None,
|
|
231
|
+
lookup_name_lte: Optional[str] = None,
|
|
232
|
+
ticker: Optional[str] = None,
|
|
233
|
+
ticker_any_of: Optional[str] = None,
|
|
234
|
+
ticker_gt: Optional[str] = None,
|
|
235
|
+
ticker_gte: Optional[str] = None,
|
|
236
|
+
ticker_lt: Optional[str] = None,
|
|
237
|
+
ticker_lte: Optional[str] = None,
|
|
238
|
+
listing_status: Optional[str] = None,
|
|
239
|
+
listing_status_any_of: Optional[str] = None,
|
|
240
|
+
active_from: Optional[Union[str, date]] = None,
|
|
241
|
+
active_from_gt: Optional[Union[str, date]] = None,
|
|
242
|
+
active_from_gte: Optional[Union[str, date]] = None,
|
|
243
|
+
active_from_lt: Optional[Union[str, date]] = None,
|
|
244
|
+
active_from_lte: Optional[Union[str, date]] = None,
|
|
245
|
+
active_to: Optional[Union[str, date]] = None,
|
|
246
|
+
active_to_gt: Optional[Union[str, date]] = None,
|
|
247
|
+
active_to_gte: Optional[Union[str, date]] = None,
|
|
248
|
+
active_to_lt: Optional[Union[str, date]] = None,
|
|
249
|
+
active_to_lte: Optional[Union[str, date]] = None,
|
|
250
|
+
limit: Optional[int] = None,
|
|
251
|
+
sort: Optional[Union[str, Sort]] = None,
|
|
252
|
+
params: Optional[Dict[str, Any]] = None,
|
|
253
|
+
raw: bool = False,
|
|
254
|
+
options: Optional[RequestOptionBuilder] = None,
|
|
255
|
+
) -> Union[Iterator[EUMerchantHierarchy], HTTPResponse]:
|
|
256
|
+
"""
|
|
257
|
+
Reference data mapping merchants to parent companies, tickers, sectors,
|
|
258
|
+
and industries across Fable's European consumer transaction panel.
|
|
259
|
+
|
|
260
|
+
Use lookup_name + active_from/active_to to join with merchant-aggregates
|
|
261
|
+
for point-in-time queries.
|
|
262
|
+
"""
|
|
263
|
+
url = "/consumer-spending/eu/v1/merchant-hierarchy"
|
|
264
|
+
|
|
265
|
+
return self._paginate(
|
|
266
|
+
path=url,
|
|
267
|
+
params=self._get_params(self.list_eu_merchant_hierarchy, locals()),
|
|
268
|
+
deserializer=EUMerchantHierarchy.from_dict,
|
|
269
|
+
raw=raw,
|
|
270
|
+
result_key="results",
|
|
271
|
+
options=options,
|
|
272
|
+
)
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
from ...modelclass import modelclass
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
@modelclass
|
|
6
|
+
class TreasuryYield:
|
|
7
|
+
"""
|
|
8
|
+
Treasury yield data for a specific date.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
date: Optional[str] = None
|
|
12
|
+
yield_1_month: Optional[float] = None
|
|
13
|
+
yield_3_month: Optional[float] = None
|
|
14
|
+
yield_6_month: Optional[float] = None
|
|
15
|
+
yield_1_year: Optional[float] = None
|
|
16
|
+
yield_2_year: Optional[float] = None
|
|
17
|
+
yield_3_year: Optional[float] = None
|
|
18
|
+
yield_5_year: Optional[float] = None
|
|
19
|
+
yield_7_year: Optional[float] = None
|
|
20
|
+
yield_10_year: Optional[float] = None
|
|
21
|
+
yield_20_year: Optional[float] = None
|
|
22
|
+
yield_30_year: Optional[float] = None
|
|
23
|
+
|
|
24
|
+
@staticmethod
|
|
25
|
+
def from_dict(d):
|
|
26
|
+
return TreasuryYield(
|
|
27
|
+
date=d.get("date"),
|
|
28
|
+
yield_1_month=d.get("yield_1_month"),
|
|
29
|
+
yield_3_month=d.get("yield_3_month"),
|
|
30
|
+
yield_6_month=d.get("yield_6_month"),
|
|
31
|
+
yield_1_year=d.get("yield_1_year"),
|
|
32
|
+
yield_2_year=d.get("yield_2_year"),
|
|
33
|
+
yield_3_year=d.get("yield_3_year"),
|
|
34
|
+
yield_5_year=d.get("yield_5_year"),
|
|
35
|
+
yield_7_year=d.get("yield_7_year"),
|
|
36
|
+
yield_10_year=d.get("yield_10_year"),
|
|
37
|
+
yield_20_year=d.get("yield_20_year"),
|
|
38
|
+
yield_30_year=d.get("yield_30_year"),
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
@modelclass
|
|
43
|
+
class FedInflation:
|
|
44
|
+
cpi: Optional[float] = None
|
|
45
|
+
cpi_core: Optional[float] = None
|
|
46
|
+
cpi_year_over_year: Optional[float] = None
|
|
47
|
+
date: Optional[str] = None
|
|
48
|
+
pce: Optional[float] = None
|
|
49
|
+
pce_core: Optional[float] = None
|
|
50
|
+
pce_spending: Optional[float] = None
|
|
51
|
+
|
|
52
|
+
@staticmethod
|
|
53
|
+
def from_dict(d):
|
|
54
|
+
return FedInflation(
|
|
55
|
+
cpi=d.get("cpi"),
|
|
56
|
+
cpi_core=d.get("cpi_core"),
|
|
57
|
+
cpi_year_over_year=d.get("cpi_year_over_year"),
|
|
58
|
+
date=d.get("date"),
|
|
59
|
+
pce=d.get("pce"),
|
|
60
|
+
pce_core=d.get("pce_core"),
|
|
61
|
+
pce_spending=d.get("pce_spending"),
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
@modelclass
|
|
66
|
+
class FedInflationExpectations:
|
|
67
|
+
date: Optional[str] = None
|
|
68
|
+
forward_years_5_to_10: Optional[float] = None
|
|
69
|
+
market_10_year: Optional[float] = None
|
|
70
|
+
market_5_year: Optional[float] = None
|
|
71
|
+
model_10_year: Optional[float] = None
|
|
72
|
+
model_1_year: Optional[float] = None
|
|
73
|
+
model_30_year: Optional[float] = None
|
|
74
|
+
model_5_year: Optional[float] = None
|
|
75
|
+
|
|
76
|
+
@staticmethod
|
|
77
|
+
def from_dict(d):
|
|
78
|
+
return FedInflationExpectations(
|
|
79
|
+
date=d.get("date"),
|
|
80
|
+
forward_years_5_to_10=d.get("forward_years_5_to_10"),
|
|
81
|
+
market_10_year=d.get("market_10_year"),
|
|
82
|
+
market_5_year=d.get("market_5_year"),
|
|
83
|
+
model_10_year=d.get("model_10_year"),
|
|
84
|
+
model_1_year=d.get("model_1_year"),
|
|
85
|
+
model_30_year=d.get("model_30_year"),
|
|
86
|
+
model_5_year=d.get("model_5_year"),
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
@modelclass
|
|
91
|
+
class FedLaborMarket:
|
|
92
|
+
avg_hourly_earnings: Optional[float] = None
|
|
93
|
+
date: Optional[str] = None
|
|
94
|
+
job_openings: Optional[float] = None
|
|
95
|
+
labor_force_participation_rate: Optional[float] = None
|
|
96
|
+
unemployment_rate: Optional[float] = None
|
|
97
|
+
|
|
98
|
+
@staticmethod
|
|
99
|
+
def from_dict(d):
|
|
100
|
+
return FedLaborMarket(
|
|
101
|
+
avg_hourly_earnings=d.get("avg_hourly_earnings"),
|
|
102
|
+
date=d.get("date"),
|
|
103
|
+
job_openings=d.get("job_openings"),
|
|
104
|
+
labor_force_participation_rate=d.get("labor_force_participation_rate"),
|
|
105
|
+
unemployment_rate=d.get("unemployment_rate"),
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
@modelclass
|
|
110
|
+
class EUMerchantAggregate:
|
|
111
|
+
"""
|
|
112
|
+
Aggregated consumer transactions from European credit card panels.
|
|
113
|
+
Each row represents daily credit card, debit card, or open banking transactions
|
|
114
|
+
(7-day lag) at a tagged merchant or payment processor.
|
|
115
|
+
"""
|
|
116
|
+
|
|
117
|
+
channel: Optional[str] = None
|
|
118
|
+
consumer_type: Optional[str] = None
|
|
119
|
+
eight_day_rolling_category_accounts: Optional[int] = None
|
|
120
|
+
eight_day_rolling_total_accounts: Optional[int] = None
|
|
121
|
+
mcc_group: Optional[str] = None
|
|
122
|
+
merchant_industry: Optional[str] = None
|
|
123
|
+
merchant_ticker: Optional[str] = None
|
|
124
|
+
name: Optional[str] = None
|
|
125
|
+
parent_name: Optional[str] = None
|
|
126
|
+
published_date: Optional[str] = None
|
|
127
|
+
spend_in_distinct_account_key_count: Optional[int] = None
|
|
128
|
+
spend_in_spend: Optional[float] = None
|
|
129
|
+
spend_in_transaction_count: Optional[int] = None
|
|
130
|
+
spend_out_distinct_account_key_count: Optional[int] = None
|
|
131
|
+
spend_out_spend: Optional[float] = None
|
|
132
|
+
spend_out_transaction_count: Optional[int] = None
|
|
133
|
+
total_accounts: Optional[int] = None
|
|
134
|
+
total_spend: Optional[float] = None
|
|
135
|
+
total_transactions: Optional[int] = None
|
|
136
|
+
transaction_currency: Optional[str] = None
|
|
137
|
+
transaction_date: Optional[str] = None
|
|
138
|
+
twenty_eight_day_rolling_category_accounts: Optional[int] = None
|
|
139
|
+
twenty_eight_day_rolling_total_accounts: Optional[int] = None
|
|
140
|
+
type: Optional[str] = None
|
|
141
|
+
user_country: Optional[str] = None
|
|
142
|
+
|
|
143
|
+
@staticmethod
|
|
144
|
+
def from_dict(d):
|
|
145
|
+
return EUMerchantAggregate(
|
|
146
|
+
channel=d.get("channel"),
|
|
147
|
+
consumer_type=d.get("consumer_type"),
|
|
148
|
+
eight_day_rolling_category_accounts=d.get(
|
|
149
|
+
"eight_day_rolling_category_accounts"
|
|
150
|
+
),
|
|
151
|
+
eight_day_rolling_total_accounts=d.get("eight_day_rolling_total_accounts"),
|
|
152
|
+
mcc_group=d.get("mcc_group"),
|
|
153
|
+
merchant_industry=d.get("merchant_industry"),
|
|
154
|
+
merchant_ticker=d.get("merchant_ticker"),
|
|
155
|
+
name=d.get("name"),
|
|
156
|
+
parent_name=d.get("parent_name"),
|
|
157
|
+
published_date=d.get("published_date"),
|
|
158
|
+
spend_in_distinct_account_key_count=d.get(
|
|
159
|
+
"spend_in_distinct_account_key_count"
|
|
160
|
+
),
|
|
161
|
+
spend_in_spend=d.get("spend_in_spend"),
|
|
162
|
+
spend_in_transaction_count=d.get("spend_in_transaction_count"),
|
|
163
|
+
spend_out_distinct_account_key_count=d.get(
|
|
164
|
+
"spend_out_distinct_account_key_count"
|
|
165
|
+
),
|
|
166
|
+
spend_out_spend=d.get("spend_out_spend"),
|
|
167
|
+
spend_out_transaction_count=d.get("spend_out_transaction_count"),
|
|
168
|
+
total_accounts=d.get("total_accounts"),
|
|
169
|
+
total_spend=d.get("total_spend"),
|
|
170
|
+
total_transactions=d.get("total_transactions"),
|
|
171
|
+
transaction_currency=d.get("transaction_currency"),
|
|
172
|
+
transaction_date=d.get("transaction_date"),
|
|
173
|
+
twenty_eight_day_rolling_category_accounts=d.get(
|
|
174
|
+
"twenty_eight_day_rolling_category_accounts"
|
|
175
|
+
),
|
|
176
|
+
twenty_eight_day_rolling_total_accounts=d.get(
|
|
177
|
+
"twenty_eight_day_rolling_total_accounts"
|
|
178
|
+
),
|
|
179
|
+
type=d.get("type"),
|
|
180
|
+
user_country=d.get("user_country"),
|
|
181
|
+
)
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
@modelclass
|
|
185
|
+
class EUMerchantHierarchy:
|
|
186
|
+
"""
|
|
187
|
+
Reference data mapping merchants to parent companies, tickers, sectors,
|
|
188
|
+
and industries across Fable's European consumer transaction panel.
|
|
189
|
+
"""
|
|
190
|
+
|
|
191
|
+
active_from: Optional[str] = None
|
|
192
|
+
active_to: Optional[str] = None
|
|
193
|
+
category: Optional[str] = None
|
|
194
|
+
grandparent_name: Optional[str] = None
|
|
195
|
+
grandparent_ticker: Optional[str] = None
|
|
196
|
+
great_grandparent_name: Optional[str] = None
|
|
197
|
+
great_grandparent_ticker: Optional[str] = None
|
|
198
|
+
industry: Optional[str] = None
|
|
199
|
+
industry_group: Optional[str] = None
|
|
200
|
+
listing_status: Optional[str] = None
|
|
201
|
+
lookup_name: Optional[str] = None
|
|
202
|
+
normalized_name: Optional[str] = None
|
|
203
|
+
parent_name: Optional[str] = None
|
|
204
|
+
parent_ticker: Optional[str] = None
|
|
205
|
+
sector: Optional[str] = None
|
|
206
|
+
sub_industry: Optional[str] = None
|
|
207
|
+
ticker: Optional[str] = None
|
|
208
|
+
|
|
209
|
+
@staticmethod
|
|
210
|
+
def from_dict(d):
|
|
211
|
+
return EUMerchantHierarchy(
|
|
212
|
+
active_from=d.get("active_from"),
|
|
213
|
+
active_to=d.get("active_to"),
|
|
214
|
+
category=d.get("category"),
|
|
215
|
+
grandparent_name=d.get("grandparent_name"),
|
|
216
|
+
grandparent_ticker=d.get("grandparent_ticker"),
|
|
217
|
+
great_grandparent_name=d.get("great_grandparent_name"),
|
|
218
|
+
great_grandparent_ticker=d.get("great_grandparent_ticker"),
|
|
219
|
+
industry=d.get("industry"),
|
|
220
|
+
industry_group=d.get("industry_group"),
|
|
221
|
+
listing_status=d.get("listing_status"),
|
|
222
|
+
lookup_name=d.get("lookup_name"),
|
|
223
|
+
normalized_name=d.get("normalized_name"),
|
|
224
|
+
parent_name=d.get("parent_name"),
|
|
225
|
+
parent_ticker=d.get("parent_ticker"),
|
|
226
|
+
sector=d.get("sector"),
|
|
227
|
+
sub_industry=d.get("sub_industry"),
|
|
228
|
+
ticker=d.get("ticker"),
|
|
229
|
+
)
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
from typing import Optional
|
|
2
|
-
from ...modelclass import modelclass
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
@modelclass
|
|
6
|
-
class TreasuryYield:
|
|
7
|
-
"""
|
|
8
|
-
Treasury yield data for a specific date.
|
|
9
|
-
"""
|
|
10
|
-
|
|
11
|
-
date: Optional[str] = None
|
|
12
|
-
yield_1_month: Optional[float] = None
|
|
13
|
-
yield_3_month: Optional[float] = None
|
|
14
|
-
yield_6_month: Optional[float] = None
|
|
15
|
-
yield_1_year: Optional[float] = None
|
|
16
|
-
yield_2_year: Optional[float] = None
|
|
17
|
-
yield_3_year: Optional[float] = None
|
|
18
|
-
yield_5_year: Optional[float] = None
|
|
19
|
-
yield_7_year: Optional[float] = None
|
|
20
|
-
yield_10_year: Optional[float] = None
|
|
21
|
-
yield_20_year: Optional[float] = None
|
|
22
|
-
yield_30_year: Optional[float] = None
|
|
23
|
-
|
|
24
|
-
@staticmethod
|
|
25
|
-
def from_dict(d):
|
|
26
|
-
return TreasuryYield(
|
|
27
|
-
date=d.get("date"),
|
|
28
|
-
yield_1_month=d.get("yield_1_month"),
|
|
29
|
-
yield_3_month=d.get("yield_3_month"),
|
|
30
|
-
yield_6_month=d.get("yield_6_month"),
|
|
31
|
-
yield_1_year=d.get("yield_1_year"),
|
|
32
|
-
yield_2_year=d.get("yield_2_year"),
|
|
33
|
-
yield_3_year=d.get("yield_3_year"),
|
|
34
|
-
yield_5_year=d.get("yield_5_year"),
|
|
35
|
-
yield_7_year=d.get("yield_7_year"),
|
|
36
|
-
yield_10_year=d.get("yield_10_year"),
|
|
37
|
-
yield_20_year=d.get("yield_20_year"),
|
|
38
|
-
yield_30_year=d.get("yield_30_year"),
|
|
39
|
-
)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
@modelclass
|
|
43
|
-
class FedInflation:
|
|
44
|
-
cpi: Optional[float] = None
|
|
45
|
-
cpi_core: Optional[float] = None
|
|
46
|
-
cpi_year_over_year: Optional[float] = None
|
|
47
|
-
date: Optional[str] = None
|
|
48
|
-
pce: Optional[float] = None
|
|
49
|
-
pce_core: Optional[float] = None
|
|
50
|
-
pce_spending: Optional[float] = None
|
|
51
|
-
|
|
52
|
-
@staticmethod
|
|
53
|
-
def from_dict(d):
|
|
54
|
-
return FedInflation(
|
|
55
|
-
cpi=d.get("cpi"),
|
|
56
|
-
cpi_core=d.get("cpi_core"),
|
|
57
|
-
cpi_year_over_year=d.get("cpi_year_over_year"),
|
|
58
|
-
date=d.get("date"),
|
|
59
|
-
pce=d.get("pce"),
|
|
60
|
-
pce_core=d.get("pce_core"),
|
|
61
|
-
pce_spending=d.get("pce_spending"),
|
|
62
|
-
)
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
@modelclass
|
|
66
|
-
class FedInflationExpectations:
|
|
67
|
-
date: Optional[str] = None
|
|
68
|
-
forward_years_5_to_10: Optional[float] = None
|
|
69
|
-
market_10_year: Optional[float] = None
|
|
70
|
-
market_5_year: Optional[float] = None
|
|
71
|
-
model_10_year: Optional[float] = None
|
|
72
|
-
model_1_year: Optional[float] = None
|
|
73
|
-
model_30_year: Optional[float] = None
|
|
74
|
-
model_5_year: Optional[float] = None
|
|
75
|
-
|
|
76
|
-
@staticmethod
|
|
77
|
-
def from_dict(d):
|
|
78
|
-
return FedInflationExpectations(
|
|
79
|
-
date=d.get("date"),
|
|
80
|
-
forward_years_5_to_10=d.get("forward_years_5_to_10"),
|
|
81
|
-
market_10_year=d.get("market_10_year"),
|
|
82
|
-
market_5_year=d.get("market_5_year"),
|
|
83
|
-
model_10_year=d.get("model_10_year"),
|
|
84
|
-
model_1_year=d.get("model_1_year"),
|
|
85
|
-
model_30_year=d.get("model_30_year"),
|
|
86
|
-
model_5_year=d.get("model_5_year"),
|
|
87
|
-
)
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
@modelclass
|
|
91
|
-
class FedLaborMarket:
|
|
92
|
-
avg_hourly_earnings: Optional[float] = None
|
|
93
|
-
date: Optional[str] = None
|
|
94
|
-
job_openings: Optional[float] = None
|
|
95
|
-
labor_force_participation_rate: Optional[float] = None
|
|
96
|
-
unemployment_rate: Optional[float] = None
|
|
97
|
-
|
|
98
|
-
@staticmethod
|
|
99
|
-
def from_dict(d):
|
|
100
|
-
return FedLaborMarket(
|
|
101
|
-
avg_hourly_earnings=d.get("avg_hourly_earnings"),
|
|
102
|
-
date=d.get("date"),
|
|
103
|
-
job_openings=d.get("job_openings"),
|
|
104
|
-
labor_force_participation_rate=d.get("labor_force_participation_rate"),
|
|
105
|
-
unemployment_rate=d.get("unemployment_rate"),
|
|
106
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|