Update some PIL stubs (#5692)

Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
Co-authored-by: Akuli <akuviljanen17@gmail.com>
This commit is contained in:
Jake Bailey
2021-06-28 10:29:17 -07:00
committed by GitHub
parent 14d7431ff1
commit 6b8f047b05
3 changed files with 54 additions and 44 deletions

View File

@@ -1,4 +1,4 @@
from typing import Any
from typing import Mapping
TAGS: Any
GPSTAGS: Any
TAGS: Mapping[int, str]
GPSTAGS: Mapping[int, str]

View File

@@ -1,7 +1,7 @@
from _typeshed import SupportsRead, SupportsWrite
from collections.abc import Iterable, Iterator, MutableMapping
from pathlib import Path
from typing import Any, Dict, Protocol, Tuple, Union
from typing import Any, Callable, Dict, Protocol, Sequence, SupportsBytes, Tuple, Union
from typing_extensions import Literal
from ._imaging import (
@@ -11,9 +11,13 @@ from ._imaging import (
HUFFMAN_ONLY as HUFFMAN_ONLY,
RLE as RLE,
)
from .ImageFilter import Filter
from .ImagePalette import ImagePalette
_Mode = Literal["1", "CMYK", "F", "HSV", "I", "L", "LAB", "P", "RGB", "RGBA", "RGBX", "YCbCr"]
_Resample = Literal[0, 1, 2, 3, 4, 5]
_Size = Tuple[int, int]
_Box = Tuple[int, int, int, int]
_ConversionMatrix = Union[
Tuple[float, float, float, float], Tuple[float, float, float, float, float, float, float, float, float, float, float, float],
@@ -123,7 +127,7 @@ class Image:
def tobytes(self, encoder_name: str = ..., *args) -> bytes: ...
def tobitmap(self, name: str = ...) -> bytes: ...
def frombytes(self, data: bytes, decoder_name: str = ..., *args) -> None: ...
def load(self): ...
def load(self) -> None: ...
def verify(self) -> None: ...
def convert(
self,
@@ -143,31 +147,29 @@ class Image:
) -> Image: ...
def copy(self) -> Image: ...
__copy__ = copy
def crop(self, box=...) -> Image: ...
def draft(self, mode, size) -> None: ...
def filter(self, filter): ...
def crop(self, box: _Box | None = ...) -> Image: ...
def draft(self, mode: str, size: _Size) -> None: ...
def filter(self, filter: Filter | Callable[[], Filter]) -> Image: ...
def getbands(self) -> Tuple[str, ...]: ...
def getbbox(self) -> tuple[int, int, int, int] | None: ...
def getcolors(self, maxcolors: int = ...): ...
def getdata(self, band=...): ...
def getcolors(self, maxcolors: int = ...) -> list[tuple[int, int]]: ...
def getdata(self, band: int | None = ...): ...
def getextrema(self): ...
def getexif(self) -> Exif: ...
def getim(self): ...
def getpalette(self): ...
def getpixel(self, xy): ...
def getprojection(self): ...
def histogram(self, mask=..., extrema=...): ...
def entropy(self, mask=..., extrema=...): ...
def paste(
self, im: Image, box: tuple[float, float] | tuple[float, float, float, float] | None = ..., mask: Image | None = ...
) -> None: ...
def getpalette(self) -> list[int] | None: ...
def getpixel(self, xy: tuple[int, int]): ...
def getprojection(self) -> tuple[list[int], list[int]]: ...
def histogram(self, mask: Image | None = ..., extrema: tuple[int, int] | tuple[float, float] | None = ...) -> list[int]: ...
def entropy(self, mask: Image | None = ..., extrema: tuple[int, int] | tuple[float, float] | None = ...) -> float: ...
def paste(self, im: Image, box: tuple[float, float] | _Box | None = ..., mask: Image | None = ...) -> None: ...
def alpha_composite(self, im: Image, dest: tuple[int, int] = ..., source: tuple[int, int] = ...) -> None: ...
def point(self, lut, mode=...): ...
def putalpha(self, alpha): ...
def putdata(self, data, scale: float = ..., offset: float = ...): ...
def putpalette(self, data, rawmode=...): ...
def putpixel(self, xy, value): ...
def remap_palette(self, dest_map, source_palette=...): ...
def point(self, lut, mode: str | None = ...) -> Image: ...
def putalpha(self, alpha: Image | int) -> None: ...
def putdata(self, data: Sequence[int], scale: float = ..., offset: float = ...) -> None: ...
def putpalette(self, data: ImagePalette | bytes | Iterable[int] | SupportsBytes, rawmode: str | None = ...) -> None: ...
def putpixel(self, xy: tuple[int, int], value: _Color | list[float]) -> None: ...
def remap_palette(self, dest_map: Iterable[int], source_palette: Sequence[int] | None = ...) -> Image: ...
def resize(
self,
size: tuple[int, int],
@@ -175,7 +177,7 @@ class Image:
box: tuple[float, float, float, float] | None = ...,
reducing_gap: float | None = ...,
) -> Image: ...
def reduce(self, factor, box=...): ...
def reduce(self, factor: int | tuple[int, int] | list[int], box: _Box | None = ...) -> None: ...
def rotate(
self,
angle: float,
@@ -186,17 +188,23 @@ class Image:
fillcolor: _Color | None = ...,
) -> Image: ...
def save(self, fp: str | bytes | Path | _Writeable, format: str | None = ..., **params: Any) -> None: ...
def seek(self, frame): ...
def show(self, title=..., command=...): ...
def split(self): ...
def getchannel(self, channel): ...
def seek(self, frame: int) -> None: ...
def show(self, title: str | None = ..., command: str | None = ...) -> None: ...
def split(self) -> Tuple[Image, ...]: ...
def getchannel(self, channel: int | str) -> Image: ...
def tell(self) -> int: ...
def thumbnail(self, size: tuple[int, int], resample: _Resample = ..., reducing_gap: float = ...) -> None: ...
def transform(
self, size, method: Literal[0, 1, 2, 3, 4], data=..., resample: _Resample = ..., fill: int = ..., fillcolor=...
self,
size: _Size,
method: Literal[0, 1, 2, 3, 4],
data=...,
resample: _Resample = ...,
fill: int = ...,
fillcolor: _Color | int | None = ...,
) -> None: ...
def transpose(self, method: Literal[0, 1, 2, 3, 4, 5, 6]): ...
def effect_spread(self, distance): ...
def transpose(self, method: Literal[0, 1, 2, 3, 4, 5, 6]) -> Image: ...
def effect_spread(self, distance: int) -> Image: ...
def toqimage(self): ...
def toqpixmap(self): ...
@@ -209,12 +217,14 @@ def frombuffer(mode: _Mode, size: tuple[int, int], data, decoder_name: str = ...
def fromarray(obj, mode: _Mode | None = ...) -> Image: ...
def fromqimage(im) -> Image: ...
def fromqpixmap(im) -> Image: ...
def open(fp: str | bytes | Path | SupportsRead[bytes], mode: Literal["r"] = ..., formats=...) -> Image: ...
def open(
fp: str | bytes | Path | SupportsRead[bytes], mode: Literal["r"] = ..., formats: list[str] | tuple[str] | None = ...
) -> Image: ...
def alpha_composite(im1: Image, im2: Image) -> Image: ...
def blend(im1: Image, im2: Image, alpha) -> Image: ...
def composite(image1: Image, image2: Image, mask) -> Image: ...
def eval(image: Image, *args): ...
def merge(mode, bands): ...
def blend(im1: Image, im2: Image, alpha: float) -> Image: ...
def composite(image1: Image, image2: Image, mask: Image) -> Image: ...
def eval(image: Image, *args) -> Image: ...
def merge(mode: str, bands: Sequence[Image]) -> Image: ...
def register_open(id: str, factory, accept=...) -> None: ...
def register_mime(id: str, mimetype: str) -> None: ...
def register_save(id: str, driver) -> None: ...
@@ -224,18 +234,18 @@ def register_extensions(id: str, extensions: Iterable[str]) -> None: ...
def registered_extensions() -> dict[str, str]: ...
def register_decoder(name: str, decoder) -> None: ...
def register_encoder(name: str, encoder) -> None: ...
def effect_mandelbrot(size: tuple[int, int], extent, quality) -> Image: ...
def effect_noise(size: tuple[int, int], sigma) -> Image: ...
def linear_gradient(mode) -> Image: ...
def radial_gradient(mode) -> Image: ...
def effect_mandelbrot(size: tuple[int, int], extent: tuple[float, float, float, float], quality: int) -> Image: ...
def effect_noise(size: tuple[int, int], sigma: float) -> Image: ...
def linear_gradient(mode: str) -> Image: ...
def radial_gradient(mode: str) -> Image: ...
class Exif(MutableMapping[int, Any]):
def load(self, data: bytes) -> None: ...
def tobytes(self, offset: int = ...) -> bytes: ...
def get_ifd(self, tag: int): ...
def __len__(self) -> int: ...
def __getitem__(self, tag: int): ...
def __getitem__(self, tag: int) -> Any: ...
def __contains__(self, tag: object) -> bool: ...
def __setitem__(self, tag: int, value) -> None: ...
def __setitem__(self, tag: int, value: Any) -> None: ...
def __delitem__(self, tag: int) -> None: ...
def __iter__(self) -> Iterator[int]: ...

View File

@@ -1,3 +1,3 @@
__version__: str
class UnidentifiedImageError(OSError): ...
class UnidentifiedImageError(IOError): ...