termrender 0.7.0__tar.gz → 0.7.2__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 (45) hide show
  1. {termrender-0.7.0 → termrender-0.7.2}/CHANGELOG.md +23 -0
  2. {termrender-0.7.0 → termrender-0.7.2}/PKG-INFO +1 -1
  3. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/__main__.py +12 -20
  4. {termrender-0.7.0 → termrender-0.7.2}/.github/workflows/publish.yml +0 -0
  5. {termrender-0.7.0 → termrender-0.7.2}/.gitignore +0 -0
  6. {termrender-0.7.0 → termrender-0.7.2}/CLAUDE.md +0 -0
  7. {termrender-0.7.0 → termrender-0.7.2}/LICENSE +0 -0
  8. {termrender-0.7.0 → termrender-0.7.2}/README.md +0 -0
  9. {termrender-0.7.0 → termrender-0.7.2}/design.json +0 -0
  10. {termrender-0.7.0 → termrender-0.7.2}/pyproject.toml +0 -0
  11. {termrender-0.7.0 → termrender-0.7.2}/requirements.json +0 -0
  12. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/CLAUDE.md +0 -0
  13. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/__init__.py +0 -0
  14. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/blocks.py +0 -0
  15. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/emit.py +0 -0
  16. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/layout.py +0 -0
  17. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/parser.py +0 -0
  18. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/py.typed +0 -0
  19. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/renderers/CLAUDE.md +0 -0
  20. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/renderers/__init__.py +0 -0
  21. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/renderers/borders.py +0 -0
  22. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/renderers/charts.py +0 -0
  23. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/renderers/code.py +0 -0
  24. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/renderers/columns.py +0 -0
  25. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/renderers/diff.py +0 -0
  26. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/renderers/divider.py +0 -0
  27. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/renderers/mermaid.py +0 -0
  28. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/renderers/panel.py +0 -0
  29. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/renderers/quote.py +0 -0
  30. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/renderers/stat.py +0 -0
  31. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/renderers/table.py +0 -0
  32. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/renderers/text.py +0 -0
  33. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/renderers/timeline.py +0 -0
  34. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/renderers/tree.py +0 -0
  35. {termrender-0.7.0 → termrender-0.7.2}/src/termrender/style.py +0 -0
  36. {termrender-0.7.0 → termrender-0.7.2}/tests/__init__.py +0 -0
  37. {termrender-0.7.0 → termrender-0.7.2}/tests/test_charts.py +0 -0
  38. {termrender-0.7.0 → termrender-0.7.2}/tests/test_column_alignment.py +0 -0
  39. {termrender-0.7.0 → termrender-0.7.2}/tests/test_diff.py +0 -0
  40. {termrender-0.7.0 → termrender-0.7.2}/tests/test_inline_badge.py +0 -0
  41. {termrender-0.7.0 → termrender-0.7.2}/tests/test_myst_gaps.py +0 -0
  42. {termrender-0.7.0 → termrender-0.7.2}/tests/test_stat.py +0 -0
  43. {termrender-0.7.0 → termrender-0.7.2}/tests/test_tasklist.py +0 -0
  44. {termrender-0.7.0 → termrender-0.7.2}/tests/test_timeline.py +0 -0
  45. {termrender-0.7.0 → termrender-0.7.2}/tests/test_variable_colons.py +0 -0
@@ -1,6 +1,29 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v0.7.2 (2026-04-09)
5
+
6
+ ### Bug Fixes
7
+
8
+ - **cli**: Default --tmux pane to 1/3 window width
9
+ ([`d9c1bcc`](https://github.com/CaptainCrouton89/termrender/commit/d9c1bccbe95a4e5cf1f975b82cbafde6d9d3807a))
10
+
11
+ Instead of preview-rendering at 80 cols to measure content width, default to (window_width - 2) // 3
12
+ for a consistent 1/3 split.
13
+
14
+
15
+ ## v0.7.1 (2026-04-08)
16
+
17
+ ### Bug Fixes
18
+
19
+ - **cli**: Give --pane error paths actionable recovery guidance
20
+ ([`f857c32`](https://github.com/CaptainCrouton89/termrender/commit/f857c32c89afe32a3a668f03a3d570b0f14dae97))
21
+
22
+ The two --pane error paths now tell the agent how to recover instead of restating the problem.
23
+ "Check that the pane id is valid" is a dead end for an agent — it needs either a command to list
24
+ valid pane ids (tmux list-panes) or a fallback (spawn a fresh pane via --tmux).
25
+
26
+
4
27
  ## v0.7.0 (2026-04-08)
5
28
 
6
29
  ### Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: termrender
3
- Version: 0.7.0
3
+ Version: 0.7.2
4
4
  Summary: Rich terminal rendering of directive-flavored markdown
5
5
  Project-URL: Homepage, https://github.com/CaptainCrouton89/termrender
6
6
  Project-URL: Repository, https://github.com/CaptainCrouton89/termrender
@@ -334,35 +334,26 @@ def main() -> None:
334
334
  except (subprocess.CalledProcessError, ValueError, FileNotFoundError):
335
335
  _error(
336
336
  f"could not query tmux pane {args.pane}",
337
- fix="check that the pane id is valid (e.g. %23)",
337
+ fix="the pane may have been closed. "
338
+ "List active panes with: tmux list-panes -F '#{pane_id}' "
339
+ "Or spawn a fresh one with: termrender --tmux <file>",
338
340
  )
339
341
  pane_width = max(pane_width, 20)
340
342
  else:
341
343
  if args.width:
342
344
  pane_width = args.width
343
345
  else:
344
- # Preview render to measure content width
345
- from termrender.style import visual_len
346
+ # Default: 1/3 of window width (minus separator)
346
347
  try:
347
- preview = render(source, width=80, color=False)
348
- max_w = max(
349
- (visual_len(line) for line in preview.split('\n') if line),
350
- default=40,
348
+ result = subprocess.run(
349
+ ["tmux", "display-message", "-p", "#{window_width}"],
350
+ capture_output=True, text=True, check=True,
351
351
  )
352
- pane_width = max(max_w, 40)
352
+ window_width = int(result.stdout.strip())
353
+ pane_width = (window_width - 2) // 3
353
354
  except Exception:
354
- pane_width = 80
355
+ pane_width = 60
355
356
 
356
- # Cap to available tmux space (leave room for the source pane)
357
- try:
358
- result = subprocess.run(
359
- ["tmux", "display-message", "-p", "#{pane_width}"],
360
- capture_output=True, text=True, check=True,
361
- )
362
- available = int(result.stdout.strip())
363
- pane_width = min(pane_width, available - 10)
364
- except Exception:
365
- pass
366
357
  pane_width = max(pane_width, 20) # absolute minimum
367
358
 
368
359
  # Watch mode points the new pane at the user's real file so edits
@@ -431,7 +422,8 @@ def main() -> None:
431
422
  if args.pane:
432
423
  _error(
433
424
  f"failed to update tmux pane {args.pane}",
434
- hint="check that the pane id is still valid",
425
+ fix="the pane may have been closed. Spawn a fresh one with: "
426
+ "termrender --tmux <file>",
435
427
  )
436
428
  else:
437
429
  _error("failed to create tmux pane",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes