Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/type_hints' into type_hints
Browse files Browse the repository at this point in the history
  • Loading branch information
nulano committed Apr 30, 2024
2 parents c2cb944 + a304fd5 commit 007caae
Show file tree
Hide file tree
Showing 7 changed files with 35 additions and 19 deletions.
13 changes: 7 additions & 6 deletions .github/workflows/test-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ jobs:
docker: [
# Run slower jobs first to give them a headstart and reduce waiting time
ubuntu-22.04-jammy-arm64v8,
ubuntu-22.04-jammy-ppc64le,
ubuntu-22.04-jammy-s390x,
ubuntu-24.04-noble-ppc64le,
ubuntu-24.04-noble-s390x,
# Then run the remainder
alpine,
amazon-2-amd64,
Expand All @@ -52,14 +52,15 @@ jobs:
gentoo,
ubuntu-20.04-focal-amd64,
ubuntu-22.04-jammy-amd64,
ubuntu-24.04-noble-amd64,
]
dockerTag: [main]
include:
- docker: "ubuntu-22.04-jammy-arm64v8"
qemu-arch: "aarch64"
- docker: "ubuntu-22.04-jammy-ppc64le"
- docker: "ubuntu-24.04-noble-ppc64le"
qemu-arch: "ppc64le"
- docker: "ubuntu-22.04-jammy-s390x"
- docker: "ubuntu-24.04-noble-s390x"
qemu-arch: "s390x"

name: ${{ matrix.docker }}
Expand All @@ -81,8 +82,8 @@ jobs:
- name: Docker build
run: |
# The Pillow user in the docker container is UID 1000
sudo chown -R 1000 $GITHUB_WORKSPACE
# The Pillow user in the docker container is UID 1001
sudo chown -R 1001 $GITHUB_WORKSPACE
docker run --name pillow_container -v $GITHUB_WORKSPACE:/Pillow pythonpillow/${{ matrix.docker }}:${{ matrix.dockerTag }}
sudo chown -R runner $GITHUB_WORKSPACE
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test-valgrind.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ jobs:
- name: Build and Run Valgrind
run: |
# The Pillow user in the docker container is UID 1000
sudo chown -R 1000 $GITHUB_WORKSPACE
# The Pillow user in the docker container is UID 1001
sudo chown -R 1001 $GITHUB_WORKSPACE
docker run --name pillow_container -e "PILLOW_VALGRIND_TEST=true" -v $GITHUB_WORKSPACE:/Pillow pythonpillow/${{ matrix.docker }}:${{ matrix.dockerTag }}
sudo chown -R runner $GITHUB_WORKSPACE
4 changes: 3 additions & 1 deletion docs/installation/platform-support.rst
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,9 @@ These platforms are built and tested for every change.
| Ubuntu Linux 22.04 LTS (Jammy) | 3.8, 3.9, 3.10, 3.11, | x86-64 |
| | 3.12, 3.13, PyPy3 | |
| +----------------------------+---------------------+
| | 3.10 | arm64v8, ppc64le, |
| | 3.10 | arm64v8 |
+----------------------------------+----------------------------+---------------------+
| Ubuntu Linux 24.04 LTS (Noble) | 3.12 | x86-64, ppc64le, |
| | | s390x |
+----------------------------------+----------------------------+---------------------+
| Windows Server 2016 | 3.8 | x86-64 |
Expand Down
21 changes: 16 additions & 5 deletions src/PIL/Image.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,16 @@
from collections.abc import Callable, MutableMapping
from enum import IntEnum
from types import ModuleType
from typing import IO, TYPE_CHECKING, Any, Literal, Protocol, SupportsInt, cast
from typing import (
IO,
TYPE_CHECKING,
Any,
Literal,
Protocol,
Sequence,
SupportsInt,
cast,
)

# VERSION was removed in Pillow 6.0.0.
# PILLOW_VERSION was removed in Pillow 9.0.0.
Expand Down Expand Up @@ -903,7 +912,7 @@ def load(self) -> PixelAccess | None:
return self.im.pixel_access(self.readonly)
return None

def verify(self):
def verify(self) -> None:
"""
Verifies the contents of a file. For data read from a file, this
method attempts to determine if the file is broken, without
Expand Down Expand Up @@ -1293,7 +1302,9 @@ def _crop(self, im, box):

return im.crop((x0, y0, x1, y1))

def draft(self, mode, size):
def draft(
self, mode: str, size: tuple[int, int]
) -> tuple[str, tuple[int, int, float, float]] | None:
"""
Configures the image file loader so it returns a version of the
image that as closely as possible matches the given mode and
Expand All @@ -1316,7 +1327,7 @@ def draft(self, mode, size):
"""
pass

def _expand(self, xmargin, ymargin=None):
def _expand(self, xmargin: int, ymargin: int | None = None) -> Image:
if ymargin is None:
ymargin = xmargin
self.load()
Expand Down Expand Up @@ -3477,7 +3488,7 @@ def eval(image, *args):
return image.point(args[0])


def merge(mode, bands):
def merge(mode: str, bands: Sequence[Image]) -> Image:
"""
Merge a set of single band images into a new multiband image.
Expand Down
2 changes: 1 addition & 1 deletion src/PIL/ImageFile.py
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ def __setstate__(self, state):
self.tile = []
super().__setstate__(state)

def verify(self):
def verify(self) -> None:
"""Check file integrity"""

# raise exception if something's wrong. must be called
Expand Down
8 changes: 5 additions & 3 deletions src/PIL/JpegImagePlugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -424,13 +424,15 @@ def load_read(self, read_bytes):

return s

def draft(self, mode, size):
def draft(
self, mode: str, size: tuple[int, int]
) -> tuple[str, tuple[int, int, float, float]] | None:
if len(self.tile) != 1:
return
return None

# Protect from second call
if self.decoderconfig:
return
return None

d, e, o, a = self.tile[0]
scale = 1
Expand Down
2 changes: 1 addition & 1 deletion src/PIL/PngImagePlugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -783,7 +783,7 @@ def text(self):
self.seek(frame)
return self._text

def verify(self):
def verify(self) -> None:
"""Verify PNG file"""

if self.fp is None:
Expand Down

0 comments on commit 007caae

Please sign in to comment.