Daniel Brötzmann pushed to branch master at gajim / gajim


Commits:
e5d7586b by wurstsalat at 2022-11-02T23:45:51+01:00
cq: Preview helpers: Add type annotations

- - - - -


2 changed files:

- gajim/common/preview_helpers.py
- pyproject.toml


Changes:

=====================================
gajim/common/preview_helpers.py
=====================================
@@ -59,7 +59,7 @@ class Coords(NamedTuple):
     lon: str
 
 
-def resize_gif(image: Image.Image,
+def resize_gif(image: ImageFile.ImageFile,
                output_file: BytesIO,
                resize_to: tuple[int, int]) -> None:
     frames, result = extract_and_resize_frames(image, resize_to)
@@ -73,7 +73,8 @@ def resize_gif(image: Image.Image,
                    loop=1000)
 
 
-def analyse_image(image: Image.Image) -> tuple[Image.Image, dict[str, Any]]:
+def analyse_image(image: ImageFile.ImageFile
+                  ) -> tuple[ImageFile.ImageFile, dict[str, Any]]:
     '''
     Pre-process pass over the image to determine the mode (full or additive).
     Necessary as assessing single frames isn't reliable. Need to know the mode
@@ -101,7 +102,7 @@ def analyse_image(image: Image.Image) -> tuple[Image.Image, 
dict[str, Any]]:
     return image, result
 
 
-def extract_and_resize_frames(image: Image.Image,
+def extract_and_resize_frames(image: ImageFile.ImageFile,
                               resize_to: tuple[int, int]
                               ) -> tuple[list[Image.Image], dict[str, Any]]:
 
@@ -111,7 +112,7 @@ def extract_and_resize_frames(image: Image.Image,
     palette = image.getpalette()
     last_frame = image.convert('RGBA')
 
-    frames = []
+    frames: list[Image.Image] = []
 
     try:
         while True:
@@ -120,6 +121,7 @@ def extract_and_resize_frames(image: Image.Image,
             # If not, we need to apply the global palette to the new frame.
 
             if not image.getpalette():
+                assert palette is not None
                 image.putpalette(palette)
 
             new_frame = Image.new('RGBA', image.size)
@@ -224,6 +226,7 @@ def create_thumbnail_with_pil(data: bytes, size: int) -> 
Optional[bytes]:
 
     try:
         if image.format == 'GIF' and image.n_frames > 1:
+            assert isinstance(image, ImageFile.ImageFile)
             resize_gif(image, output_file, (size, size))
         else:
             image.thumbnail((size, size))
@@ -270,7 +273,7 @@ def pixbuf_from_data(data: bytes) -> 
Optional[GdkPixbuf.Pixbuf]:
         # Fallback to Pillow
         input_file = BytesIO(data)
         image = Image.open(BytesIO(data)).convert('RGBA')
-        array = GLib.Bytes.new(image.tobytes())
+        array = GLib.Bytes.new(image.tobytes())  # type: ignore
         width, height = image.size
         pixbuf = GdkPixbuf.Pixbuf.new_from_bytes(array,
                                                  GdkPixbuf.Colorspace.RGB,


=====================================
pyproject.toml
=====================================
@@ -49,6 +49,7 @@ include = [
     "gajim/common/modules/vcard4.py",
     "gajim/common/modules/vcard_temp.py",
     "gajim/common/passwords.py",
+    "gajim/common/preview_helpers.py",
     "gajim/common/regex.py",
     "gajim/common/setting_values.py",
     "gajim/common/sound.py",



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/e5d7586b7f1d975686fa1ef12fb8ae8e004c1a76

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/e5d7586b7f1d975686fa1ef12fb8ae8e004c1a76
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to