nbcat 0.9.6__tar.gz → 0.11.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.
- {nbcat-0.9.6 → nbcat-0.11.0}/PKG-INFO +2 -1
- {nbcat-0.9.6 → nbcat-0.11.0}/pyproject.toml +2 -1
- nbcat-0.11.0/src/nbcat/__init__.py +1 -0
- nbcat-0.11.0/src/nbcat/image.py +31 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/src/nbcat/main.py +27 -33
- {nbcat-0.9.6 → nbcat-0.11.0}/src/nbcat/schemas.py +1 -1
- {nbcat-0.9.6 → nbcat-0.11.0}/tests/test_render_cell.py +6 -18
- {nbcat-0.9.6 → nbcat-0.11.0}/uv.lock +103 -1
- nbcat-0.9.6/src/nbcat/__init__.py +0 -1
- {nbcat-0.9.6 → nbcat-0.11.0}/.github/workflows/ci.yml +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/.gitignore +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/LICENSE +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/Makefile +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/README.md +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/docs/screenshot.png +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/src/nbcat/enums.py +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/src/nbcat/exceptions.py +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/src/nbcat/markdown.py +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/src/nbcat/py.typed +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/tests/assets/invalid.ipynb +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/tests/assets/many_tracebacks.ipynb +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/tests/assets/no_min_version.ipynb +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/tests/assets/test3.ipynb +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/tests/assets/test3_no_metadata.ipynb +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/tests/assets/test3_no_min_version.ipynb +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/tests/assets/test3_no_worksheets.ipynb +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/tests/assets/test3_worksheet_with_no_cells.ipynb +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/tests/assets/test4.5.ipynb +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/tests/assets/test4.ipynb +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/tests/assets/test4custom.ipynb +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/tests/assets/test4docinfo.ipynb +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/tests/assets/test4jupyter_metadata.ipynb +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/tests/assets/test4jupyter_metadata_timings.ipynb +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/tests/conftest.py +0 -0
- {nbcat-0.9.6 → nbcat-0.11.0}/tests/test_read_notebook.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: nbcat
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.11.0
|
4
4
|
Summary: cat for jupyter notebooks
|
5
5
|
Project-URL: Homepage, https://github.com/akopdev/nbcat
|
6
6
|
Project-URL: Repository, https://github.com/akopdev/nbcat
|
@@ -33,6 +33,7 @@ Requires-Dist: argcomplete
|
|
33
33
|
Requires-Dist: pydantic
|
34
34
|
Requires-Dist: requests
|
35
35
|
Requires-Dist: rich
|
36
|
+
Requires-Dist: timg
|
36
37
|
Provides-Extra: dev
|
37
38
|
Requires-Dist: pytest; extra == 'dev'
|
38
39
|
Requires-Dist: pytest-cov; extra == 'dev'
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "nbcat"
|
3
|
-
version = "0.
|
3
|
+
version = "0.11.0"
|
4
4
|
description = "cat for jupyter notebooks"
|
5
5
|
authors = [
|
6
6
|
{ name = "Akop Kesheshyan", email = "devnull@akop.dev" }
|
@@ -16,6 +16,7 @@ dependencies = [
|
|
16
16
|
"requests",
|
17
17
|
"pydantic",
|
18
18
|
"rich",
|
19
|
+
"timg",
|
19
20
|
]
|
20
21
|
|
21
22
|
[project.optional-dependencies]
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.11.0"
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import base64
|
2
|
+
import shutil
|
3
|
+
from io import BytesIO
|
4
|
+
from platform import system
|
5
|
+
|
6
|
+
from PIL import Image as PilImage
|
7
|
+
from rich.console import Console, ConsoleOptions, RenderResult
|
8
|
+
from rich.text import Text
|
9
|
+
from timg import METHODS, Renderer
|
10
|
+
|
11
|
+
|
12
|
+
class Image:
|
13
|
+
def __init__(self, image: str, method: str = "a24h"):
|
14
|
+
img = BytesIO(base64.b64decode(image.replace("\n", "")))
|
15
|
+
self.image = PilImage.open(img)
|
16
|
+
self.method = method if system() != "Windows" else "ascii"
|
17
|
+
|
18
|
+
def __rich_console__(self, console: Console, options: ConsoleOptions) -> RenderResult:
|
19
|
+
renderer = Renderer()
|
20
|
+
renderer.load_image(self.image)
|
21
|
+
width = shutil.get_terminal_size()[0] - 1
|
22
|
+
if self.method == "sixel":
|
23
|
+
width = width * 6
|
24
|
+
|
25
|
+
renderer.resize(width)
|
26
|
+
|
27
|
+
if self.method == "sixel":
|
28
|
+
renderer.reduce_colors(16)
|
29
|
+
|
30
|
+
output = renderer.to_string(METHODS[self.method]["class"])
|
31
|
+
yield Text.from_ansi(output, no_wrap=True, end="")
|
@@ -1,18 +1,17 @@
|
|
1
1
|
import argparse
|
2
2
|
import sys
|
3
3
|
from pathlib import Path
|
4
|
-
from typing import Union
|
5
4
|
|
6
5
|
import argcomplete
|
7
6
|
import requests
|
8
7
|
from argcomplete.completers import FilesCompleter
|
9
8
|
from pydantic import ValidationError
|
10
9
|
from rich import box
|
11
|
-
from rich.console import Console, RenderableType
|
10
|
+
from rich.console import Console, Group, RenderableType
|
11
|
+
from rich.padding import Padding
|
12
12
|
from rich.panel import Panel
|
13
13
|
from rich.pretty import Pretty
|
14
14
|
from rich.syntax import Syntax
|
15
|
-
from rich.table import Table
|
16
15
|
from rich.text import Text
|
17
16
|
|
18
17
|
from . import __version__
|
@@ -22,6 +21,7 @@ from .exceptions import (
|
|
22
21
|
NotebookNotFoundError,
|
23
22
|
UnsupportedNotebookTypeError,
|
24
23
|
)
|
24
|
+
from .image import Image
|
25
25
|
from .markdown import Markdown
|
26
26
|
from .schemas import Cell, Notebook
|
27
27
|
|
@@ -68,7 +68,7 @@ def read_notebook(fp: str, debug: bool = False) -> Notebook:
|
|
68
68
|
raise InvalidNotebookFormatError(f"Invalid notebook: {e}")
|
69
69
|
|
70
70
|
|
71
|
-
def render_cell(cell: Cell) ->
|
71
|
+
def render_cell(cell: Cell) -> RenderableType:
|
72
72
|
"""
|
73
73
|
Render the content of a notebook cell for display.
|
74
74
|
|
@@ -85,16 +85,18 @@ def render_cell(cell: Cell) -> list[tuple[Union[str, None], RenderableType]]:
|
|
85
85
|
"""
|
86
86
|
|
87
87
|
def _render_markdown(input: str) -> Markdown:
|
88
|
-
return Markdown(input)
|
88
|
+
return Markdown(input, code_theme="ansi_dark")
|
89
89
|
|
90
|
-
def _render_code(input: str) -> Panel:
|
91
|
-
return Panel(
|
90
|
+
def _render_code(input: str, language: str = "python") -> Panel:
|
91
|
+
return Panel(
|
92
|
+
Syntax(input, language, line_numbers=True, theme="ansi_dark", dedent=True), padding=0
|
93
|
+
)
|
92
94
|
|
93
95
|
def _render_raw(input: str) -> Text:
|
94
96
|
return Text(input)
|
95
97
|
|
96
|
-
def _render_image(input: str) ->
|
97
|
-
return
|
98
|
+
def _render_image(input: str) -> Image:
|
99
|
+
return Image(input)
|
98
100
|
|
99
101
|
def _render_json(input: str) -> Pretty:
|
100
102
|
return Pretty(input)
|
@@ -110,31 +112,21 @@ def render_cell(cell: Cell) -> list[tuple[Union[str, None], RenderableType]]:
|
|
110
112
|
OutputCellType.JSON: _render_json,
|
111
113
|
}
|
112
114
|
|
113
|
-
rows: list[
|
115
|
+
rows: list[RenderableType] = []
|
114
116
|
renderer = RENDERERS.get(cell.cell_type)
|
115
117
|
source = renderer(cell.input) if renderer else None
|
116
118
|
if source:
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
label,
|
121
|
-
source,
|
122
|
-
)
|
123
|
-
)
|
119
|
+
rows.append(Padding(source, (1, 0)))
|
120
|
+
if not cell.outputs:
|
121
|
+
return source
|
124
122
|
|
125
123
|
for o in cell.outputs:
|
126
124
|
if o.output:
|
127
125
|
renderer = RENDERERS.get(o.output.output_type)
|
128
126
|
output = renderer(o.output.text) if renderer else None
|
129
127
|
if output:
|
130
|
-
|
131
|
-
|
132
|
-
(
|
133
|
-
label,
|
134
|
-
output,
|
135
|
-
)
|
136
|
-
)
|
137
|
-
return rows
|
128
|
+
rows.append(Panel(output, style="italic", box=box.MINIMAL))
|
129
|
+
return Group(*rows)
|
138
130
|
|
139
131
|
|
140
132
|
def print_notebook(nb: Notebook):
|
@@ -148,15 +140,17 @@ def print_notebook(nb: Notebook):
|
|
148
140
|
console.print("[bold red]Notebook contains no cells.")
|
149
141
|
return
|
150
142
|
|
151
|
-
layout = Table.grid(padding=1)
|
152
|
-
layout.add_column(no_wrap=True, width=6)
|
153
|
-
layout.add_column()
|
154
|
-
|
155
143
|
for cell in nb.cells:
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
144
|
+
rendered = render_cell(cell)
|
145
|
+
if isinstance(rendered, Group):
|
146
|
+
out = Panel(
|
147
|
+
rendered,
|
148
|
+
title=f"[green][{cell.execution_count}][/]" if cell.execution_count else None,
|
149
|
+
title_align="left",
|
150
|
+
)
|
151
|
+
else:
|
152
|
+
out = Padding(rendered, (1, 0))
|
153
|
+
console.print(out)
|
160
154
|
|
161
155
|
|
162
156
|
def main():
|
@@ -34,7 +34,7 @@ class DisplayDataOutput(BaseOutput):
|
|
34
34
|
def output(self) -> Union[CellOutput, None]:
|
35
35
|
data_type_map = {
|
36
36
|
"text/html": OutputCellType.HTML,
|
37
|
-
"
|
37
|
+
"image/png": OutputCellType.IMAGE,
|
38
38
|
"text/plain": OutputCellType.PLAIN,
|
39
39
|
"application/vnd.raw.v1+json": OutputCellType.JSON,
|
40
40
|
}
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import pytest
|
2
|
+
from rich.console import Group, RenderableType
|
2
3
|
from rich.markdown import Markdown
|
3
4
|
from rich.panel import Panel
|
4
5
|
from rich.text import Text
|
@@ -16,14 +17,11 @@ from nbcat.schemas import Cell, StreamOutput
|
|
16
17
|
("heading", "Heading text", Markdown),
|
17
18
|
],
|
18
19
|
)
|
19
|
-
def test_render_cell_input_rendering(cell_type: str, source: str, expected):
|
20
|
+
def test_render_cell_input_rendering(cell_type: str, source: str, expected: RenderableType):
|
20
21
|
cell = Cell(cell_type=cell_type, source=source, execution_count=42, outputs=[])
|
21
22
|
rendered = render_cell(cell)
|
22
23
|
|
23
|
-
assert
|
24
|
-
label, content = rendered[0]
|
25
|
-
assert label == "[green][42][/]"
|
26
|
-
assert isinstance(content, expected)
|
24
|
+
assert isinstance(rendered, expected)
|
27
25
|
|
28
26
|
|
29
27
|
def test_render_cell_with_outputs():
|
@@ -39,16 +37,8 @@ def test_render_cell_with_outputs():
|
|
39
37
|
|
40
38
|
rendered = render_cell(cell)
|
41
39
|
|
42
|
-
|
43
|
-
assert len(rendered) == 3
|
44
|
-
assert rendered[0][0] is None
|
45
|
-
assert isinstance(rendered[0][1], Panel)
|
46
|
-
|
47
|
-
assert rendered[1][0] == "[blue][7][/]"
|
48
|
-
assert isinstance(rendered[1][1], Text)
|
49
|
-
|
50
|
-
assert rendered[2][0] is None
|
51
|
-
assert isinstance(rendered[2][1], Text)
|
40
|
+
assert isinstance(rendered, Group)
|
41
|
+
assert len(rendered.renderables) == 3
|
52
42
|
|
53
43
|
|
54
44
|
def test_render_cell_skips_empty_outputs():
|
@@ -62,6 +52,4 @@ def test_render_cell_skips_empty_outputs():
|
|
62
52
|
|
63
53
|
rendered = render_cell(cell)
|
64
54
|
|
65
|
-
assert
|
66
|
-
assert rendered[0][0] == "[green][1][/]"
|
67
|
-
assert isinstance(rendered[0][1], Text)
|
55
|
+
assert isinstance(rendered, Group)
|
@@ -237,13 +237,14 @@ wheels = [
|
|
237
237
|
|
238
238
|
[[package]]
|
239
239
|
name = "nbcat"
|
240
|
-
version = "0.
|
240
|
+
version = "0.11.0"
|
241
241
|
source = { editable = "." }
|
242
242
|
dependencies = [
|
243
243
|
{ name = "argcomplete" },
|
244
244
|
{ name = "pydantic" },
|
245
245
|
{ name = "requests" },
|
246
246
|
{ name = "rich" },
|
247
|
+
{ name = "timg" },
|
247
248
|
]
|
248
249
|
|
249
250
|
[package.optional-dependencies]
|
@@ -266,6 +267,7 @@ requires-dist = [
|
|
266
267
|
{ name = "requests" },
|
267
268
|
{ name = "rich" },
|
268
269
|
{ name = "ruff", marker = "extra == 'dev'" },
|
270
|
+
{ name = "timg" },
|
269
271
|
]
|
270
272
|
provides-extras = ["dev"]
|
271
273
|
|
@@ -278,6 +280,94 @@ wheels = [
|
|
278
280
|
{ url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469 },
|
279
281
|
]
|
280
282
|
|
283
|
+
[[package]]
|
284
|
+
name = "pillow"
|
285
|
+
version = "11.2.1"
|
286
|
+
source = { registry = "https://pypi.org/simple" }
|
287
|
+
sdist = { url = "https://files.pythonhosted.org/packages/af/cb/bb5c01fcd2a69335b86c22142b2bccfc3464087efb7fd382eee5ffc7fdf7/pillow-11.2.1.tar.gz", hash = "sha256:a64dd61998416367b7ef979b73d3a85853ba9bec4c2925f74e588879a58716b6", size = 47026707 }
|
288
|
+
wheels = [
|
289
|
+
{ url = "https://files.pythonhosted.org/packages/0d/8b/b158ad57ed44d3cc54db8d68ad7c0a58b8fc0e4c7a3f995f9d62d5b464a1/pillow-11.2.1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:d57a75d53922fc20c165016a20d9c44f73305e67c351bbc60d1adaf662e74047", size = 3198442 },
|
290
|
+
{ url = "https://files.pythonhosted.org/packages/b1/f8/bb5d956142f86c2d6cc36704943fa761f2d2e4c48b7436fd0a85c20f1713/pillow-11.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:127bf6ac4a5b58b3d32fc8289656f77f80567d65660bc46f72c0d77e6600cc95", size = 3030553 },
|
291
|
+
{ url = "https://files.pythonhosted.org/packages/22/7f/0e413bb3e2aa797b9ca2c5c38cb2e2e45d88654e5b12da91ad446964cfae/pillow-11.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4ba4be812c7a40280629e55ae0b14a0aafa150dd6451297562e1764808bbe61", size = 4405503 },
|
292
|
+
{ url = "https://files.pythonhosted.org/packages/f3/b4/cc647f4d13f3eb837d3065824aa58b9bcf10821f029dc79955ee43f793bd/pillow-11.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8bd62331e5032bc396a93609982a9ab6b411c05078a52f5fe3cc59234a3abd1", size = 4490648 },
|
293
|
+
{ url = "https://files.pythonhosted.org/packages/c2/6f/240b772a3b35cdd7384166461567aa6713799b4e78d180c555bd284844ea/pillow-11.2.1-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:562d11134c97a62fe3af29581f083033179f7ff435f78392565a1ad2d1c2c45c", size = 4508937 },
|
294
|
+
{ url = "https://files.pythonhosted.org/packages/f3/5e/7ca9c815ade5fdca18853db86d812f2f188212792780208bdb37a0a6aef4/pillow-11.2.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:c97209e85b5be259994eb5b69ff50c5d20cca0f458ef9abd835e262d9d88b39d", size = 4599802 },
|
295
|
+
{ url = "https://files.pythonhosted.org/packages/02/81/c3d9d38ce0c4878a77245d4cf2c46d45a4ad0f93000227910a46caff52f3/pillow-11.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0c3e6d0f59171dfa2e25d7116217543310908dfa2770aa64b8f87605f8cacc97", size = 4576717 },
|
296
|
+
{ url = "https://files.pythonhosted.org/packages/42/49/52b719b89ac7da3185b8d29c94d0e6aec8140059e3d8adcaa46da3751180/pillow-11.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc1c3bc53befb6096b84165956e886b1729634a799e9d6329a0c512ab651e579", size = 4654874 },
|
297
|
+
{ url = "https://files.pythonhosted.org/packages/5b/0b/ede75063ba6023798267023dc0d0401f13695d228194d2242d5a7ba2f964/pillow-11.2.1-cp310-cp310-win32.whl", hash = "sha256:312c77b7f07ab2139924d2639860e084ec2a13e72af54d4f08ac843a5fc9c79d", size = 2331717 },
|
298
|
+
{ url = "https://files.pythonhosted.org/packages/ed/3c/9831da3edea527c2ed9a09f31a2c04e77cd705847f13b69ca60269eec370/pillow-11.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:9bc7ae48b8057a611e5fe9f853baa88093b9a76303937449397899385da06fad", size = 2676204 },
|
299
|
+
{ url = "https://files.pythonhosted.org/packages/01/97/1f66ff8a1503d8cbfc5bae4dc99d54c6ec1e22ad2b946241365320caabc2/pillow-11.2.1-cp310-cp310-win_arm64.whl", hash = "sha256:2728567e249cdd939f6cc3d1f049595c66e4187f3c34078cbc0a7d21c47482d2", size = 2414767 },
|
300
|
+
{ url = "https://files.pythonhosted.org/packages/68/08/3fbf4b98924c73037a8e8b4c2c774784805e0fb4ebca6c5bb60795c40125/pillow-11.2.1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:35ca289f712ccfc699508c4658a1d14652e8033e9b69839edf83cbdd0ba39e70", size = 3198450 },
|
301
|
+
{ url = "https://files.pythonhosted.org/packages/84/92/6505b1af3d2849d5e714fc75ba9e69b7255c05ee42383a35a4d58f576b16/pillow-11.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0409af9f829f87a2dfb7e259f78f317a5351f2045158be321fd135973fff7bf", size = 3030550 },
|
302
|
+
{ url = "https://files.pythonhosted.org/packages/3c/8c/ac2f99d2a70ff966bc7eb13dacacfaab57c0549b2ffb351b6537c7840b12/pillow-11.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4e5c5edee874dce4f653dbe59db7c73a600119fbea8d31f53423586ee2aafd7", size = 4415018 },
|
303
|
+
{ url = "https://files.pythonhosted.org/packages/1f/e3/0a58b5d838687f40891fff9cbaf8669f90c96b64dc8f91f87894413856c6/pillow-11.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b93a07e76d13bff9444f1a029e0af2964e654bfc2e2c2d46bfd080df5ad5f3d8", size = 4498006 },
|
304
|
+
{ url = "https://files.pythonhosted.org/packages/21/f5/6ba14718135f08fbfa33308efe027dd02b781d3f1d5c471444a395933aac/pillow-11.2.1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:e6def7eed9e7fa90fde255afaf08060dc4b343bbe524a8f69bdd2a2f0018f600", size = 4517773 },
|
305
|
+
{ url = "https://files.pythonhosted.org/packages/20/f2/805ad600fc59ebe4f1ba6129cd3a75fb0da126975c8579b8f57abeb61e80/pillow-11.2.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:8f4f3724c068be008c08257207210c138d5f3731af6c155a81c2b09a9eb3a788", size = 4607069 },
|
306
|
+
{ url = "https://files.pythonhosted.org/packages/71/6b/4ef8a288b4bb2e0180cba13ca0a519fa27aa982875882392b65131401099/pillow-11.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a0a6709b47019dff32e678bc12c63008311b82b9327613f534e496dacaefb71e", size = 4583460 },
|
307
|
+
{ url = "https://files.pythonhosted.org/packages/62/ae/f29c705a09cbc9e2a456590816e5c234382ae5d32584f451c3eb41a62062/pillow-11.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f6b0c664ccb879109ee3ca702a9272d877f4fcd21e5eb63c26422fd6e415365e", size = 4661304 },
|
308
|
+
{ url = "https://files.pythonhosted.org/packages/6e/1a/c8217b6f2f73794a5e219fbad087701f412337ae6dbb956db37d69a9bc43/pillow-11.2.1-cp311-cp311-win32.whl", hash = "sha256:cc5d875d56e49f112b6def6813c4e3d3036d269c008bf8aef72cd08d20ca6df6", size = 2331809 },
|
309
|
+
{ url = "https://files.pythonhosted.org/packages/e2/72/25a8f40170dc262e86e90f37cb72cb3de5e307f75bf4b02535a61afcd519/pillow-11.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:0f5c7eda47bf8e3c8a283762cab94e496ba977a420868cb819159980b6709193", size = 2676338 },
|
310
|
+
{ url = "https://files.pythonhosted.org/packages/06/9e/76825e39efee61efea258b479391ca77d64dbd9e5804e4ad0fa453b4ba55/pillow-11.2.1-cp311-cp311-win_arm64.whl", hash = "sha256:4d375eb838755f2528ac8cbc926c3e31cc49ca4ad0cf79cff48b20e30634a4a7", size = 2414918 },
|
311
|
+
{ url = "https://files.pythonhosted.org/packages/c7/40/052610b15a1b8961f52537cc8326ca6a881408bc2bdad0d852edeb6ed33b/pillow-11.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:78afba22027b4accef10dbd5eed84425930ba41b3ea0a86fa8d20baaf19d807f", size = 3190185 },
|
312
|
+
{ url = "https://files.pythonhosted.org/packages/e5/7e/b86dbd35a5f938632093dc40d1682874c33dcfe832558fc80ca56bfcb774/pillow-11.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:78092232a4ab376a35d68c4e6d5e00dfd73454bd12b230420025fbe178ee3b0b", size = 3030306 },
|
313
|
+
{ url = "https://files.pythonhosted.org/packages/a4/5c/467a161f9ed53e5eab51a42923c33051bf8d1a2af4626ac04f5166e58e0c/pillow-11.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25a5f306095c6780c52e6bbb6109624b95c5b18e40aab1c3041da3e9e0cd3e2d", size = 4416121 },
|
314
|
+
{ url = "https://files.pythonhosted.org/packages/62/73/972b7742e38ae0e2ac76ab137ca6005dcf877480da0d9d61d93b613065b4/pillow-11.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c7b29dbd4281923a2bfe562acb734cee96bbb129e96e6972d315ed9f232bef4", size = 4501707 },
|
315
|
+
{ url = "https://files.pythonhosted.org/packages/e4/3a/427e4cb0b9e177efbc1a84798ed20498c4f233abde003c06d2650a6d60cb/pillow-11.2.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:3e645b020f3209a0181a418bffe7b4a93171eef6c4ef6cc20980b30bebf17b7d", size = 4522921 },
|
316
|
+
{ url = "https://files.pythonhosted.org/packages/fe/7c/d8b1330458e4d2f3f45d9508796d7caf0c0d3764c00c823d10f6f1a3b76d/pillow-11.2.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:b2dbea1012ccb784a65349f57bbc93730b96e85b42e9bf7b01ef40443db720b4", size = 4612523 },
|
317
|
+
{ url = "https://files.pythonhosted.org/packages/b3/2f/65738384e0b1acf451de5a573d8153fe84103772d139e1e0bdf1596be2ea/pillow-11.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:da3104c57bbd72948d75f6a9389e6727d2ab6333c3617f0a89d72d4940aa0443", size = 4587836 },
|
318
|
+
{ url = "https://files.pythonhosted.org/packages/6a/c5/e795c9f2ddf3debb2dedd0df889f2fe4b053308bb59a3cc02a0cd144d641/pillow-11.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:598174aef4589af795f66f9caab87ba4ff860ce08cd5bb447c6fc553ffee603c", size = 4669390 },
|
319
|
+
{ url = "https://files.pythonhosted.org/packages/96/ae/ca0099a3995976a9fce2f423166f7bff9b12244afdc7520f6ed38911539a/pillow-11.2.1-cp312-cp312-win32.whl", hash = "sha256:1d535df14716e7f8776b9e7fee118576d65572b4aad3ed639be9e4fa88a1cad3", size = 2332309 },
|
320
|
+
{ url = "https://files.pythonhosted.org/packages/7c/18/24bff2ad716257fc03da964c5e8f05d9790a779a8895d6566e493ccf0189/pillow-11.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:14e33b28bf17c7a38eede290f77db7c664e4eb01f7869e37fa98a5aa95978941", size = 2676768 },
|
321
|
+
{ url = "https://files.pythonhosted.org/packages/da/bb/e8d656c9543276517ee40184aaa39dcb41e683bca121022f9323ae11b39d/pillow-11.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:21e1470ac9e5739ff880c211fc3af01e3ae505859392bf65458c224d0bf283eb", size = 2415087 },
|
322
|
+
{ url = "https://files.pythonhosted.org/packages/36/9c/447528ee3776e7ab8897fe33697a7ff3f0475bb490c5ac1456a03dc57956/pillow-11.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fdec757fea0b793056419bca3e9932eb2b0ceec90ef4813ea4c1e072c389eb28", size = 3190098 },
|
323
|
+
{ url = "https://files.pythonhosted.org/packages/b5/09/29d5cd052f7566a63e5b506fac9c60526e9ecc553825551333e1e18a4858/pillow-11.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b0e130705d568e2f43a17bcbe74d90958e8a16263868a12c3e0d9c8162690830", size = 3030166 },
|
324
|
+
{ url = "https://files.pythonhosted.org/packages/71/5d/446ee132ad35e7600652133f9c2840b4799bbd8e4adba881284860da0a36/pillow-11.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bdb5e09068332578214cadd9c05e3d64d99e0e87591be22a324bdbc18925be0", size = 4408674 },
|
325
|
+
{ url = "https://files.pythonhosted.org/packages/69/5f/cbe509c0ddf91cc3a03bbacf40e5c2339c4912d16458fcb797bb47bcb269/pillow-11.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d189ba1bebfbc0c0e529159631ec72bb9e9bc041f01ec6d3233d6d82eb823bc1", size = 4496005 },
|
326
|
+
{ url = "https://files.pythonhosted.org/packages/f9/b3/dd4338d8fb8a5f312021f2977fb8198a1184893f9b00b02b75d565c33b51/pillow-11.2.1-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:191955c55d8a712fab8934a42bfefbf99dd0b5875078240943f913bb66d46d9f", size = 4518707 },
|
327
|
+
{ url = "https://files.pythonhosted.org/packages/13/eb/2552ecebc0b887f539111c2cd241f538b8ff5891b8903dfe672e997529be/pillow-11.2.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:ad275964d52e2243430472fc5d2c2334b4fc3ff9c16cb0a19254e25efa03a155", size = 4610008 },
|
328
|
+
{ url = "https://files.pythonhosted.org/packages/72/d1/924ce51bea494cb6e7959522d69d7b1c7e74f6821d84c63c3dc430cbbf3b/pillow-11.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:750f96efe0597382660d8b53e90dd1dd44568a8edb51cb7f9d5d918b80d4de14", size = 4585420 },
|
329
|
+
{ url = "https://files.pythonhosted.org/packages/43/ab/8f81312d255d713b99ca37479a4cb4b0f48195e530cdc1611990eb8fd04b/pillow-11.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fe15238d3798788d00716637b3d4e7bb6bde18b26e5d08335a96e88564a36b6b", size = 4667655 },
|
330
|
+
{ url = "https://files.pythonhosted.org/packages/94/86/8f2e9d2dc3d308dfd137a07fe1cc478df0a23d42a6c4093b087e738e4827/pillow-11.2.1-cp313-cp313-win32.whl", hash = "sha256:3fe735ced9a607fee4f481423a9c36701a39719252a9bb251679635f99d0f7d2", size = 2332329 },
|
331
|
+
{ url = "https://files.pythonhosted.org/packages/6d/ec/1179083b8d6067a613e4d595359b5fdea65d0a3b7ad623fee906e1b3c4d2/pillow-11.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:74ee3d7ecb3f3c05459ba95eed5efa28d6092d751ce9bf20e3e253a4e497e691", size = 2676388 },
|
332
|
+
{ url = "https://files.pythonhosted.org/packages/23/f1/2fc1e1e294de897df39fa8622d829b8828ddad938b0eaea256d65b84dd72/pillow-11.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:5119225c622403afb4b44bad4c1ca6c1f98eed79db8d3bc6e4e160fc6339d66c", size = 2414950 },
|
333
|
+
{ url = "https://files.pythonhosted.org/packages/c4/3e/c328c48b3f0ead7bab765a84b4977acb29f101d10e4ef57a5e3400447c03/pillow-11.2.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8ce2e8411c7aaef53e6bb29fe98f28cd4fbd9a1d9be2eeea434331aac0536b22", size = 3192759 },
|
334
|
+
{ url = "https://files.pythonhosted.org/packages/18/0e/1c68532d833fc8b9f404d3a642991441d9058eccd5606eab31617f29b6d4/pillow-11.2.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9ee66787e095127116d91dea2143db65c7bb1e232f617aa5957c0d9d2a3f23a7", size = 3033284 },
|
335
|
+
{ url = "https://files.pythonhosted.org/packages/b7/cb/6faf3fb1e7705fd2db74e070f3bf6f88693601b0ed8e81049a8266de4754/pillow-11.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9622e3b6c1d8b551b6e6f21873bdcc55762b4b2126633014cea1803368a9aa16", size = 4445826 },
|
336
|
+
{ url = "https://files.pythonhosted.org/packages/07/94/8be03d50b70ca47fb434a358919d6a8d6580f282bbb7af7e4aa40103461d/pillow-11.2.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63b5dff3a68f371ea06025a1a6966c9a1e1ee452fc8020c2cd0ea41b83e9037b", size = 4527329 },
|
337
|
+
{ url = "https://files.pythonhosted.org/packages/fd/a4/bfe78777076dc405e3bd2080bc32da5ab3945b5a25dc5d8acaa9de64a162/pillow-11.2.1-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:31df6e2d3d8fc99f993fd253e97fae451a8db2e7207acf97859732273e108406", size = 4549049 },
|
338
|
+
{ url = "https://files.pythonhosted.org/packages/65/4d/eaf9068dc687c24979e977ce5677e253624bd8b616b286f543f0c1b91662/pillow-11.2.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:062b7a42d672c45a70fa1f8b43d1d38ff76b63421cbbe7f88146b39e8a558d91", size = 4635408 },
|
339
|
+
{ url = "https://files.pythonhosted.org/packages/1d/26/0fd443365d9c63bc79feb219f97d935cd4b93af28353cba78d8e77b61719/pillow-11.2.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4eb92eca2711ef8be42fd3f67533765d9fd043b8c80db204f16c8ea62ee1a751", size = 4614863 },
|
340
|
+
{ url = "https://files.pythonhosted.org/packages/49/65/dca4d2506be482c2c6641cacdba5c602bc76d8ceb618fd37de855653a419/pillow-11.2.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f91ebf30830a48c825590aede79376cb40f110b387c17ee9bd59932c961044f9", size = 4692938 },
|
341
|
+
{ url = "https://files.pythonhosted.org/packages/b3/92/1ca0c3f09233bd7decf8f7105a1c4e3162fb9142128c74adad0fb361b7eb/pillow-11.2.1-cp313-cp313t-win32.whl", hash = "sha256:e0b55f27f584ed623221cfe995c912c61606be8513bfa0e07d2c674b4516d9dd", size = 2335774 },
|
342
|
+
{ url = "https://files.pythonhosted.org/packages/a5/ac/77525347cb43b83ae905ffe257bbe2cc6fd23acb9796639a1f56aa59d191/pillow-11.2.1-cp313-cp313t-win_amd64.whl", hash = "sha256:36d6b82164c39ce5482f649b437382c0fb2395eabc1e2b1702a6deb8ad647d6e", size = 2681895 },
|
343
|
+
{ url = "https://files.pythonhosted.org/packages/67/32/32dc030cfa91ca0fc52baebbba2e009bb001122a1daa8b6a79ad830b38d3/pillow-11.2.1-cp313-cp313t-win_arm64.whl", hash = "sha256:225c832a13326e34f212d2072982bb1adb210e0cc0b153e688743018c94a2681", size = 2417234 },
|
344
|
+
{ url = "https://files.pythonhosted.org/packages/21/3a/c1835d1c7cf83559e95b4f4ed07ab0bb7acc689712adfce406b3f456e9fd/pillow-11.2.1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:7491cf8a79b8eb867d419648fff2f83cb0b3891c8b36da92cc7f1931d46108c8", size = 3198391 },
|
345
|
+
{ url = "https://files.pythonhosted.org/packages/b6/4d/dcb7a9af3fc1e8653267c38ed622605d9d1793349274b3ef7af06457e257/pillow-11.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8b02d8f9cb83c52578a0b4beadba92e37d83a4ef11570a8688bbf43f4ca50909", size = 3030573 },
|
346
|
+
{ url = "https://files.pythonhosted.org/packages/9d/29/530ca098c1a1eb31d4e163d317d0e24e6d2ead907991c69ca5b663de1bc5/pillow-11.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:014ca0050c85003620526b0ac1ac53f56fc93af128f7546623cc8e31875ab928", size = 4398677 },
|
347
|
+
{ url = "https://files.pythonhosted.org/packages/8b/ee/0e5e51db34de1690264e5f30dcd25328c540aa11d50a3bc0b540e2a445b6/pillow-11.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3692b68c87096ac6308296d96354eddd25f98740c9d2ab54e1549d6c8aea9d79", size = 4484986 },
|
348
|
+
{ url = "https://files.pythonhosted.org/packages/93/7d/bc723b41ce3d2c28532c47678ec988974f731b5c6fadd5b3a4fba9015e4f/pillow-11.2.1-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:f781dcb0bc9929adc77bad571b8621ecb1e4cdef86e940fe2e5b5ee24fd33b35", size = 4501897 },
|
349
|
+
{ url = "https://files.pythonhosted.org/packages/be/0b/532e31abc7389617ddff12551af625a9b03cd61d2989fa595e43c470ec67/pillow-11.2.1-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:2b490402c96f907a166615e9a5afacf2519e28295f157ec3a2bb9bd57de638cb", size = 4592618 },
|
350
|
+
{ url = "https://files.pythonhosted.org/packages/4c/f0/21ed6499a6216fef753e2e2254a19d08bff3747108ba042422383f3e9faa/pillow-11.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dd6b20b93b3ccc9c1b597999209e4bc5cf2853f9ee66e3fc9a400a78733ffc9a", size = 4570493 },
|
351
|
+
{ url = "https://files.pythonhosted.org/packages/68/de/17004ddb8ab855573fe1127ab0168d11378cdfe4a7ee2a792a70ff2e9ba7/pillow-11.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4b835d89c08a6c2ee7781b8dd0a30209a8012b5f09c0a665b65b0eb3560b6f36", size = 4647748 },
|
352
|
+
{ url = "https://files.pythonhosted.org/packages/c7/23/82ecb486384bb3578115c509d4a00bb52f463ee700a5ca1be53da3c88c19/pillow-11.2.1-cp39-cp39-win32.whl", hash = "sha256:b10428b3416d4f9c61f94b494681280be7686bda15898a3a9e08eb66a6d92d67", size = 2331731 },
|
353
|
+
{ url = "https://files.pythonhosted.org/packages/58/bb/87efd58b3689537a623d44dbb2550ef0bb5ff6a62769707a0fe8b1a7bdeb/pillow-11.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:6ebce70c3f486acf7591a3d73431fa504a4e18a9b97ff27f5f47b7368e4b9dd1", size = 2676346 },
|
354
|
+
{ url = "https://files.pythonhosted.org/packages/80/08/dc268475b22887b816e5dcfae31bce897f524b4646bab130c2142c9b2400/pillow-11.2.1-cp39-cp39-win_arm64.whl", hash = "sha256:c27476257b2fdcd7872d54cfd119b3a9ce4610fb85c8e32b70b42e3680a29a1e", size = 2414623 },
|
355
|
+
{ url = "https://files.pythonhosted.org/packages/33/49/c8c21e4255b4f4a2c0c68ac18125d7f5460b109acc6dfdef1a24f9b960ef/pillow-11.2.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:9b7b0d4fd2635f54ad82785d56bc0d94f147096493a79985d0ab57aedd563156", size = 3181727 },
|
356
|
+
{ url = "https://files.pythonhosted.org/packages/6d/f1/f7255c0838f8c1ef6d55b625cfb286835c17e8136ce4351c5577d02c443b/pillow-11.2.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:aa442755e31c64037aa7c1cb186e0b369f8416c567381852c63444dd666fb772", size = 2999833 },
|
357
|
+
{ url = "https://files.pythonhosted.org/packages/e2/57/9968114457bd131063da98d87790d080366218f64fa2943b65ac6739abb3/pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0d3348c95b766f54b76116d53d4cb171b52992a1027e7ca50c81b43b9d9e363", size = 3437472 },
|
358
|
+
{ url = "https://files.pythonhosted.org/packages/b2/1b/e35d8a158e21372ecc48aac9c453518cfe23907bb82f950d6e1c72811eb0/pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85d27ea4c889342f7e35f6d56e7e1cb345632ad592e8c51b693d7b7556043ce0", size = 3459976 },
|
359
|
+
{ url = "https://files.pythonhosted.org/packages/26/da/2c11d03b765efff0ccc473f1c4186dc2770110464f2177efaed9cf6fae01/pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:bf2c33d6791c598142f00c9c4c7d47f6476731c31081331664eb26d6ab583e01", size = 3527133 },
|
360
|
+
{ url = "https://files.pythonhosted.org/packages/79/1a/4e85bd7cadf78412c2a3069249a09c32ef3323650fd3005c97cca7aa21df/pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e616e7154c37669fc1dfc14584f11e284e05d1c650e1c0f972f281c4ccc53193", size = 3571555 },
|
361
|
+
{ url = "https://files.pythonhosted.org/packages/69/03/239939915216de1e95e0ce2334bf17a7870ae185eb390fab6d706aadbfc0/pillow-11.2.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:39ad2e0f424394e3aebc40168845fee52df1394a4673a6ee512d840d14ab3013", size = 2674713 },
|
362
|
+
{ url = "https://files.pythonhosted.org/packages/a4/ad/2613c04633c7257d9481ab21d6b5364b59fc5d75faafd7cb8693523945a3/pillow-11.2.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:80f1df8dbe9572b4b7abdfa17eb5d78dd620b1d55d9e25f834efdbee872d3aed", size = 3181734 },
|
363
|
+
{ url = "https://files.pythonhosted.org/packages/a4/fd/dcdda4471ed667de57bb5405bb42d751e6cfdd4011a12c248b455c778e03/pillow-11.2.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ea926cfbc3957090becbcbbb65ad177161a2ff2ad578b5a6ec9bb1e1cd78753c", size = 2999841 },
|
364
|
+
{ url = "https://files.pythonhosted.org/packages/ac/89/8a2536e95e77432833f0db6fd72a8d310c8e4272a04461fb833eb021bf94/pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:738db0e0941ca0376804d4de6a782c005245264edaa253ffce24e5a15cbdc7bd", size = 3437470 },
|
365
|
+
{ url = "https://files.pythonhosted.org/packages/9d/8f/abd47b73c60712f88e9eda32baced7bfc3e9bd6a7619bb64b93acff28c3e/pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9db98ab6565c69082ec9b0d4e40dd9f6181dab0dd236d26f7a50b8b9bfbd5076", size = 3460013 },
|
366
|
+
{ url = "https://files.pythonhosted.org/packages/f6/20/5c0a0aa83b213b7a07ec01e71a3d6ea2cf4ad1d2c686cc0168173b6089e7/pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:036e53f4170e270ddb8797d4c590e6dd14d28e15c7da375c18978045f7e6c37b", size = 3527165 },
|
367
|
+
{ url = "https://files.pythonhosted.org/packages/58/0e/2abab98a72202d91146abc839e10c14f7cf36166f12838ea0c4db3ca6ecb/pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:14f73f7c291279bd65fda51ee87affd7c1e097709f7fdd0188957a16c264601f", size = 3571586 },
|
368
|
+
{ url = "https://files.pythonhosted.org/packages/21/2c/5e05f58658cf49b6667762cca03d6e7d85cededde2caf2ab37b81f80e574/pillow-11.2.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:208653868d5c9ecc2b327f9b9ef34e0e42a4cdd172c2988fd81d62d2bc9bc044", size = 2674751 },
|
369
|
+
]
|
370
|
+
|
281
371
|
[[package]]
|
282
372
|
name = "pluggy"
|
283
373
|
version = "1.5.0"
|
@@ -595,6 +685,18 @@ wheels = [
|
|
595
685
|
{ url = "https://files.pythonhosted.org/packages/68/ca/69d7c7752bce162d1516e5592b1cc6b6668e9328c0d270609ddbeeadd7cf/ruff-0.11.7-py3-none-win_arm64.whl", hash = "sha256:778c1e5d6f9e91034142dfd06110534ca13220bfaad5c3735f6cb844654f6177", size = 10677936 },
|
596
686
|
]
|
597
687
|
|
688
|
+
[[package]]
|
689
|
+
name = "timg"
|
690
|
+
version = "1.1.6"
|
691
|
+
source = { registry = "https://pypi.org/simple" }
|
692
|
+
dependencies = [
|
693
|
+
{ name = "pillow" },
|
694
|
+
]
|
695
|
+
sdist = { url = "https://files.pythonhosted.org/packages/43/be/0fd86bfe3865664c8aaecb292fa344be27a648f6889889417a3b426b1f66/timg-1.1.6.tar.gz", hash = "sha256:938d939ac3502300f7b9e3daadf5da0f88c5b86fde5882d73b43a9d028bd4bfd", size = 7136 }
|
696
|
+
wheels = [
|
697
|
+
{ url = "https://files.pythonhosted.org/packages/ef/f8/451b79ab4b273383f02c364079e66375271a4cf349ab6baec922665007d5/timg-1.1.6-py3-none-any.whl", hash = "sha256:5e981277c18a3aac8b1215fa354a085723296a9e1c701106187642b82f53cca4", size = 8721 },
|
698
|
+
]
|
699
|
+
|
598
700
|
[[package]]
|
599
701
|
name = "tomli"
|
600
702
|
version = "2.2.1"
|
@@ -1 +0,0 @@
|
|
1
|
-
__version__ = "0.9.6"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|