fablazing-cli 0.2.0__tar.gz → 0.2.1__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.
Files changed (20) hide show
  1. {fablazing_cli-0.2.0 → fablazing_cli-0.2.1}/CHANGELOG.md +6 -0
  2. {fablazing_cli-0.2.0 → fablazing_cli-0.2.1}/PKG-INFO +1 -1
  3. {fablazing_cli-0.2.0 → fablazing_cli-0.2.1}/pyproject.toml +1 -1
  4. fablazing_cli-0.2.1/src/fablazing_cli/__init__.py +1 -0
  5. {fablazing_cli-0.2.0 → fablazing_cli-0.2.1}/src/fablazing_cli/commands/matchup.py +18 -1
  6. {fablazing_cli-0.2.0 → fablazing_cli-0.2.1}/src/fablazing_cli/reference.py +3 -1
  7. fablazing_cli-0.2.0/src/fablazing_cli/__init__.py +0 -1
  8. {fablazing_cli-0.2.0 → fablazing_cli-0.2.1}/.gitignore +0 -0
  9. {fablazing_cli-0.2.0 → fablazing_cli-0.2.1}/README.md +0 -0
  10. {fablazing_cli-0.2.0 → fablazing_cli-0.2.1}/src/fablazing_cli/client.py +0 -0
  11. {fablazing_cli-0.2.0 → fablazing_cli-0.2.1}/src/fablazing_cli/commands/__init__.py +0 -0
  12. {fablazing_cli-0.2.0 → fablazing_cli-0.2.1}/src/fablazing_cli/commands/auth.py +0 -0
  13. {fablazing_cli-0.2.0 → fablazing_cli-0.2.1}/src/fablazing_cli/commands/card.py +0 -0
  14. {fablazing_cli-0.2.0 → fablazing_cli-0.2.1}/src/fablazing_cli/commands/hero.py +0 -0
  15. {fablazing_cli-0.2.0 → fablazing_cli-0.2.1}/src/fablazing_cli/commands/meta.py +0 -0
  16. {fablazing_cli-0.2.0 → fablazing_cli-0.2.1}/src/fablazing_cli/commands/tournaments.py +0 -0
  17. {fablazing_cli-0.2.0 → fablazing_cli-0.2.1}/src/fablazing_cli/config.py +0 -0
  18. {fablazing_cli-0.2.0 → fablazing_cli-0.2.1}/src/fablazing_cli/main.py +0 -0
  19. {fablazing_cli-0.2.0 → fablazing_cli-0.2.1}/src/fablazing_cli/output.py +0 -0
  20. {fablazing_cli-0.2.0 → fablazing_cli-0.2.1}/src/fablazing_cli/resolve.py +0 -0
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.1
4
+
5
+ - Matchup: when no card clears the tech-card significance bar (common in
6
+ close matchups), show the closest candidates with their scores instead
7
+ of an empty section
8
+
3
9
  ## 0.2.0
4
10
 
5
11
  - `fabz meta matrix`: matchup matrix for the top-N heroes (win rate +
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fablazing-cli
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: Fablazing analytics from your terminal - Flesh and Blood matchups, meta, cards, and tournaments.
5
5
  Project-URL: Homepage, https://fablazing.com
6
6
  Author: Fablazing
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "fablazing-cli"
7
- version = "0.2.0"
7
+ version = "0.2.1"
8
8
  description = "Fablazing analytics from your terminal - Flesh and Blood matchups, meta, cards, and tournaments."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -0,0 +1 @@
1
+ __version__ = "0.2.1"
@@ -92,12 +92,29 @@ def matchup(
92
92
  c.get("card_id", ""),
93
93
  pct(c.get("frequency")),
94
94
  pct(c.get("win_rate")),
95
- f"+{c.get('wilson_improvement', 0) * 100:.1f}%",
95
+ f"{c.get('wilson_improvement', 0) * 100:+.1f}%",
96
96
  c.get("match_count", ""),
97
97
  ]
98
98
  for c in tech[:top]
99
99
  ]
100
100
  tables.append((f"{name} - tech cards (Wilson outperformers)", ["Card", "Freq", "WR", "Wilson delta", "Matches"], tech_rows))
101
+ candidates = data.get(f"{deck_key}_tech_candidates")
102
+ if not tech and candidates:
103
+ cand_rows = [
104
+ [
105
+ c.get("card_id", ""),
106
+ pct(c.get("frequency")),
107
+ pct(c.get("win_rate")),
108
+ f"{c.get('wilson_improvement', 0) * 100:+.1f}%",
109
+ c.get("match_count", ""),
110
+ ]
111
+ for c in candidates[:top]
112
+ ]
113
+ tables.append((
114
+ f"{name} - tech candidates (none met the significance bar)",
115
+ ["Card", "Freq", "WR", "Wilson delta", "Matches"],
116
+ cand_rows,
117
+ ))
101
118
 
102
119
  game_length = data.get("game_length") or {}
103
120
  turns = game_length.get("turns") or {}
@@ -33,7 +33,9 @@ analytics and paper tournament results for competitive Flesh and Blood.
33
33
  Teklovossen) are stored under their base hero id, with transform stats
34
34
  in deck1_transform / deck2_transform.
35
35
  - Tech cards are Wilson-scored against the matchup baseline, so a lucky
36
- streak on a small sample doesn't make the list.
36
+ streak on a small sample doesn't make the list. In close matchups no
37
+ card may clear the bar - then `tech_candidates` lists the closest
38
+ near-misses with their scores, explicitly marked below-threshold.
37
39
  - Tournament standings and decklists come from official paper events.
38
40
  - Freshness: `matchup` queries live match data (ingested every ~5
39
41
  minutes). Meta snapshot/movers and card trends/popular are daily
@@ -1 +0,0 @@
1
- __version__ = "0.2.0"
File without changes
File without changes