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 +2 -2
- prezo/images/ascii.py +7 -5
- prezo/images/sixel.py +4 -4
- {prezo-0.3.2.dist-info → prezo-2026.1.1.dist-info}/METADATA +3 -1
- {prezo-0.3.2.dist-info → prezo-2026.1.1.dist-info}/RECORD +7 -7
- {prezo-0.3.2.dist-info → prezo-2026.1.1.dist-info}/WHEEL +0 -0
- {prezo-0.3.2.dist-info → prezo-2026.1.1.dist-info}/entry_points.txt +0 -0
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:
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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:
|
|
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=
|
|
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=
|
|
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=
|
|
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-
|
|
30
|
-
prezo-
|
|
31
|
-
prezo-
|
|
32
|
-
prezo-
|
|
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,,
|
|
File without changes
|
|
File without changes
|