spells-mtg 0.3.1__py3-none-any.whl → 0.5.0__py3-none-any.whl
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.
Potentially problematic release.
This version of spells-mtg might be problematic. Click here for more details.
- spells/__init__.py +2 -2
- spells/columns.py +173 -254
- spells/draft_data.py +126 -79
- spells/enums.py +1 -1
- spells/manifest.py +51 -33
- {spells_mtg-0.3.1.dist-info → spells_mtg-0.5.0.dist-info}/METADATA +77 -49
- spells_mtg-0.5.0.dist-info/RECORD +15 -0
- spells_mtg-0.3.1.dist-info/RECORD +0 -15
- {spells_mtg-0.3.1.dist-info → spells_mtg-0.5.0.dist-info}/WHEEL +0 -0
- {spells_mtg-0.3.1.dist-info → spells_mtg-0.5.0.dist-info}/entry_points.txt +0 -0
- {spells_mtg-0.3.1.dist-info → spells_mtg-0.5.0.dist-info}/licenses/LICENSE +0 -0
spells/columns.py
CHANGED
|
@@ -7,25 +7,21 @@ from spells.enums import View, ColName, ColType
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
@dataclass(frozen=True)
|
|
10
|
-
class
|
|
10
|
+
class ColSpec:
|
|
11
11
|
name: str
|
|
12
12
|
col_type: ColType
|
|
13
|
-
expr: pl.Expr | None = None
|
|
14
|
-
exprMap: Callable[[str], pl.Expr] | None = None
|
|
13
|
+
expr: pl.Expr | Callable[..., pl.Expr] | None = None
|
|
15
14
|
views: list[View] | None = None
|
|
16
|
-
|
|
17
|
-
version: str | None = (
|
|
18
|
-
None # only needed for user-defined functions with python functions in expr
|
|
19
|
-
)
|
|
15
|
+
version: str | None = None
|
|
20
16
|
|
|
21
17
|
|
|
22
18
|
@dataclass(frozen=True)
|
|
23
|
-
class
|
|
19
|
+
class ColDef:
|
|
24
20
|
name: str
|
|
25
21
|
col_type: ColType
|
|
26
22
|
expr: pl.Expr | tuple[pl.Expr, ...]
|
|
27
23
|
views: set[View]
|
|
28
|
-
dependencies:
|
|
24
|
+
dependencies: set[str]
|
|
29
25
|
signature: str
|
|
30
26
|
|
|
31
27
|
|
|
@@ -46,718 +42,641 @@ default_columns = [
|
|
|
46
42
|
]
|
|
47
43
|
|
|
48
44
|
_column_specs = [
|
|
49
|
-
|
|
45
|
+
ColSpec(
|
|
50
46
|
name=ColName.NAME,
|
|
51
47
|
col_type=ColType.GROUP_BY,
|
|
52
|
-
|
|
48
|
+
views=[View.CARD],
|
|
53
49
|
),
|
|
54
|
-
|
|
50
|
+
ColSpec(
|
|
55
51
|
name=ColName.EXPANSION,
|
|
56
52
|
col_type=ColType.GROUP_BY,
|
|
57
53
|
views=[View.GAME, View.DRAFT],
|
|
58
54
|
),
|
|
59
|
-
|
|
55
|
+
ColSpec(
|
|
60
56
|
name=ColName.EVENT_TYPE,
|
|
61
57
|
col_type=ColType.GROUP_BY,
|
|
62
58
|
views=[View.GAME, View.DRAFT],
|
|
63
59
|
),
|
|
64
|
-
|
|
60
|
+
ColSpec(
|
|
65
61
|
name=ColName.DRAFT_ID,
|
|
66
62
|
views=[View.GAME, View.DRAFT],
|
|
67
63
|
col_type=ColType.FILTER_ONLY,
|
|
68
64
|
),
|
|
69
|
-
|
|
65
|
+
ColSpec(
|
|
70
66
|
name=ColName.DRAFT_TIME,
|
|
71
67
|
col_type=ColType.FILTER_ONLY,
|
|
72
68
|
views=[View.GAME, View.DRAFT],
|
|
73
69
|
),
|
|
74
|
-
|
|
70
|
+
ColSpec(
|
|
75
71
|
name=ColName.DRAFT_DATE,
|
|
76
72
|
col_type=ColType.GROUP_BY,
|
|
77
|
-
expr=pl.col(
|
|
78
|
-
dependencies=[ColName.DRAFT_TIME],
|
|
73
|
+
expr=pl.col(ColName.DRAFT_TIME).str.to_datetime("%Y-%m-%d %H:%M:%S").dt.date(),
|
|
79
74
|
),
|
|
80
|
-
|
|
75
|
+
ColSpec(
|
|
81
76
|
name=ColName.DRAFT_DAY_OF_WEEK,
|
|
82
77
|
col_type=ColType.GROUP_BY,
|
|
83
|
-
expr=pl.col(
|
|
84
|
-
dependencies=[ColName.DRAFT_TIME],
|
|
78
|
+
expr=pl.col(ColName.DRAFT_TIME).str.to_datetime("%Y-%m-%d %H:%M:%S").dt.weekday(),
|
|
85
79
|
),
|
|
86
|
-
|
|
80
|
+
ColSpec(
|
|
87
81
|
name=ColName.DRAFT_HOUR,
|
|
88
82
|
col_type=ColType.GROUP_BY,
|
|
89
|
-
expr=pl.col(
|
|
90
|
-
dependencies=[ColName.DRAFT_TIME],
|
|
83
|
+
expr=pl.col(ColName.DRAFT_TIME).str.to_datetime("%Y-%m-%d %H:%M:%S").dt.hour(),
|
|
91
84
|
),
|
|
92
|
-
|
|
85
|
+
ColSpec(
|
|
93
86
|
name=ColName.DRAFT_WEEK,
|
|
94
87
|
col_type=ColType.GROUP_BY,
|
|
95
|
-
expr=pl.col(
|
|
96
|
-
dependencies=[ColName.DRAFT_TIME],
|
|
88
|
+
expr=pl.col(ColName.DRAFT_TIME).str.to_datetime("%Y-%m-%d %H:%M:%S").dt.week(),
|
|
97
89
|
),
|
|
98
|
-
|
|
90
|
+
ColSpec(
|
|
99
91
|
name=ColName.RANK,
|
|
100
92
|
col_type=ColType.GROUP_BY,
|
|
101
93
|
views=[View.GAME, View.DRAFT],
|
|
102
94
|
),
|
|
103
|
-
|
|
95
|
+
ColSpec(
|
|
104
96
|
name=ColName.USER_N_GAMES_BUCKET,
|
|
105
97
|
col_type=ColType.GROUP_BY,
|
|
106
98
|
views=[View.DRAFT, View.GAME],
|
|
107
99
|
),
|
|
108
|
-
|
|
100
|
+
ColSpec(
|
|
109
101
|
name=ColName.USER_GAME_WIN_RATE_BUCKET,
|
|
110
102
|
col_type=ColType.GROUP_BY,
|
|
111
103
|
views=[View.DRAFT, View.GAME],
|
|
112
104
|
),
|
|
113
|
-
|
|
105
|
+
ColSpec(
|
|
114
106
|
name=ColName.PLAYER_COHORT,
|
|
115
107
|
col_type=ColType.GROUP_BY,
|
|
116
|
-
expr=pl.when(pl.col(
|
|
108
|
+
expr=pl.when(pl.col(ColName.USER_N_GAMES_BUCKET) < 100)
|
|
117
109
|
.then(pl.lit("Other"))
|
|
118
110
|
.otherwise(
|
|
119
|
-
pl.when(pl.col(
|
|
111
|
+
pl.when(pl.col(ColName.USER_GAME_WIN_RATE_BUCKET) > 0.57)
|
|
120
112
|
.then(pl.lit("Top"))
|
|
121
113
|
.otherwise(
|
|
122
|
-
pl.when(pl.col(
|
|
114
|
+
pl.when(pl.col(ColName.USER_GAME_WIN_RATE_BUCKET) < 0.49)
|
|
123
115
|
.then(pl.lit("Bottom"))
|
|
124
116
|
.otherwise(pl.lit("Middle"))
|
|
125
117
|
)
|
|
126
118
|
),
|
|
127
|
-
dependencies=[ColName.USER_N_GAMES_BUCKET, ColName.USER_GAME_WIN_RATE_BUCKET],
|
|
128
119
|
),
|
|
129
|
-
|
|
120
|
+
ColSpec(
|
|
130
121
|
name=ColName.EVENT_MATCH_WINS,
|
|
131
122
|
col_type=ColType.GROUP_BY,
|
|
132
123
|
views=[View.DRAFT],
|
|
133
124
|
),
|
|
134
|
-
|
|
125
|
+
ColSpec(
|
|
135
126
|
name=ColName.EVENT_MATCH_WINS_SUM,
|
|
136
127
|
col_type=ColType.PICK_SUM,
|
|
137
128
|
views=[View.DRAFT],
|
|
138
129
|
expr=pl.col(ColName.EVENT_MATCH_WINS),
|
|
139
|
-
dependencies=[ColName.EVENT_MATCH_WINS],
|
|
140
130
|
),
|
|
141
|
-
|
|
131
|
+
ColSpec(
|
|
142
132
|
name=ColName.EVENT_MATCH_LOSSES,
|
|
143
133
|
col_type=ColType.GROUP_BY,
|
|
144
134
|
views=[View.DRAFT],
|
|
145
135
|
),
|
|
146
|
-
|
|
136
|
+
ColSpec(
|
|
147
137
|
name=ColName.EVENT_MATCH_LOSSES_SUM,
|
|
148
138
|
col_type=ColType.PICK_SUM,
|
|
149
139
|
expr=pl.col(ColName.EVENT_MATCH_LOSSES),
|
|
150
|
-
dependencies=[ColName.EVENT_MATCH_LOSSES],
|
|
151
140
|
),
|
|
152
|
-
|
|
141
|
+
ColSpec(
|
|
153
142
|
name=ColName.EVENT_MATCHES,
|
|
154
143
|
col_type=ColType.GROUP_BY,
|
|
155
|
-
expr=pl.col(
|
|
156
|
-
dependencies=[ColName.EVENT_MATCH_WINS, ColName.EVENT_MATCH_LOSSES],
|
|
144
|
+
expr=pl.col(ColName.EVENT_MATCH_WINS) + pl.col(ColName.EVENT_MATCH_LOSSES),
|
|
157
145
|
),
|
|
158
|
-
|
|
146
|
+
ColSpec(
|
|
159
147
|
name=ColName.EVENT_MATCHES_SUM,
|
|
160
148
|
col_type=ColType.PICK_SUM,
|
|
161
149
|
expr=pl.col(ColName.EVENT_MATCHES),
|
|
162
|
-
dependencies=[ColName.EVENT_MATCHES],
|
|
163
150
|
),
|
|
164
|
-
|
|
151
|
+
ColSpec(
|
|
165
152
|
name=ColName.IS_TROPHY,
|
|
166
153
|
col_type=ColType.GROUP_BY,
|
|
167
|
-
expr=pl.when(pl.col(
|
|
168
|
-
.then(pl.col(
|
|
169
|
-
.otherwise(pl.col(
|
|
170
|
-
dependencies=[ColName.EVENT_TYPE, ColName.EVENT_MATCH_WINS],
|
|
154
|
+
expr=pl.when(pl.col(ColName.EVENT_TYPE) == "Traditional")
|
|
155
|
+
.then(pl.col(ColName.EVENT_MATCH_WINS) == 3)
|
|
156
|
+
.otherwise(pl.col(ColName.EVENT_MATCH_WINS) == 7),
|
|
171
157
|
),
|
|
172
|
-
|
|
158
|
+
ColSpec(
|
|
173
159
|
name=ColName.IS_TROPHY_SUM,
|
|
174
160
|
col_type=ColType.PICK_SUM,
|
|
175
161
|
expr=pl.col(ColName.IS_TROPHY),
|
|
176
|
-
dependencies=[ColName.IS_TROPHY],
|
|
177
162
|
),
|
|
178
|
-
|
|
163
|
+
ColSpec(
|
|
179
164
|
name=ColName.PACK_NUMBER,
|
|
180
165
|
col_type=ColType.FILTER_ONLY, # use pack_num
|
|
181
166
|
views=[View.DRAFT],
|
|
182
167
|
),
|
|
183
|
-
|
|
168
|
+
ColSpec(
|
|
184
169
|
name=ColName.PACK_NUM,
|
|
185
170
|
col_type=ColType.GROUP_BY,
|
|
186
|
-
expr=pl.col(
|
|
187
|
-
dependencies=[ColName.PACK_NUMBER],
|
|
171
|
+
expr=pl.col(ColName.PACK_NUMBER) + 1,
|
|
188
172
|
),
|
|
189
|
-
|
|
173
|
+
ColSpec(
|
|
190
174
|
name=ColName.PICK_NUMBER,
|
|
191
175
|
col_type=ColType.FILTER_ONLY, # use pick_num
|
|
192
176
|
views=[View.DRAFT],
|
|
193
177
|
),
|
|
194
|
-
|
|
178
|
+
ColSpec(
|
|
195
179
|
name=ColName.PICK_NUM,
|
|
196
180
|
col_type=ColType.GROUP_BY,
|
|
197
|
-
expr=pl.col(
|
|
198
|
-
dependencies=[ColName.PICK_NUMBER],
|
|
181
|
+
expr=pl.col(ColName.PICK_NUMBER) + 1,
|
|
199
182
|
),
|
|
200
|
-
|
|
183
|
+
ColSpec(
|
|
201
184
|
name=ColName.TAKEN_AT,
|
|
202
185
|
col_type=ColType.PICK_SUM,
|
|
203
186
|
expr=pl.col(ColName.PICK_NUM),
|
|
204
|
-
dependencies=[ColName.PICK_NUM],
|
|
205
187
|
),
|
|
206
|
-
|
|
188
|
+
ColSpec(
|
|
207
189
|
name=ColName.NUM_TAKEN,
|
|
208
190
|
col_type=ColType.PICK_SUM,
|
|
209
191
|
expr=pl.when(pl.col(ColName.PICK).is_not_null())
|
|
210
192
|
.then(1)
|
|
211
|
-
.otherwise(0),
|
|
212
|
-
|
|
193
|
+
.otherwise(0),
|
|
194
|
+
),
|
|
195
|
+
ColSpec(
|
|
196
|
+
name=ColName.NUM_DRAFTS,
|
|
197
|
+
col_type=ColType.PICK_SUM,
|
|
198
|
+
expr=pl.when((pl.col(ColName.PACK_NUMBER) == 0) & (pl.col(ColName.PICK_NUMBER) == 0)).then(1).otherwise(0),
|
|
213
199
|
),
|
|
214
|
-
|
|
200
|
+
ColSpec(
|
|
215
201
|
name=ColName.PICK,
|
|
216
|
-
col_type=ColType.FILTER_ONLY,
|
|
202
|
+
col_type=ColType.FILTER_ONLY,
|
|
217
203
|
views=[View.DRAFT],
|
|
218
204
|
),
|
|
219
|
-
|
|
205
|
+
ColSpec(
|
|
220
206
|
name=ColName.PICK_MAINDECK_RATE,
|
|
221
207
|
col_type=ColType.PICK_SUM,
|
|
222
208
|
views=[View.DRAFT],
|
|
223
209
|
),
|
|
224
|
-
|
|
210
|
+
ColSpec(
|
|
225
211
|
name=ColName.PICK_SIDEBOARD_IN_RATE,
|
|
226
212
|
col_type=ColType.PICK_SUM,
|
|
227
213
|
views=[View.DRAFT],
|
|
228
214
|
),
|
|
229
|
-
|
|
215
|
+
ColSpec(
|
|
230
216
|
name=ColName.PACK_CARD,
|
|
231
217
|
col_type=ColType.NAME_SUM,
|
|
232
218
|
views=[View.DRAFT],
|
|
233
219
|
),
|
|
234
|
-
|
|
220
|
+
ColSpec(
|
|
235
221
|
name=ColName.LAST_SEEN,
|
|
236
222
|
col_type=ColType.NAME_SUM,
|
|
237
|
-
|
|
238
|
-
* pl.min_horizontal(
|
|
239
|
-
dependencies=[ColName.PACK_CARD, ColName.PICK_NUM],
|
|
223
|
+
expr=lambda name: pl.col(f"pack_card_{name}")
|
|
224
|
+
* pl.min_horizontal(ColName.PICK_NUM, 8),
|
|
240
225
|
),
|
|
241
|
-
|
|
226
|
+
ColSpec(
|
|
242
227
|
name=ColName.NUM_SEEN,
|
|
243
228
|
col_type=ColType.NAME_SUM,
|
|
244
|
-
|
|
245
|
-
dependencies=[ColName.PACK_CARD, ColName.PICK_NUM],
|
|
229
|
+
expr=lambda name: pl.col(f"pack_card_{name}") * (pl.col(ColName.PICK_NUM) <= 8),
|
|
246
230
|
),
|
|
247
|
-
|
|
231
|
+
ColSpec(
|
|
248
232
|
name=ColName.POOL,
|
|
249
233
|
col_type=ColType.NAME_SUM,
|
|
250
234
|
views=[View.DRAFT],
|
|
251
235
|
),
|
|
252
|
-
|
|
236
|
+
ColSpec(
|
|
253
237
|
name=ColName.GAME_TIME,
|
|
254
238
|
col_type=ColType.FILTER_ONLY,
|
|
255
239
|
views=[View.GAME],
|
|
256
240
|
),
|
|
257
|
-
|
|
241
|
+
ColSpec(
|
|
258
242
|
name=ColName.GAME_DATE,
|
|
259
243
|
col_type=ColType.GROUP_BY,
|
|
260
|
-
expr=pl.col(
|
|
261
|
-
dependencies=[ColName.GAME_TIME],
|
|
244
|
+
expr=pl.col(ColName.GAME_TIME).str.to_datetime("%Y-%m-%d %H-%M-%S").dt.date(),
|
|
262
245
|
),
|
|
263
|
-
|
|
246
|
+
ColSpec(
|
|
264
247
|
name=ColName.GAME_DAY_OF_WEEK,
|
|
265
248
|
col_type=ColType.GROUP_BY,
|
|
266
|
-
expr=pl.col(
|
|
267
|
-
dependencies=[ColName.GAME_TIME],
|
|
249
|
+
expr=pl.col(ColName.GAME_TIME).str.to_datetime("%Y-%m-%d %H-%M-%S").dt.weekday(),
|
|
268
250
|
),
|
|
269
|
-
|
|
251
|
+
ColSpec(
|
|
270
252
|
name=ColName.GAME_HOUR,
|
|
271
253
|
col_type=ColType.GROUP_BY,
|
|
272
|
-
expr=pl.col(
|
|
273
|
-
dependencies=[ColName.GAME_TIME],
|
|
254
|
+
expr=pl.col(ColName.GAME_TIME).str.to_datetime("%Y-%m-%d %H-%M-%S").dt.hour(),
|
|
274
255
|
),
|
|
275
|
-
|
|
256
|
+
ColSpec(
|
|
276
257
|
name=ColName.GAME_WEEK,
|
|
277
258
|
col_type=ColType.GROUP_BY,
|
|
278
|
-
expr=pl.col(
|
|
279
|
-
dependencies=[ColName.GAME_TIME],
|
|
259
|
+
expr=pl.col(ColName.GAME_TIME).str.to_datetime("%Y-%m-%d %H-%M-%S").dt.week(),
|
|
280
260
|
),
|
|
281
|
-
|
|
261
|
+
ColSpec(
|
|
282
262
|
name=ColName.BUILD_INDEX,
|
|
283
263
|
col_type=ColType.GROUP_BY,
|
|
284
264
|
views=[View.GAME],
|
|
285
265
|
),
|
|
286
|
-
|
|
266
|
+
ColSpec(
|
|
287
267
|
name=ColName.MATCH_NUMBER,
|
|
288
268
|
col_type=ColType.GROUP_BY,
|
|
289
269
|
views=[View.GAME],
|
|
290
270
|
),
|
|
291
|
-
|
|
271
|
+
ColSpec(
|
|
292
272
|
name=ColName.GAME_NUMBER,
|
|
293
273
|
col_type=ColType.GROUP_BY,
|
|
294
274
|
views=[View.GAME],
|
|
295
275
|
),
|
|
296
|
-
|
|
276
|
+
ColSpec(
|
|
297
277
|
name=ColName.NUM_GAMES,
|
|
298
278
|
col_type=ColType.GAME_SUM,
|
|
299
279
|
expr=pl.col(ColName.GAME_NUMBER).is_not_null(),
|
|
300
|
-
dependencies=[ColName.GAME_NUMBER],
|
|
301
280
|
),
|
|
302
|
-
|
|
281
|
+
ColSpec(
|
|
303
282
|
name=ColName.NUM_MATCHES,
|
|
304
283
|
col_type=ColType.GAME_SUM,
|
|
305
284
|
expr=pl.col(ColName.GAME_NUMBER) == 1,
|
|
306
|
-
dependencies=[ColName.GAME_NUMBER],
|
|
307
285
|
),
|
|
308
|
-
|
|
286
|
+
ColSpec(
|
|
309
287
|
name=ColName.NUM_EVENTS,
|
|
310
288
|
col_type=ColType.GAME_SUM,
|
|
311
289
|
expr=(pl.col(ColName.GAME_NUMBER) == 1) & (pl.col(ColName.MATCH_NUMBER) == 1),
|
|
312
|
-
dependencies=[ColName.GAME_NUMBER, ColName.MATCH_NUMBER],
|
|
313
290
|
),
|
|
314
|
-
|
|
291
|
+
ColSpec(
|
|
315
292
|
name=ColName.OPP_RANK,
|
|
316
293
|
col_type=ColType.GROUP_BY,
|
|
317
294
|
views=[View.GAME],
|
|
318
295
|
),
|
|
319
|
-
|
|
296
|
+
ColSpec(
|
|
320
297
|
name=ColName.MAIN_COLORS,
|
|
321
298
|
col_type=ColType.GROUP_BY,
|
|
322
299
|
views=[View.GAME],
|
|
323
300
|
),
|
|
324
|
-
|
|
301
|
+
ColSpec(
|
|
325
302
|
name=ColName.NUM_COLORS,
|
|
326
303
|
col_type=ColType.GROUP_BY,
|
|
327
304
|
expr=pl.col(ColName.MAIN_COLORS).str.len_chars(),
|
|
328
|
-
dependencies=[ColName.MAIN_COLORS],
|
|
329
305
|
),
|
|
330
|
-
|
|
306
|
+
ColSpec(
|
|
331
307
|
name=ColName.SPLASH_COLORS,
|
|
332
308
|
col_type=ColType.GROUP_BY,
|
|
333
309
|
views=[View.GAME],
|
|
334
310
|
),
|
|
335
|
-
|
|
311
|
+
ColSpec(
|
|
336
312
|
name=ColName.HAS_SPLASH,
|
|
337
313
|
col_type=ColType.GROUP_BY,
|
|
338
314
|
expr=pl.col(ColName.SPLASH_COLORS).str.len_chars() > 0,
|
|
339
|
-
dependencies=[ColName.SPLASH_COLORS],
|
|
340
315
|
),
|
|
341
|
-
|
|
316
|
+
ColSpec(
|
|
342
317
|
name=ColName.ON_PLAY,
|
|
343
318
|
col_type=ColType.GROUP_BY,
|
|
344
319
|
views=[View.GAME],
|
|
345
320
|
),
|
|
346
|
-
|
|
321
|
+
ColSpec(
|
|
347
322
|
name=ColName.NUM_ON_PLAY,
|
|
348
323
|
col_type=ColType.GAME_SUM,
|
|
349
324
|
expr=pl.col(ColName.ON_PLAY),
|
|
350
|
-
dependencies=[ColName.ON_PLAY],
|
|
351
325
|
),
|
|
352
|
-
|
|
326
|
+
ColSpec(
|
|
353
327
|
name=ColName.NUM_MULLIGANS,
|
|
354
328
|
col_type=ColType.GROUP_BY,
|
|
355
329
|
views=[View.GAME],
|
|
356
330
|
),
|
|
357
|
-
|
|
331
|
+
ColSpec(
|
|
358
332
|
name=ColName.NUM_MULLIGANS_SUM,
|
|
359
333
|
col_type=ColType.GAME_SUM,
|
|
360
334
|
expr=pl.col(ColName.NUM_MULLIGANS),
|
|
361
|
-
dependencies=[ColName.NUM_MULLIGANS],
|
|
362
335
|
),
|
|
363
|
-
|
|
336
|
+
ColSpec(
|
|
364
337
|
name=ColName.OPP_NUM_MULLIGANS,
|
|
365
338
|
col_type=ColType.GAME_SUM,
|
|
366
339
|
views=[View.GAME],
|
|
367
340
|
),
|
|
368
|
-
|
|
341
|
+
ColSpec(
|
|
369
342
|
name=ColName.OPP_NUM_MULLIGANS_SUM,
|
|
370
343
|
col_type=ColType.GAME_SUM,
|
|
371
344
|
expr=pl.col(ColName.OPP_NUM_MULLIGANS),
|
|
372
|
-
dependencies=[ColName.OPP_NUM_MULLIGANS],
|
|
373
345
|
),
|
|
374
|
-
|
|
346
|
+
ColSpec(
|
|
375
347
|
name=ColName.OPP_COLORS,
|
|
376
348
|
col_type=ColType.GROUP_BY,
|
|
377
349
|
views=[View.GAME],
|
|
378
350
|
),
|
|
379
|
-
|
|
351
|
+
ColSpec(
|
|
380
352
|
name=ColName.NUM_TURNS,
|
|
381
353
|
col_type=ColType.GROUP_BY,
|
|
382
354
|
views=[View.GAME],
|
|
383
355
|
),
|
|
384
|
-
|
|
356
|
+
ColSpec(
|
|
385
357
|
name=ColName.NUM_TURNS_SUM,
|
|
386
358
|
col_type=ColType.GAME_SUM,
|
|
387
359
|
expr=pl.col(ColName.NUM_TURNS),
|
|
388
|
-
dependencies=[ColName.NUM_TURNS],
|
|
389
360
|
),
|
|
390
|
-
|
|
361
|
+
ColSpec(
|
|
391
362
|
name=ColName.WON,
|
|
392
363
|
col_type=ColType.GROUP_BY,
|
|
393
364
|
views=[View.GAME],
|
|
394
365
|
),
|
|
395
|
-
|
|
366
|
+
ColSpec(
|
|
396
367
|
name=ColName.NUM_WON,
|
|
397
368
|
col_type=ColType.GAME_SUM,
|
|
398
369
|
expr=pl.col(ColName.WON),
|
|
399
|
-
dependencies=[ColName.WON],
|
|
400
370
|
),
|
|
401
|
-
|
|
371
|
+
ColSpec(
|
|
402
372
|
name=ColName.OPENING_HAND,
|
|
403
373
|
col_type=ColType.NAME_SUM,
|
|
404
374
|
views=[View.GAME],
|
|
405
375
|
),
|
|
406
|
-
|
|
376
|
+
ColSpec(
|
|
407
377
|
name=ColName.WON_OPENING_HAND,
|
|
408
378
|
col_type=ColType.NAME_SUM,
|
|
409
|
-
|
|
410
|
-
dependencies=[ColName.OPENING_HAND, ColName.WON],
|
|
379
|
+
expr=lambda name: pl.col(f"opening_hand_{name}") * pl.col(ColName.WON),
|
|
411
380
|
),
|
|
412
|
-
|
|
381
|
+
ColSpec(
|
|
413
382
|
name=ColName.DRAWN,
|
|
414
383
|
col_type=ColType.NAME_SUM,
|
|
415
384
|
views=[View.GAME],
|
|
416
385
|
),
|
|
417
|
-
|
|
386
|
+
ColSpec(
|
|
418
387
|
name=ColName.WON_DRAWN,
|
|
419
388
|
col_type=ColType.NAME_SUM,
|
|
420
|
-
|
|
421
|
-
dependencies=[ColName.DRAWN, ColName.WON],
|
|
389
|
+
expr=lambda name: pl.col(f"drawn_{name}") * pl.col(ColName.WON),
|
|
422
390
|
),
|
|
423
|
-
|
|
391
|
+
ColSpec(
|
|
424
392
|
name=ColName.TUTORED,
|
|
425
393
|
col_type=ColType.NAME_SUM,
|
|
426
394
|
views=[View.GAME],
|
|
427
395
|
),
|
|
428
|
-
|
|
396
|
+
ColSpec(
|
|
429
397
|
name=ColName.WON_TUTORED,
|
|
430
398
|
col_type=ColType.NAME_SUM,
|
|
431
|
-
|
|
432
|
-
dependencies=[ColName.TUTORED, ColName.WON],
|
|
399
|
+
expr=lambda name: pl.col(f"tutored_{name}") * pl.col(ColName.WON),
|
|
433
400
|
),
|
|
434
|
-
|
|
401
|
+
ColSpec(
|
|
435
402
|
name=ColName.DECK,
|
|
436
403
|
col_type=ColType.NAME_SUM,
|
|
437
404
|
views=[View.GAME],
|
|
438
405
|
),
|
|
439
|
-
|
|
406
|
+
ColSpec(
|
|
440
407
|
name=ColName.WON_DECK,
|
|
441
408
|
col_type=ColType.NAME_SUM,
|
|
442
|
-
|
|
443
|
-
dependencies=[ColName.DECK, ColName.WON],
|
|
409
|
+
expr=lambda name: pl.col(f"deck_{name}") * pl.col(ColName.WON),
|
|
444
410
|
),
|
|
445
|
-
|
|
411
|
+
ColSpec(
|
|
446
412
|
name=ColName.SIDEBOARD,
|
|
447
413
|
col_type=ColType.NAME_SUM,
|
|
448
414
|
views=[View.GAME],
|
|
449
415
|
),
|
|
450
|
-
|
|
416
|
+
ColSpec(
|
|
451
417
|
name=ColName.WON_SIDEBOARD,
|
|
452
418
|
col_type=ColType.NAME_SUM,
|
|
453
|
-
|
|
454
|
-
dependencies=[ColName.SIDEBOARD, ColName.WON],
|
|
419
|
+
expr=lambda name: pl.col(f"sideboard_{name}") * pl.col(ColName.WON),
|
|
455
420
|
),
|
|
456
|
-
|
|
421
|
+
ColSpec(
|
|
457
422
|
name=ColName.NUM_GNS,
|
|
458
423
|
col_type=ColType.NAME_SUM,
|
|
459
|
-
|
|
424
|
+
expr=lambda name: pl.max_horizontal(
|
|
460
425
|
0,
|
|
461
426
|
pl.col(f"deck_{name}")
|
|
462
427
|
- pl.col(f"drawn_{name}")
|
|
463
428
|
- pl.col(f"tutored_{name}")
|
|
464
429
|
- pl.col(f"opening_hand_{name}"),
|
|
465
430
|
),
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
ColName.DRAWN,
|
|
469
|
-
ColName.TUTORED,
|
|
470
|
-
ColName.OPENING_HAND,
|
|
471
|
-
],
|
|
472
|
-
),
|
|
473
|
-
ColumnSpec(
|
|
431
|
+
),
|
|
432
|
+
ColSpec(
|
|
474
433
|
name=ColName.WON_NUM_GNS,
|
|
475
434
|
col_type=ColType.NAME_SUM,
|
|
476
|
-
|
|
477
|
-
dependencies=[ColName.NUM_GNS, ColName.WON],
|
|
435
|
+
expr=lambda name: pl.col(ColName.WON) * pl.col(f"num_gns_{name}"),
|
|
478
436
|
),
|
|
479
|
-
|
|
437
|
+
ColSpec(
|
|
480
438
|
name=ColName.SET_CODE,
|
|
481
439
|
col_type=ColType.CARD_ATTR,
|
|
482
440
|
),
|
|
483
|
-
|
|
441
|
+
ColSpec(
|
|
484
442
|
name=ColName.COLOR,
|
|
485
443
|
col_type=ColType.CARD_ATTR,
|
|
486
444
|
),
|
|
487
|
-
|
|
445
|
+
ColSpec(
|
|
488
446
|
name=ColName.RARITY,
|
|
489
447
|
col_type=ColType.CARD_ATTR,
|
|
490
448
|
),
|
|
491
|
-
|
|
449
|
+
ColSpec(
|
|
492
450
|
name=ColName.COLOR_IDENTITY,
|
|
493
451
|
col_type=ColType.CARD_ATTR,
|
|
494
452
|
),
|
|
495
|
-
|
|
453
|
+
ColSpec(
|
|
496
454
|
name=ColName.CARD_TYPE,
|
|
497
455
|
col_type=ColType.CARD_ATTR,
|
|
498
456
|
),
|
|
499
|
-
|
|
457
|
+
ColSpec(
|
|
500
458
|
name=ColName.SUBTYPE,
|
|
501
459
|
col_type=ColType.CARD_ATTR,
|
|
502
460
|
),
|
|
503
|
-
|
|
461
|
+
ColSpec(
|
|
504
462
|
name=ColName.MANA_VALUE,
|
|
505
463
|
col_type=ColType.CARD_ATTR,
|
|
506
464
|
),
|
|
507
|
-
|
|
465
|
+
ColSpec(
|
|
508
466
|
name=ColName.DECK_MANA_VALUE,
|
|
509
|
-
col_type=ColType.
|
|
510
|
-
expr=
|
|
511
|
-
dependencies=[ColName.MANA_VALUE, ColName.DECK],
|
|
467
|
+
col_type=ColType.NAME_SUM,
|
|
468
|
+
expr=lambda name, card_context: card_context[name][ColName.MANA_VALUE] * pl.col(f"deck_{name}"),
|
|
512
469
|
),
|
|
513
|
-
|
|
470
|
+
ColSpec(
|
|
514
471
|
name=ColName.DECK_LANDS,
|
|
515
|
-
col_type=ColType.
|
|
516
|
-
expr=pl.
|
|
517
|
-
.then(pl.col(ColName.DECK))
|
|
518
|
-
.otherwise(0),
|
|
519
|
-
dependencies=[ColName.CARD_TYPE, ColName.DECK],
|
|
472
|
+
col_type=ColType.NAME_SUM,
|
|
473
|
+
expr=lambda name, card_context: pl.col(f"deck_{name}") * ( 1 if 'Land' in card_context[name][ColName.CARD_TYPE] else 0 )
|
|
520
474
|
),
|
|
521
|
-
|
|
475
|
+
ColSpec(
|
|
522
476
|
name=ColName.DECK_SPELLS,
|
|
523
|
-
col_type=ColType.
|
|
524
|
-
expr=pl.col(
|
|
525
|
-
dependencies=[ColName.DECK, ColName.DECK_SPELLS],
|
|
477
|
+
col_type=ColType.NAME_SUM,
|
|
478
|
+
expr=lambda name: pl.col(f"deck_{name}") - pl.col(f"deck_lands_{name}"),
|
|
526
479
|
),
|
|
527
|
-
|
|
480
|
+
ColSpec(
|
|
528
481
|
name=ColName.MANA_COST,
|
|
529
482
|
col_type=ColType.CARD_ATTR,
|
|
530
483
|
),
|
|
531
|
-
|
|
484
|
+
ColSpec(
|
|
532
485
|
name=ColName.POWER,
|
|
533
486
|
col_type=ColType.CARD_ATTR,
|
|
534
487
|
),
|
|
535
|
-
|
|
488
|
+
ColSpec(
|
|
536
489
|
name=ColName.TOUGHNESS,
|
|
537
490
|
col_type=ColType.CARD_ATTR,
|
|
538
491
|
),
|
|
539
|
-
|
|
492
|
+
ColSpec(
|
|
540
493
|
name=ColName.IS_BONUS_SHEET,
|
|
541
494
|
col_type=ColType.CARD_ATTR,
|
|
542
495
|
),
|
|
543
|
-
|
|
496
|
+
ColSpec(
|
|
544
497
|
name=ColName.IS_DFC,
|
|
545
498
|
col_type=ColType.CARD_ATTR,
|
|
546
499
|
),
|
|
547
|
-
|
|
500
|
+
ColSpec(
|
|
548
501
|
name=ColName.ORACLE_TEXT,
|
|
549
502
|
col_type=ColType.CARD_ATTR,
|
|
550
503
|
),
|
|
551
|
-
|
|
504
|
+
ColSpec(
|
|
552
505
|
name=ColName.CARD_JSON,
|
|
553
506
|
col_type=ColType.CARD_ATTR,
|
|
554
507
|
),
|
|
555
|
-
|
|
508
|
+
ColSpec(
|
|
556
509
|
name=ColName.PICKED_MATCH_WR,
|
|
557
510
|
col_type=ColType.AGG,
|
|
558
|
-
expr=pl.col(ColName.EVENT_MATCH_WINS_SUM) / pl.col(ColName.
|
|
559
|
-
dependencies=[ColName.EVENT_MATCH_WINS_SUM, ColName.EVENT_MATCHES],
|
|
511
|
+
expr=pl.col(ColName.EVENT_MATCH_WINS_SUM) / pl.col(ColName.EVENT_MATCHES_SUM),
|
|
560
512
|
),
|
|
561
|
-
|
|
513
|
+
ColSpec(
|
|
562
514
|
name=ColName.TROPHY_RATE,
|
|
563
515
|
col_type=ColType.AGG,
|
|
564
516
|
expr=pl.col(ColName.IS_TROPHY_SUM) / pl.col(ColName.NUM_TAKEN),
|
|
565
|
-
dependencies=[ColName.IS_TROPHY_SUM, ColName.NUM_TAKEN],
|
|
566
517
|
),
|
|
567
|
-
|
|
518
|
+
ColSpec(
|
|
568
519
|
name=ColName.GAME_WR,
|
|
569
520
|
col_type=ColType.AGG,
|
|
570
521
|
expr=pl.col(ColName.NUM_WON) / pl.col(ColName.NUM_GAMES),
|
|
571
|
-
dependencies=[ColName.NUM_WON, ColName.NUM_GAMES],
|
|
572
522
|
),
|
|
573
|
-
|
|
523
|
+
ColSpec(
|
|
574
524
|
name=ColName.ALSA,
|
|
575
525
|
col_type=ColType.AGG,
|
|
576
526
|
expr=pl.col(ColName.LAST_SEEN) / pl.col(ColName.NUM_SEEN),
|
|
577
|
-
dependencies=[ColName.LAST_SEEN, ColName.NUM_SEEN],
|
|
578
527
|
),
|
|
579
|
-
|
|
528
|
+
ColSpec(
|
|
580
529
|
name=ColName.ATA,
|
|
581
530
|
col_type=ColType.AGG,
|
|
582
531
|
expr=pl.col(ColName.TAKEN_AT) / pl.col(ColName.NUM_TAKEN),
|
|
583
|
-
dependencies=[ColName.TAKEN_AT, ColName.NUM_TAKEN],
|
|
584
532
|
),
|
|
585
|
-
|
|
533
|
+
ColSpec(
|
|
586
534
|
name=ColName.NUM_GP,
|
|
587
535
|
col_type=ColType.AGG,
|
|
588
536
|
expr=pl.col(ColName.DECK),
|
|
589
|
-
dependencies=[ColName.DECK],
|
|
590
537
|
),
|
|
591
|
-
|
|
538
|
+
ColSpec(
|
|
592
539
|
name=ColName.PCT_GP,
|
|
593
540
|
col_type=ColType.AGG,
|
|
594
541
|
expr=pl.col(ColName.DECK) / (pl.col(ColName.DECK) + pl.col(ColName.SIDEBOARD)),
|
|
595
|
-
dependencies=[ColName.DECK, ColName.SIDEBOARD],
|
|
596
542
|
),
|
|
597
|
-
|
|
543
|
+
ColSpec(
|
|
598
544
|
name=ColName.GP_WR,
|
|
599
545
|
col_type=ColType.AGG,
|
|
600
546
|
expr=pl.col(ColName.WON_DECK) / pl.col(ColName.DECK),
|
|
601
|
-
dependencies=[ColName.WON_DECK, ColName.DECK],
|
|
602
547
|
),
|
|
603
|
-
|
|
548
|
+
ColSpec(
|
|
604
549
|
name=ColName.NUM_OH,
|
|
605
550
|
col_type=ColType.AGG,
|
|
606
551
|
expr=pl.col(ColName.OPENING_HAND),
|
|
607
|
-
dependencies=[ColName.OPENING_HAND],
|
|
608
552
|
),
|
|
609
|
-
|
|
553
|
+
ColSpec(
|
|
610
554
|
name=ColName.OH_WR,
|
|
611
555
|
col_type=ColType.AGG,
|
|
612
556
|
expr=pl.col(ColName.WON_OPENING_HAND) / pl.col(ColName.OPENING_HAND),
|
|
613
|
-
dependencies=[ColName.WON_OPENING_HAND, ColName.OPENING_HAND],
|
|
614
557
|
),
|
|
615
|
-
|
|
558
|
+
ColSpec(
|
|
616
559
|
name=ColName.NUM_GIH,
|
|
617
560
|
col_type=ColType.AGG,
|
|
618
561
|
expr=pl.col(ColName.OPENING_HAND) + pl.col(ColName.DRAWN),
|
|
619
|
-
dependencies=[ColName.OPENING_HAND, ColName.DRAWN],
|
|
620
562
|
),
|
|
621
|
-
|
|
563
|
+
ColSpec(
|
|
622
564
|
name=ColName.NUM_GIH_WON,
|
|
623
565
|
col_type=ColType.AGG,
|
|
624
566
|
expr=pl.col(ColName.WON_OPENING_HAND) + pl.col(ColName.WON_DRAWN),
|
|
625
|
-
dependencies=[ColName.WON_OPENING_HAND, ColName.WON_DRAWN],
|
|
626
567
|
),
|
|
627
|
-
|
|
568
|
+
ColSpec(
|
|
628
569
|
name=ColName.GIH_WR,
|
|
629
570
|
col_type=ColType.AGG,
|
|
630
571
|
expr=pl.col(ColName.NUM_GIH_WON) / pl.col(ColName.NUM_GIH),
|
|
631
|
-
dependencies=[ColName.NUM_GIH_WON, ColName.NUM_GIH],
|
|
632
572
|
),
|
|
633
|
-
|
|
573
|
+
ColSpec(
|
|
634
574
|
name=ColName.GNS_WR,
|
|
635
575
|
col_type=ColType.AGG,
|
|
636
576
|
expr=pl.col(ColName.WON_NUM_GNS) / pl.col(ColName.NUM_GNS),
|
|
637
|
-
dependencies=[ColName.WON_NUM_GNS, ColName.NUM_GNS],
|
|
638
577
|
),
|
|
639
|
-
|
|
578
|
+
ColSpec(
|
|
640
579
|
name=ColName.IWD,
|
|
641
580
|
col_type=ColType.AGG,
|
|
642
581
|
expr=pl.col(ColName.GIH_WR) - pl.col(ColName.GNS_WR),
|
|
643
|
-
dependencies=[ColName.GIH_WR, ColName.GNS_WR],
|
|
644
582
|
),
|
|
645
|
-
|
|
583
|
+
ColSpec(
|
|
646
584
|
name=ColName.NUM_IN_POOL,
|
|
647
585
|
col_type=ColType.AGG,
|
|
648
586
|
expr=pl.col(ColName.DECK) + pl.col(ColName.SIDEBOARD),
|
|
649
|
-
dependencies=[ColName.DECK, ColName.SIDEBOARD],
|
|
650
587
|
),
|
|
651
|
-
|
|
588
|
+
ColSpec(
|
|
652
589
|
name=ColName.IN_POOL_WR,
|
|
653
590
|
col_type=ColType.AGG,
|
|
654
591
|
expr=(pl.col(ColName.WON_DECK) + pl.col(ColName.WON_SIDEBOARD))
|
|
655
592
|
/ pl.col(ColName.NUM_IN_POOL),
|
|
656
|
-
dependencies=[ColName.WON_DECK, ColName.WON_SIDEBOARD, ColName.NUM_IN_POOL],
|
|
657
593
|
),
|
|
658
|
-
|
|
594
|
+
ColSpec(
|
|
659
595
|
name=ColName.DECK_TOTAL,
|
|
660
596
|
col_type=ColType.AGG,
|
|
661
597
|
expr=pl.col(ColName.DECK).sum(),
|
|
662
|
-
dependencies=[ColName.DECK],
|
|
663
598
|
),
|
|
664
|
-
|
|
599
|
+
ColSpec(
|
|
665
600
|
name=ColName.WON_DECK_TOTAL,
|
|
666
601
|
col_type=ColType.AGG,
|
|
667
602
|
expr=pl.col(ColName.WON_DECK).sum(),
|
|
668
|
-
dependencies=[ColName.WON_DECK],
|
|
669
603
|
),
|
|
670
|
-
|
|
604
|
+
ColSpec(
|
|
671
605
|
name=ColName.GP_WR_MEAN,
|
|
672
606
|
col_type=ColType.AGG,
|
|
673
607
|
expr=pl.col(ColName.WON_DECK_TOTAL) / pl.col(ColName.DECK_TOTAL),
|
|
674
|
-
dependencies=[ColName.WON_DECK_TOTAL, ColName.DECK_TOTAL],
|
|
675
608
|
),
|
|
676
|
-
|
|
609
|
+
ColSpec(
|
|
677
610
|
name=ColName.GP_WR_EXCESS,
|
|
678
611
|
col_type=ColType.AGG,
|
|
679
612
|
expr=pl.col(ColName.GP_WR) - pl.col(ColName.GP_WR_MEAN),
|
|
680
|
-
dependencies=[ColName.GP_WR, ColName.GP_WR_MEAN],
|
|
681
613
|
),
|
|
682
|
-
|
|
614
|
+
ColSpec(
|
|
683
615
|
name=ColName.GP_WR_VAR,
|
|
684
616
|
col_type=ColType.AGG,
|
|
685
617
|
expr=(pl.col(ColName.GP_WR_EXCESS).pow(2) * pl.col(ColName.NUM_GP)).sum()
|
|
686
618
|
/ pl.col(ColName.DECK_TOTAL),
|
|
687
|
-
dependencies=[ColName.GP_WR_EXCESS, ColName.NUM_GP, ColName.DECK_TOTAL],
|
|
688
619
|
),
|
|
689
|
-
|
|
620
|
+
ColSpec(
|
|
690
621
|
name=ColName.GP_WR_STDEV,
|
|
691
622
|
col_type=ColType.AGG,
|
|
692
623
|
expr=pl.col(ColName.GP_WR_VAR).sqrt(),
|
|
693
|
-
dependencies=[ColName.GP_WR_VAR],
|
|
694
624
|
),
|
|
695
|
-
|
|
625
|
+
ColSpec(
|
|
696
626
|
name=ColName.GP_WR_Z,
|
|
697
627
|
col_type=ColType.AGG,
|
|
698
628
|
expr=pl.col(ColName.GP_WR_EXCESS) / pl.col(ColName.GP_WR_STDEV),
|
|
699
|
-
dependencies=[ColName.GP_WR_EXCESS, ColName.GP_WR_STDEV],
|
|
700
629
|
),
|
|
701
|
-
|
|
630
|
+
ColSpec(
|
|
702
631
|
name=ColName.GIH_TOTAL,
|
|
703
632
|
col_type=ColType.AGG,
|
|
704
633
|
expr=pl.col(ColName.NUM_GIH).sum(),
|
|
705
|
-
dependencies=[ColName.NUM_GIH],
|
|
706
634
|
),
|
|
707
|
-
|
|
635
|
+
ColSpec(
|
|
708
636
|
name=ColName.WON_GIH_TOTAL,
|
|
709
637
|
col_type=ColType.AGG,
|
|
710
638
|
expr=pl.col(ColName.NUM_GIH_WON).sum(),
|
|
711
|
-
dependencies=[ColName.NUM_GIH_WON],
|
|
712
639
|
),
|
|
713
|
-
|
|
640
|
+
ColSpec(
|
|
714
641
|
name=ColName.GIH_WR_MEAN,
|
|
715
642
|
col_type=ColType.AGG,
|
|
716
643
|
expr=pl.col(ColName.WON_GIH_TOTAL) / pl.col(ColName.GIH_TOTAL),
|
|
717
|
-
dependencies=[ColName.WON_GIH_TOTAL, ColName.GIH_TOTAL],
|
|
718
644
|
),
|
|
719
|
-
|
|
645
|
+
ColSpec(
|
|
720
646
|
name=ColName.GIH_WR_EXCESS,
|
|
721
647
|
col_type=ColType.AGG,
|
|
722
648
|
expr=pl.col(ColName.GIH_WR) - pl.col(ColName.GIH_WR_MEAN),
|
|
723
|
-
dependencies=[ColName.GIH_WR, ColName.GIH_WR_MEAN],
|
|
724
649
|
),
|
|
725
|
-
|
|
650
|
+
ColSpec(
|
|
726
651
|
name=ColName.GIH_WR_VAR,
|
|
727
652
|
col_type=ColType.AGG,
|
|
728
653
|
expr=(pl.col(ColName.GIH_WR_EXCESS).pow(2) * pl.col(ColName.NUM_GIH)).sum()
|
|
729
654
|
/ pl.col(ColName.GIH_TOTAL),
|
|
730
|
-
dependencies=[ColName.GIH_WR_EXCESS, ColName.NUM_GIH, ColName.GIH_TOTAL],
|
|
731
655
|
),
|
|
732
|
-
|
|
656
|
+
ColSpec(
|
|
733
657
|
name=ColName.GIH_WR_STDEV,
|
|
734
658
|
col_type=ColType.AGG,
|
|
735
659
|
expr=pl.col(ColName.GIH_WR_VAR).sqrt(),
|
|
736
|
-
dependencies=[ColName.GIH_WR_VAR],
|
|
737
660
|
),
|
|
738
|
-
|
|
661
|
+
ColSpec(
|
|
739
662
|
name=ColName.GIH_WR_Z,
|
|
740
663
|
col_type=ColType.AGG,
|
|
741
664
|
expr=pl.col(ColName.GIH_WR_EXCESS) / pl.col(ColName.GIH_WR_STDEV),
|
|
742
|
-
dependencies=[ColName.GIH_WR_EXCESS, ColName.GIH_WR_STDEV],
|
|
743
665
|
),
|
|
744
|
-
|
|
666
|
+
ColSpec(
|
|
745
667
|
name=ColName.DECK_MANA_VALUE_AVG,
|
|
746
668
|
col_type=ColType.AGG,
|
|
747
|
-
expr=pl.col(ColName.DECK_MANA_VALUE) / pl.col(ColName.
|
|
748
|
-
dependencies=[ColName.DECK_MANA_VALUE, ColName.DECK],
|
|
669
|
+
expr=pl.col(ColName.DECK_MANA_VALUE) / pl.col(ColName.DECK_SPELLS),
|
|
749
670
|
),
|
|
750
|
-
|
|
671
|
+
ColSpec(
|
|
751
672
|
name=ColName.DECK_LANDS_AVG,
|
|
752
673
|
col_type=ColType.AGG,
|
|
753
674
|
expr=pl.col(ColName.DECK_LANDS) / pl.col(ColName.NUM_GAMES),
|
|
754
|
-
dependencies=[ColName.DECK_LANDS, ColName.NUM_GAMES],
|
|
755
675
|
),
|
|
756
|
-
|
|
676
|
+
ColSpec(
|
|
757
677
|
name=ColName.DECK_SPELLS_AVG,
|
|
758
678
|
col_type=ColType.AGG,
|
|
759
679
|
expr=pl.col(ColName.DECK_SPELLS) / pl.col(ColName.NUM_GAMES),
|
|
760
|
-
dependencies=[ColName.DECK_SPELLS, ColName.NUM_GAMES],
|
|
761
680
|
),
|
|
762
681
|
]
|
|
763
682
|
|