|
23 | 23 | import pathlib |
24 | 24 | import subprocess |
25 | 25 | from dataclasses import dataclass |
| 26 | +from typing import overload |
26 | 27 |
|
27 | 28 | import piexif # pyright: ignore[reportMissingTypeStubs] |
28 | 29 | from optimize_images.img_aux_processing import ( # pyright: ignore[reportMissingTypeStubs] |
@@ -78,6 +79,18 @@ class OptimizePngOptions: |
78 | 79 | remove_transparency: bool | None = False |
79 | 80 |
|
80 | 81 |
|
| 82 | +@overload |
| 83 | +def optimize_png( |
| 84 | + src: pathlib.Path | io.BytesIO, |
| 85 | + dst: io.BytesIO | None = None, |
| 86 | + options: OptimizePngOptions | None = None, |
| 87 | +) -> io.BytesIO: ... |
| 88 | +@overload |
| 89 | +def optimize_png( |
| 90 | + src: pathlib.Path | io.BytesIO, |
| 91 | + dst: pathlib.Path, |
| 92 | + options: OptimizePngOptions | None = None, |
| 93 | +) -> pathlib.Path: ... |
81 | 94 | def optimize_png( |
82 | 95 | src: pathlib.Path | io.BytesIO, |
83 | 96 | dst: pathlib.Path | io.BytesIO | None = None, |
@@ -128,6 +141,18 @@ class OptimizeJpgOptions: |
128 | 141 | keep_exif: bool | None = True |
129 | 142 |
|
130 | 143 |
|
| 144 | +@overload |
| 145 | +def optimize_jpeg( |
| 146 | + src: pathlib.Path | io.BytesIO, |
| 147 | + dst: io.BytesIO | None = None, |
| 148 | + options: OptimizeJpgOptions | None = None, |
| 149 | +) -> io.BytesIO: ... |
| 150 | +@overload |
| 151 | +def optimize_jpeg( |
| 152 | + src: pathlib.Path | io.BytesIO, |
| 153 | + dst: pathlib.Path, |
| 154 | + options: OptimizeJpgOptions | None = None, |
| 155 | +) -> pathlib.Path: ... |
131 | 156 | def optimize_jpeg( |
132 | 157 | src: pathlib.Path | io.BytesIO, |
133 | 158 | dst: pathlib.Path | io.BytesIO | None = None, |
@@ -218,6 +243,18 @@ class OptimizeWebpOptions: |
218 | 243 | lossless: bool | None = False |
219 | 244 |
|
220 | 245 |
|
| 246 | +@overload |
| 247 | +def optimize_webp( |
| 248 | + src: pathlib.Path | io.BytesIO, |
| 249 | + dst: io.BytesIO | None = None, |
| 250 | + options: OptimizeWebpOptions | None = None, |
| 251 | +) -> io.BytesIO: ... |
| 252 | +@overload |
| 253 | +def optimize_webp( |
| 254 | + src: pathlib.Path | io.BytesIO, |
| 255 | + dst: pathlib.Path, |
| 256 | + options: OptimizeWebpOptions | None = None, |
| 257 | +) -> pathlib.Path: ... |
221 | 258 | def optimize_webp( |
222 | 259 | src: pathlib.Path | io.BytesIO, |
223 | 260 | dst: pathlib.Path | io.BytesIO | None = None, |
|
0 commit comments