add type hints to ImageCms.get_display_profile

This commit is contained in:
Nulano 2024-01-01 00:47:39 +01:00
parent 0630ef061f
commit a1a687c261
2 changed files with 11 additions and 6 deletions

View File

@ -4,13 +4,14 @@ import datetime
import os
import re
import shutil
import sys
from io import BytesIO
from pathlib import Path
from typing import Any
import pytest
from PIL import Image, ImageMode, features
from PIL import Image, ImageMode, ImageWin, features
from .helper import (
assert_image,
@ -213,6 +214,10 @@ def test_display_profile() -> None:
# try fetching the profile for the current display device
ImageCms.get_display_profile()
if sys.platform == "win32":
ImageCms.get_display_profile(ImageWin.HDC(0))
ImageCms.get_display_profile(ImageWin.HWND(0))
def test_lab_color_profile() -> None:
ImageCms.createProfile("LAB", 5000)

View File

@ -23,7 +23,7 @@ import operator
import sys
from enum import IntEnum, IntFlag
from functools import reduce
from typing import Any, BinaryIO
from typing import Any, BinaryIO, SupportsInt
from . import Image, __version__
from ._deprecate import deprecate
@ -341,7 +341,7 @@ class ImageCmsTransform(Image.ImagePointHandler):
return im
def get_display_profile(handle=None):
def get_display_profile(handle: SupportsInt | None = None) -> ImageCmsProfile | None:
"""
(experimental) Fetches the profile for the current display device.
@ -351,12 +351,12 @@ def get_display_profile(handle=None):
if sys.platform != "win32":
return None
from . import ImageWin
from . import ImageWin # type: ignore[unused-ignore, unreachable]
if isinstance(handle, ImageWin.HDC):
profile = core.get_display_profile_win32(handle, 1)
profile = core.get_display_profile_win32(int(handle), 1)
else:
profile = core.get_display_profile_win32(handle or 0)
profile = core.get_display_profile_win32(int(handle or 0))
if profile is None:
return None
return ImageCmsProfile(profile)