slab-cli 0.16.0__tar.gz → 0.17.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.
Files changed (34) hide show
  1. {slab_cli-0.16.0 → slab_cli-0.17.0}/PKG-INFO +2 -2
  2. {slab_cli-0.16.0 → slab_cli-0.17.0}/pyproject.toml +4 -2
  3. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/display.py +11 -0
  4. {slab_cli-0.16.0 → slab_cli-0.17.0}/README.md +0 -0
  5. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/__init__.py +0 -0
  6. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/banner.py +0 -0
  7. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/browse.py +0 -0
  8. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/client.py +0 -0
  9. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/commands/__init__.py +0 -0
  10. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/commands/breaks.py +0 -0
  11. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/commands/catalog.py +0 -0
  12. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/commands/collection.py +0 -0
  13. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/commands/custom_sets.py +0 -0
  14. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/commands/export.py +0 -0
  15. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/commands/lots.py +0 -0
  16. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/commands/pricing.py +0 -0
  17. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/commands/registry.py +0 -0
  18. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/commands/setup.py +0 -0
  19. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/commands/update.py +0 -0
  20. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/config.py +0 -0
  21. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/context.py +0 -0
  22. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/flags.py +0 -0
  23. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/help.py +0 -0
  24. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/main.py +0 -0
  25. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/paging.py +0 -0
  26. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/picker.py +0 -0
  27. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/platforms/__init__.py +0 -0
  28. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/platforms/base.py +0 -0
  29. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/platforms/posix.py +0 -0
  30. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/platforms/windows.py +0 -0
  31. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/prompts.py +0 -0
  32. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/sources.py +0 -0
  33. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/theme.py +0 -0
  34. {slab_cli-0.16.0 → slab_cli-0.17.0}/src/slab_cli/updates.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: slab-cli
3
- Version: 0.16.0
3
+ Version: 0.17.0
4
4
  Summary: CLI for the slab trading-card API — catalog, collect, and track your cards from the terminal.
5
5
  Author: dev_jeb
6
- Requires-Dist: slab-schemas>=0.31.0
6
+ Requires-Dist: slab-schemas>=0.32.0
7
7
  Requires-Dist: httpx>=0.27
8
8
  Requires-Dist: rich>=13.0
9
9
  Requires-Dist: inquirerpy>=0.3
@@ -1,13 +1,15 @@
1
1
  [project]
2
2
  name = "slab-cli"
3
- version = "0.16.0"
3
+ version = "0.17.0"
4
4
  description = "CLI for the slab trading-card API — catalog, collect, and track your cards from the terminal."
5
5
  readme = "README.md"
6
6
  authors = [{name = "dev_jeb"}]
7
7
  requires-python = ">=3.13"
8
8
  dependencies = [
9
9
  # 0.31: CardSearchQuery.collapse_parallels — `card search` sends it on every query.
10
- "slab-schemas>=0.31.0",
10
+ # 0.32 adds CompOut.grade_unconfirmed; older schemas drop the field on parse and the
11
+ # comps table silently loses its grade-sanity "?" marker.
12
+ "slab-schemas>=0.32.0",
11
13
  "httpx>=0.27",
12
14
  "rich>=13.0",
13
15
  "InquirerPy>=0.3",
@@ -1116,10 +1116,16 @@ def render_comps(c: CardComps) -> None:
1116
1116
  ("Title", {}),
1117
1117
  ])
1118
1118
 
1119
+ flagged = 0
1119
1120
  for comp in c.comps:
1120
1121
  when = comp.sold_date.isoformat() if comp.sold_date else "—"
1121
1122
  price = money(comp.sale_price) if comp.sale_price is not None else "—"
1122
1123
  grade = comp.grade_key or "—"
1124
+ # Grade sanity: "RAW" only means the title named no grade. A raw-labeled sale priced
1125
+ # like this card's graded copies is probably a graded sale with a terse title.
1126
+ if getattr(comp, "grade_unconfirmed", False):
1127
+ grade = f"[slab.warn]{grade}?[/]"
1128
+ flagged += 1
1123
1129
  market = comp.marketplace or "—"
1124
1130
  sale_type = comp.sale_type or "—"
1125
1131
  title = comp.title if len(comp.title) <= 50 else comp.title[:49] + "…"
@@ -1127,6 +1133,11 @@ def render_comps(c: CardComps) -> None:
1127
1133
 
1128
1134
  console.print(heading("Recent Comps", f"showing {len(c.comps)} of {c.total}"))
1129
1135
  console.print(table)
1136
+ if flagged:
1137
+ console.print(
1138
+ f" [slab.dim]? = grade unconfirmed: no grade in the listing title, but priced like "
1139
+ f"this card's graded copies — likely a graded sale, so don't read it as raw value.[/]"
1140
+ )
1130
1141
  console.print()
1131
1142
 
1132
1143
 
File without changes