spells-mtg 0.11.13__py3-none-any.whl → 0.11.15__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/columns.py CHANGED
@@ -40,6 +40,11 @@ default_columns = [
40
40
  ColName.GIH_WR,
41
41
  ]
42
42
 
43
+
44
+ def agg_col(expr: pl.Expr) -> ColSpec:
45
+ return ColSpec(col_type=ColType.AGG, expr=expr)
46
+
47
+
43
48
  _specs: dict[str, ColSpec] = {
44
49
  ColName.NAME: ColSpec(
45
50
  col_type=ColType.GROUP_BY,
@@ -168,7 +173,8 @@ _specs: dict[str, ColSpec] = {
168
173
  ),
169
174
  ColName.PICK_INDEX: ColSpec(
170
175
  col_type=ColType.GROUP_BY,
171
- expr=lambda set_context: pl.col(ColName.PICK_NUMBER) + pl.col(ColName.PACK_NUMBER) * set_context['picks_per_pack']
176
+ expr=lambda set_context: pl.col(ColName.PICK_NUMBER)
177
+ + pl.col(ColName.PACK_NUMBER) * set_context["picks_per_pack"],
172
178
  ),
173
179
  ColName.TAKEN_AT: ColSpec(
174
180
  col_type=ColType.PICK_SUM,
@@ -441,149 +447,61 @@ _specs: dict[str, ColSpec] = {
441
447
  ColName.IMAGE_URL: ColSpec(
442
448
  col_type=ColType.CARD_ATTR,
443
449
  ),
444
- ColName.PICKED_MATCH_WR: ColSpec(
445
- col_type=ColType.AGG,
446
- expr=pl.col(ColName.EVENT_MATCH_WINS_SUM) / pl.col(ColName.EVENT_MATCHES_SUM),
447
- ),
448
- ColName.TROPHY_RATE: ColSpec(
449
- col_type=ColType.AGG,
450
- expr=pl.col(ColName.IS_TROPHY_SUM) / pl.col(ColName.NUM_TAKEN),
451
- ),
452
- ColName.GAME_WR: ColSpec(
453
- col_type=ColType.AGG,
454
- expr=pl.col(ColName.NUM_WON) / pl.col(ColName.NUM_GAMES),
455
- ),
456
- ColName.ALSA: ColSpec(
457
- col_type=ColType.AGG,
458
- expr=pl.col(ColName.LAST_SEEN) / pl.col(ColName.NUM_SEEN),
459
- ),
460
- ColName.ATA: ColSpec(
461
- col_type=ColType.AGG,
462
- expr=pl.col(ColName.TAKEN_AT) / pl.col(ColName.NUM_TAKEN),
463
- ),
464
- ColName.NUM_GP: ColSpec(
465
- col_type=ColType.AGG,
466
- expr=pl.col(ColName.DECK),
467
- ),
468
- ColName.PCT_GP: ColSpec(
469
- col_type=ColType.AGG,
470
- expr=pl.col(ColName.DECK) / (pl.col(ColName.DECK) + pl.col(ColName.SIDEBOARD)),
471
- ),
472
- ColName.GP_WR: ColSpec(
473
- col_type=ColType.AGG,
474
- expr=pl.col(ColName.WON_DECK) / pl.col(ColName.DECK),
475
- ),
476
- ColName.NUM_OH: ColSpec(
477
- col_type=ColType.AGG,
478
- expr=pl.col(ColName.OPENING_HAND),
479
- ),
480
- ColName.OH_WR: ColSpec(
481
- col_type=ColType.AGG,
482
- expr=pl.col(ColName.WON_OPENING_HAND) / pl.col(ColName.OPENING_HAND),
483
- ),
484
- ColName.NUM_GIH: ColSpec(
485
- col_type=ColType.AGG,
486
- expr=pl.col(ColName.OPENING_HAND) + pl.col(ColName.DRAWN),
487
- ),
488
- ColName.NUM_GIH_WON: ColSpec(
489
- col_type=ColType.AGG,
490
- expr=pl.col(ColName.WON_OPENING_HAND) + pl.col(ColName.WON_DRAWN),
491
- ),
492
- ColName.GIH_WR: ColSpec(
493
- col_type=ColType.AGG,
494
- expr=pl.col(ColName.NUM_GIH_WON) / pl.col(ColName.NUM_GIH),
495
- ),
496
- ColName.GNS_WR: ColSpec(
497
- col_type=ColType.AGG,
498
- expr=pl.col(ColName.WON_NUM_GNS) / pl.col(ColName.NUM_GNS),
499
- ),
500
- ColName.IWD: ColSpec(
501
- col_type=ColType.AGG,
502
- expr=pl.col(ColName.GIH_WR) - pl.col(ColName.GNS_WR),
503
- ),
504
- ColName.NUM_IN_POOL: ColSpec(
505
- col_type=ColType.AGG,
506
- expr=pl.col(ColName.DECK) + pl.col(ColName.SIDEBOARD),
507
- ),
508
- ColName.NUM_IN_POOL_TOTAL: ColSpec(
509
- col_type=ColType.AGG,
510
- expr=pl.col(ColName.NUM_IN_POOL).sum(),
511
- ),
512
- ColName.IN_POOL_WR: ColSpec(
513
- col_type=ColType.AGG,
514
- expr=(pl.col(ColName.WON_DECK) + pl.col(ColName.WON_SIDEBOARD))
515
- / pl.col(ColName.NUM_IN_POOL),
516
- ),
517
- ColName.DECK_TOTAL: ColSpec(
518
- col_type=ColType.AGG,
519
- expr=pl.col(ColName.DECK).sum(),
520
- ),
521
- ColName.WON_DECK_TOTAL: ColSpec(
522
- col_type=ColType.AGG,
523
- expr=pl.col(ColName.WON_DECK).sum(),
524
- ),
525
- ColName.GP_WR_MEAN: ColSpec(
526
- col_type=ColType.AGG,
527
- expr=pl.col(ColName.WON_DECK_TOTAL) / pl.col(ColName.DECK_TOTAL),
528
- ),
529
- ColName.GP_WR_EXCESS: ColSpec(
530
- col_type=ColType.AGG,
531
- expr=pl.col(ColName.GP_WR) - pl.col(ColName.GP_WR_MEAN),
532
- ),
533
- ColName.GP_WR_VAR: ColSpec(
534
- col_type=ColType.AGG,
535
- expr=(pl.col(ColName.GP_WR_EXCESS).pow(2) * pl.col(ColName.NUM_GP)).sum()
536
- / pl.col(ColName.DECK_TOTAL),
537
- ),
538
- ColName.GP_WR_STDEV: ColSpec(
539
- col_type=ColType.AGG,
540
- expr=pl.col(ColName.GP_WR_VAR).sqrt(),
541
- ),
542
- ColName.GP_WR_Z: ColSpec(
543
- col_type=ColType.AGG,
544
- expr=pl.col(ColName.GP_WR_EXCESS) / pl.col(ColName.GP_WR_STDEV),
545
- ),
546
- ColName.GIH_TOTAL: ColSpec(
547
- col_type=ColType.AGG,
548
- expr=pl.col(ColName.NUM_GIH).sum(),
549
- ),
550
- ColName.WON_GIH_TOTAL: ColSpec(
551
- col_type=ColType.AGG,
552
- expr=pl.col(ColName.NUM_GIH_WON).sum(),
553
- ),
554
- ColName.GIH_WR_MEAN: ColSpec(
555
- col_type=ColType.AGG,
556
- expr=pl.col(ColName.WON_GIH_TOTAL) / pl.col(ColName.GIH_TOTAL),
557
- ),
558
- ColName.GIH_WR_EXCESS: ColSpec(
559
- col_type=ColType.AGG,
560
- expr=pl.col(ColName.GIH_WR) - pl.col(ColName.GIH_WR_MEAN),
561
- ),
562
- ColName.GIH_WR_VAR: ColSpec(
563
- col_type=ColType.AGG,
564
- expr=(pl.col(ColName.GIH_WR_EXCESS).pow(2) * pl.col(ColName.NUM_GIH)).sum()
565
- / pl.col(ColName.GIH_TOTAL),
566
- ),
567
- ColName.GIH_WR_STDEV: ColSpec(
568
- col_type=ColType.AGG,
569
- expr=pl.col(ColName.GIH_WR_VAR).sqrt(),
570
- ),
571
- ColName.GIH_WR_Z: ColSpec(
572
- col_type=ColType.AGG,
573
- expr=pl.col(ColName.GIH_WR_EXCESS) / pl.col(ColName.GIH_WR_STDEV),
574
- ),
575
- ColName.DECK_MANA_VALUE_AVG: ColSpec(
576
- col_type=ColType.AGG,
577
- expr=pl.col(ColName.DECK_MANA_VALUE) / pl.col(ColName.DECK_SPELLS),
578
- ),
579
- ColName.DECK_LANDS_AVG: ColSpec(
580
- col_type=ColType.AGG,
581
- expr=pl.col(ColName.DECK_LANDS) / pl.col(ColName.NUM_GAMES),
582
- ),
583
- ColName.DECK_SPELLS_AVG: ColSpec(
584
- col_type=ColType.AGG,
585
- expr=pl.col(ColName.DECK_SPELLS) / pl.col(ColName.NUM_GAMES),
586
- ),
450
+ ColName.PICKED_MATCH_WR: agg_col(
451
+ pl.col(ColName.EVENT_MATCH_WINS_SUM) / pl.col(ColName.EVENT_MATCHES_SUM)
452
+ ),
453
+ ColName.TROPHY_RATE: agg_col(
454
+ pl.col(ColName.IS_TROPHY_SUM) / pl.col(ColName.NUM_TAKEN),
455
+ ),
456
+ ColName.GAME_WR: agg_col(
457
+ pl.col(ColName.NUM_WON) / pl.col(ColName.NUM_GAMES),
458
+ ),
459
+ ColName.ALSA: agg_col(pl.col(ColName.LAST_SEEN) / pl.col(ColName.NUM_SEEN)),
460
+ ColName.ATA: agg_col(pl.col(ColName.TAKEN_AT) / pl.col(ColName.NUM_TAKEN)),
461
+ ColName.NUM_GP: agg_col(pl.col(ColName.DECK)),
462
+ ColName.PCT_GP: agg_col(
463
+ pl.col(ColName.DECK) / (pl.col(ColName.DECK) + pl.col(ColName.SIDEBOARD))
464
+ ),
465
+ ColName.GP_WR: agg_col(pl.col(ColName.WON_DECK) / pl.col(ColName.DECK)),
466
+ ColName.NUM_OH: agg_col(pl.col(ColName.OPENING_HAND)),
467
+ ColName.OH_WR: agg_col(
468
+ pl.col(ColName.WON_OPENING_HAND) / pl.col(ColName.OPENING_HAND)
469
+ ),
470
+ ColName.NUM_GIH: agg_col(pl.col(ColName.OPENING_HAND) + pl.col(ColName.DRAWN)),
471
+ ColName.NUM_GIH_WON: agg_col(
472
+ pl.col(ColName.WON_OPENING_HAND) + pl.col(ColName.WON_DRAWN)
473
+ ),
474
+ ColName.GIH_WR: agg_col(pl.col(ColName.NUM_GIH_WON) / pl.col(ColName.NUM_GIH)),
475
+ ColName.GNS_WR: agg_col(pl.col(ColName.WON_NUM_GNS) / pl.col(ColName.NUM_GNS)),
476
+ ColName.IWD: agg_col(pl.col(ColName.GIH_WR) - pl.col(ColName.GNS_WR)),
477
+ ColName.NUM_IN_POOL: agg_col(pl.col(ColName.DECK) + pl.col(ColName.SIDEBOARD)),
478
+ ColName.NUM_IN_POOL_TOTAL: agg_col(pl.col(ColName.NUM_IN_POOL).sum()),
479
+ ColName.IN_POOL_WR: agg_col(
480
+ (pl.col(ColName.WON_DECK) + pl.col(ColName.WON_SIDEBOARD))
481
+ / pl.col(ColName.NUM_IN_POOL)
482
+ ),
483
+ ColName.DECK_TOTAL: agg_col(pl.col(ColName.DECK).sum()),
484
+ ColName.WON_DECK_TOTAL: agg_col(pl.col(ColName.WON_DECK).sum()),
485
+ ColName.GP_WR_MEAN: agg_col(pl.col(ColName.WON_DECK_TOTAL) / pl.col(ColName.DECK_TOTAL)),
486
+ ColName.GP_WR_EXCESS: agg_col(pl.col(ColName.GP_WR) - pl.col(ColName.GP_WR_MEAN)),
487
+ ColName.GP_WR_VAR: agg_col((pl.col(ColName.GP_WR_EXCESS).pow(2) * pl.col(ColName.NUM_GP)).sum()
488
+ / pl.col(ColName.DECK_TOTAL)
489
+ ),
490
+ ColName.GP_WR_STDEV: agg_col(pl.col(ColName.GP_WR_VAR).sqrt()),
491
+ ColName.GP_WR_Z: agg_col(pl.col(ColName.GP_WR_EXCESS) / pl.col(ColName.GP_WR_STDEV)),
492
+ ColName.GIH_TOTAL: agg_col(pl.col(ColName.NUM_GIH).sum()),
493
+ ColName.WON_GIH_TOTAL: agg_col(pl.col(ColName.NUM_GIH_WON).sum()),
494
+ ColName.GIH_WR_MEAN: agg_col(pl.col(ColName.WON_GIH_TOTAL) / pl.col(ColName.GIH_TOTAL)),
495
+ ColName.GIH_WR_EXCESS: agg_col(pl.col(ColName.GIH_WR) - pl.col(ColName.GIH_WR_MEAN)),
496
+ ColName.GIH_WR_VAR: agg_col(
497
+ (pl.col(ColName.GIH_WR_EXCESS).pow(2) * pl.col(ColName.NUM_GIH)).sum()
498
+ / pl.col(ColName.GIH_TOTAL)
499
+ ),
500
+ ColName.GIH_WR_STDEV: agg_col(pl.col(ColName.GIH_WR_VAR).sqrt()),
501
+ ColName.GIH_WR_Z: agg_col(pl.col(ColName.GIH_WR_EXCESS) / pl.col(ColName.GIH_WR_STDEV)),
502
+ ColName.DECK_MANA_VALUE_AVG: agg_col(pl.col(ColName.DECK_MANA_VALUE) / pl.col(ColName.DECK_SPELLS)),
503
+ ColName.DECK_LANDS_AVG: agg_col(pl.col(ColName.DECK_LANDS) / pl.col(ColName.NUM_GAMES)),
504
+ ColName.DECK_SPELLS_AVG: agg_col(pl.col(ColName.DECK_SPELLS) / pl.col(ColName.NUM_GAMES)),
587
505
  }
588
506
 
589
507
  for item in ColName:
spells/extension.py CHANGED
@@ -101,6 +101,10 @@ def context_cols(attr, silent: bool = True) -> dict[str, ColSpec]:
101
101
  [pl.col(f"seen_{attr}_{name}") for name in names]
102
102
  ),
103
103
  ),
104
+ f"not_picked_{attr}_sum": ColSpec(
105
+ col_type=ColType.PICK_SUM,
106
+ expr=pl.col(f"seen_{attr}_pack_sum") - pl.col(f"pick_{attr}_sum")
107
+ ),
104
108
  f"least_{attr}_seen": ColSpec(
105
109
  col_type=ColType.PICK_SUM,
106
110
  expr=lambda names: pl.min_horizontal(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: spells-mtg
3
- Version: 0.11.13
3
+ Version: 0.11.15
4
4
  Summary: analaysis of 17Lands.com public datasets
5
5
  Author-Email: Joel Barnes <oelarnes@gmail.com>
6
6
  License: MIT
@@ -5,19 +5,19 @@ spells/__init__.py,sha256=0pnh2NLn9FrNKncE9-tBsighp3e8YAsN--_ovUpgWGs,333
5
5
  spells/cache.py,sha256=6cl0q62erR3LCANPSfxG5-J7JQfLwNdWjzlBpfiL4IE,7174
6
6
  spells/card_data_files.py,sha256=HSD2z_5t6UEuE8S9rcBJBLlNxlPSeI9JE5lRLYrayD4,6626
7
7
  spells/cards.py,sha256=6stFPhJOzHqvQnkSv9cDeylRa_7L9Y8sOaowiZhzz6I,4174
8
- spells/columns.py,sha256=s_PYyg2QaRL6kLWFNKCBEfbMF0x7O7-Yd9SeG1ttYL4,18206
8
+ spells/columns.py,sha256=HsmOSunZHs0RMyXoSo-gAVWMNZqMYs3IrO5v5-99BqM,16678
9
9
  spells/config.py,sha256=Nym660bbYt4ijzC5scVJ6PVOh-4vBi4hfFusBIPxcZk,257
10
10
  spells/draft_data.py,sha256=iYsfmVRPy67GS3Epv8xakYVZQZIr0JbrZMFG0_wpLm4,21380
11
11
  spells/enums.py,sha256=gbwfon6tQCoKDb-m4hSaHWi9slj82yqaH3qhYMVrsck,4991
12
- spells/extension.py,sha256=LBqGbJbe7iSRQkxJK7npkADCfzhdnIwwVvlmTn8xvjQ,8454
12
+ spells/extension.py,sha256=iTR_2a_elM-8q8qxeeZFV8145i97fW2c3PfE3rN-HFg,8625
13
13
  spells/external.py,sha256=I-f_vMx-h2kvunUlZthsauaeDn42vcRk0wvTURfImzs,11848
14
14
  spells/filter.py,sha256=J-YTOOAzOQpvIX29tviYL04RVoOUlfsbjBXoQBDCEdQ,3380
15
15
  spells/log.py,sha256=3avmg65hru8K9npKLvPp1wWWxq-hoEYDUCbxqhPkKUw,2175
16
16
  spells/manifest.py,sha256=ExWVk17BRw615UmvrV817xwz457yfTNdNMNE_M00aEg,8338
17
17
  spells/schema.py,sha256=DbMvV8PIThJTp0Xzp_XIorlW6JhE1ud1kWRGf5SQ4_c,6406
18
18
  spells/utils.py,sha256=IO3brrXVvZla0LRTEB5v6NgGqZb_rYA46XtKBURGMNk,1944
19
- spells_mtg-0.11.13.dist-info/METADATA,sha256=WmOmiC_0cutxHDXtOI_Zuf_0ngvHa2-tnyAy5NsZOrI,47370
20
- spells_mtg-0.11.13.dist-info/WHEEL,sha256=9P2ygRxDrTJz3gsagc0Z96ukrxjr-LFBGOgv3AuKlCA,90
21
- spells_mtg-0.11.13.dist-info/entry_points.txt,sha256=a9Y1omdl9MdnKuIj3aOodgrp-zZII6OCdvqwgP6BFvI,63
22
- spells_mtg-0.11.13.dist-info/licenses/LICENSE,sha256=tS54XYbJSgmq5zuHhbsQGbNQLJPVgXqhF5nu2CSRMig,1068
23
- spells_mtg-0.11.13.dist-info/RECORD,,
19
+ spells_mtg-0.11.15.dist-info/METADATA,sha256=cwxrH2h-j26nu1luTkZ3hebXIUjfXH8kTAtNXqHopB0,47370
20
+ spells_mtg-0.11.15.dist-info/WHEEL,sha256=9P2ygRxDrTJz3gsagc0Z96ukrxjr-LFBGOgv3AuKlCA,90
21
+ spells_mtg-0.11.15.dist-info/entry_points.txt,sha256=a9Y1omdl9MdnKuIj3aOodgrp-zZII6OCdvqwgP6BFvI,63
22
+ spells_mtg-0.11.15.dist-info/licenses/LICENSE,sha256=tS54XYbJSgmq5zuHhbsQGbNQLJPVgXqhF5nu2CSRMig,1068
23
+ spells_mtg-0.11.15.dist-info/RECORD,,