Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use assignments for enums in pillow #11959

Merged
merged 3 commits into from
May 19, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 18 additions & 17 deletions stubs/Pillow/PIL/DdsImagePlugin.pyi
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from enum import IntEnum, IntFlag
from typing import ClassVar, Final, Literal

from ._binary import i32le as i32
from .ImageFile import ImageFile, PyDecoder

DDS_MAGIC: Final = 0x20534444
Expand Down Expand Up @@ -218,23 +219,23 @@ class D3DFMT(IntEnum):
A2B10G10R10_XR_BIAS = 119
BINARYBUFFER = 199

UYVY: int
R8G8_B8G8: int
YUY2: int
G8R8_G8B8: int
DXT1: int
DXT2: int
DXT3: int
DXT4: int
DXT5: int
DX10: int
BC4S: int
BC4U: int
BC5S: int
BC5U: int
ATI1: int
ATI2: int
MULTI2_ARGB8: int
UYVY = i32(b"UYVY")
R8G8_B8G8 = i32(b"RGBG")
YUY2 = i32(b"YUY2")
G8R8_G8B8 = i32(b"GRGB")
DXT1 = i32(b"DXT1")
DXT2 = i32(b"DXT2")
DXT3 = i32(b"DXT3")
DXT4 = i32(b"DXT4")
DXT5 = i32(b"DXT5")
DX10 = i32(b"DX10")
BC4S = i32(b"BC4S")
BC4U = i32(b"BC4U")
BC5S = i32(b"BC5S")
BC5U = i32(b"BC5U")
ATI1 = i32(b"ATI1")
ATI2 = i32(b"ATI2")
MULTI2_ARGB8 = i32(b"MET1")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder why none of our tests complained, but I doubt this will work. We just need to use the generated int value and possibly add a comment with the "source" value.


DDSD_CAPS: Final = 0x1
DDSD_HEIGHT: Final = 0x2
Expand Down
58 changes: 29 additions & 29 deletions stubs/Pillow/PIL/Image.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ from _typeshed import Incomplete, SupportsRead, SupportsWrite, Unused
from collections.abc import Callable, Iterable, Iterator, MutableMapping, Sequence
from enum import IntEnum
from pathlib import Path
from typing import Any, ClassVar, Literal, Protocol, SupportsBytes
from typing import Any, ClassVar, Final, Literal, Protocol, SupportsBytes
from typing_extensions import Self, TypeAlias, TypeGuard

from PIL.PyAccess import PyAccess
Expand Down Expand Up @@ -65,13 +65,13 @@ class Transpose(IntEnum):
TRANSVERSE = 6

# All Transpose items
FLIP_LEFT_RIGHT: Literal[0]
FLIP_TOP_BOTTOM: Literal[1]
ROTATE_90: Literal[2]
ROTATE_180: Literal[3]
ROTATE_270: Literal[4]
TRANSPOSE: Literal[5]
TRANSVERSE: Literal[6]
FLIP_LEFT_RIGHT: Final = 0
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried to use the enum value here like this FLIP_LEFT_RIGHT: Final = Transpose.FLIP_LEFT_RIGHT.value but pytype complained.

FLIP_TOP_BOTTOM: Final = 1
ROTATE_90: Final = 2
ROTATE_180: Final = 3
ROTATE_270: Final = 4
TRANSPOSE: Final = 5
TRANSVERSE: Final = 6

class Transform(IntEnum):
AFFINE = 0
Expand All @@ -81,11 +81,11 @@ class Transform(IntEnum):
MESH = 4

# All Transform items
AFFINE: Literal[0]
EXTENT: Literal[1]
PERSPECTIVE: Literal[2]
QUAD: Literal[3]
MESH: Literal[4]
AFFINE: Final = 0
EXTENT: Final = 1
PERSPECTIVE: Final = 2
QUAD: Final = 3
MESH: Final = 4

class Resampling(IntEnum):
NEAREST = 0
Expand All @@ -96,12 +96,12 @@ class Resampling(IntEnum):
HAMMING = 5

# All Resampling items
NEAREST: Literal[0]
LANCZOS: Literal[1]
BILINEAR: Literal[2]
BICUBIC: Literal[3]
BOX: Literal[4]
HAMMING: Literal[5]
NEAREST: Final = 0
LANCZOS: Final = 1
BILINEAR: Final = 2
BICUBIC: Final = 3
BOX: Final = 4
HAMMING: Final = 5

class Dither(IntEnum):
NONE = 0
Expand All @@ -110,18 +110,18 @@ class Dither(IntEnum):
FLOYDSTEINBERG = 3

# All Dither items
NONE: Literal[0]
ORDERED: Literal[1]
RASTERIZE: Literal[2]
FLOYDSTEINBERG: Literal[3]
NONE: Final = 0
ORDERED: Final = 1
RASTERIZE: Final = 2
FLOYDSTEINBERG: Final = 3

class Palette(IntEnum):
WEB = 0
ADAPTIVE = 1

# All Palette items
WEB: Literal[0]
ADAPTIVE: Literal[1]
WEB: Final = 0
ADAPTIVE: Final = 1

class Quantize(IntEnum):
MEDIANCUT = 0
Expand All @@ -130,10 +130,10 @@ class Quantize(IntEnum):
LIBIMAGEQUANT = 3

# All Quantize items
MEDIANCUT: Literal[0]
MAXCOVERAGE: Literal[1]
FASTOCTREE: Literal[2]
LIBIMAGEQUANT: Literal[3]
MEDIANCUT: Final = 0
MAXCOVERAGE: Final = 1
FASTOCTREE: Final = 2
LIBIMAGEQUANT: Final = 3

ID: list[str]
OPEN: dict[str, Any]
Expand Down
26 changes: 13 additions & 13 deletions stubs/Pillow/PIL/_binary.pyi
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
def i8(c): ...
def o8(i): ...
def i16le(c, o: int = 0): ...
def si16le(c, o: int = 0): ...
def si16be(c, o: int = 0): ...
def i32le(c, o: int = 0): ...
def si32le(c, o: int = 0): ...
def i16be(c, o: int = 0): ...
def i32be(c, o: int = 0): ...
def o16le(i): ...
def o32le(i): ...
def o16be(i): ...
def o32be(i): ...
def i8(c: bytes) -> int: ...
def o8(i: int) -> bytes: ...
def i16le(c: bytes, o: int = 0) -> int: ...
def si16le(c: bytes, o: int = 0) -> int: ...
def si16be(c: bytes, o: int = 0) -> int: ...
def i32le(c: bytes, o: int = 0) -> int: ...
def si32le(c: bytes, o: int = 0) -> int: ...
def i16be(c: bytes, o: int = 0) -> int: ...
def i32be(c: bytes, o: int = 0) -> int: ...
def o16le(i: int) -> bytes: ...
def o32le(i: int) -> bytes: ...
def o16be(i: int) -> bytes: ...
def o32be(i: int) -> bytes: ...
Loading