prezo 0.3.2__py3-none-any.whl → 2026.1.1__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.
prezo/app.py CHANGED
@@ -242,12 +242,12 @@ class PrezoApp(App):
242
242
  #slide-container {
243
243
  width: 1fr;
244
244
  height: 100%;
245
- padding: 1 4;
245
+ padding: 0 4 1 4;
246
246
  }
247
247
 
248
248
  #slide-content {
249
249
  width: 100%;
250
- padding: 1 2;
250
+ padding: 0 2;
251
251
  }
252
252
 
253
253
  /* Image container - hidden by default */
prezo/images/ascii.py CHANGED
@@ -4,6 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  from functools import lru_cache
6
6
  from pathlib import Path
7
+ from typing import cast
7
8
 
8
9
  # ASCII characters from dark to light
9
10
  ASCII_CHARS = " .:-=+*#%@"
@@ -68,8 +69,8 @@ class AsciiRenderer:
68
69
  # Resize
69
70
  img = img.resize((new_width, new_height))
70
71
 
71
- # Convert to ASCII
72
- pixels = list(img.getdata())
72
+ # Convert to ASCII (grayscale values 0-255)
73
+ pixels = cast("list[int]", list(img.get_flattened_data()))
73
74
  lines = []
74
75
 
75
76
  for y in range(new_height):
@@ -127,8 +128,8 @@ class ColorAsciiRenderer(AsciiRenderer):
127
128
  # Resize
128
129
  img = img.resize((new_width, new_height))
129
130
 
130
- # Convert to colored ASCII
131
- pixels = list(img.getdata())
131
+ # Convert to colored ASCII (RGB tuples)
132
+ pixels = cast("list[tuple[int, int, int]]", list(img.get_flattened_data()))
132
133
  lines = []
133
134
 
134
135
  for y in range(new_height):
@@ -190,7 +191,8 @@ class HalfBlockRenderer:
190
191
  new_height = new_height - (new_height % 2)
191
192
 
192
193
  img = img.resize((new_width, new_height))
193
- pixels = list(img.getdata())
194
+ # RGB tuples for half-block rendering
195
+ pixels = cast("list[tuple[int, int, int]]", list(img.get_flattened_data()))
194
196
 
195
197
  lines = []
196
198
  for y in range(0, new_height, 2):
prezo/images/sixel.py CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import TYPE_CHECKING
5
+ from typing import TYPE_CHECKING, cast
6
6
 
7
7
  if TYPE_CHECKING:
8
8
  from pathlib import Path
@@ -108,12 +108,12 @@ class SixelRenderer:
108
108
 
109
109
  img = img.resize((pixel_width, pixel_height))
110
110
 
111
- # Get palette
111
+ # Get palette and pixel data (palette indices 0-255)
112
112
  palette = img.getpalette()
113
- pixels = list(img.getdata())
113
+ pixels = cast("list[int]", list(img.get_flattened_data()))
114
114
 
115
115
  # Build sixel output
116
- output = []
116
+ output: list[str] = []
117
117
 
118
118
  # Start sixel sequence
119
119
  output.append("\x1bPq")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: prezo
3
- Version: 0.3.2
3
+ Version: 2026.1.1
4
4
  Summary: A TUI-based presentation tool for the terminal, built with Textual.
5
5
  Author: Stefane Fermigier
6
6
  Author-email: Stefane Fermigier <sf@fermigier.com>
@@ -135,6 +135,8 @@ Presenter notes go here (after ???)
135
135
  More content...
136
136
  ```
137
137
 
138
+ See the [Writing Presentations in Markdown](docs/tutorial.md) tutorial for a complete guide on creating presentations, including images, presenter notes, and configuration directives.
139
+
138
140
  ## Themes
139
141
 
140
142
  Available themes: `dark`, `light`, `dracula`, `solarized-dark`, `nord`, `gruvbox`
@@ -1,16 +1,16 @@
1
1
  prezo/__init__.py,sha256=blmZoW_bPndFLVT4UZzrfAp8IaGuvmFhtNGUs0nHpFQ,6434
2
- prezo/app.py,sha256=5D2o3VnrIODp25HzQcxTrIAkkSD5zPtpqb9t7sReT4o,32082
2
+ prezo/app.py,sha256=5K1tcinaTSI-X24bqV7W7fuwC0Wtw6IH_Gfy2RI3WMo,32086
3
3
  prezo/config.py,sha256=byBBFHZU3fkq3dRfg5h4zG_eihbi7lHZkriSv-g-ogY,6672
4
4
  prezo/export.py,sha256=1npeBV3m9_eTGhYHG7G-ekDGIRX4vNBgtt2RwpjLydc,23324
5
5
  prezo/images/__init__.py,sha256=xrWSR3z0SXYpLtjIvR2VOMxiJGkxEsls5-EOs9GecFA,324
6
- prezo/images/ascii.py,sha256=wA20WKpjdTzbdYZMEX-p-jH0LmCJYAA8vx1pBojPhXI,7381
6
+ prezo/images/ascii.py,sha256=aNz02jN4rkDw0WzmkGDrAGw1R1dY5QGREvIIPI6jwow,7613
7
7
  prezo/images/base.py,sha256=STuS57AVSJ2lzwyn0QrIceGaSd2IWEiLGN-elT3u3AM,2749
8
8
  prezo/images/chafa.py,sha256=rqqctIw5xQarEYz5SR-2a5ePJ3xbm0a3NWiLwxNBEUE,3726
9
9
  prezo/images/iterm.py,sha256=bSIN6qfOt3URTjbV-d963K2bX9KdfT5cBQQOrIivZPs,3742
10
10
  prezo/images/kitty.py,sha256=mWR-tIE_WDP5BjOkQydPpxWBBGNaZL8PkMICesWQid8,10883
11
11
  prezo/images/overlay.py,sha256=lWIAvINxZrKembtB0gzWWaUoedNt7beFU4OhErfwWaw,9600
12
12
  prezo/images/processor.py,sha256=zMcfwltecup_AX2FhUIlPdO7c87a9jw7P9tLTIkr54U,4069
13
- prezo/images/sixel.py,sha256=cV5X7wPiAt2PmRvDEha4GU_xKH6oq0OukY_suLsLsvU,5518
13
+ prezo/images/sixel.py,sha256=2IeKDiMsWU1Tn3HYI3PC972ygxKGqpfz6tnhQcM_sVM,5604
14
14
  prezo/parser.py,sha256=bD2MecHm7EssHd5LB2Bw6JuUqbjWPztWUu2meYwsyIQ,14793
15
15
  prezo/screens/__init__.py,sha256=xHG9jNJz4vi1tpneSEVlD0D9I0M2U4gAGk6-R9xbUf4,508
16
16
  prezo/screens/base.py,sha256=2n6Uj8evfIbcpn4AVYNG5iM_k7rIJ3Vwmor_xrQPU9E,2057
@@ -26,7 +26,7 @@ prezo/widgets/__init__.py,sha256=UeTHBgPDvqTkK5tTsPXhdJXP3qZefnltKtUtvJBx9m0,295
26
26
  prezo/widgets/image_display.py,sha256=8IKncaoC2iWebmJQp_QomF7UVgRxD4WThOshN1Nht2M,3361
27
27
  prezo/widgets/slide_button.py,sha256=g5mvtCZSorTIZp_PXgHYeYeeCSNFy0pW3K7iDlZu7yA,2012
28
28
  prezo/widgets/status_bar.py,sha256=Wcun71kg2Q4s5aduPwTvS4kDHZj5p-zDmD7Cx3_ZFP4,8136
29
- prezo-0.3.2.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
30
- prezo-0.3.2.dist-info/entry_points.txt,sha256=74ShZJ_EKjzi63JyPynVnc0uCHGNjIWjAVs8vU_qTyA,38
31
- prezo-0.3.2.dist-info/METADATA,sha256=f2T5YoA19gKl2ieEHDaVPIegl5Ky8NWTWarr8GDkhEE,4873
32
- prezo-0.3.2.dist-info/RECORD,,
29
+ prezo-2026.1.1.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
30
+ prezo-2026.1.1.dist-info/entry_points.txt,sha256=74ShZJ_EKjzi63JyPynVnc0uCHGNjIWjAVs8vU_qTyA,38
31
+ prezo-2026.1.1.dist-info/METADATA,sha256=b1ymsfoTcOMGVvcoTbb3OSucstuN2QmPz-te-beEjSM,5061
32
+ prezo-2026.1.1.dist-info/RECORD,,