diff --git a/src/PIL/Image.py b/src/PIL/Image.py index 6598cbdcb..fe432c319 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -34,6 +34,7 @@ if False: Size = XY # NOTE: All XY aliases will be interchangeable Matrix4 = Tuple[float, float, float, float] Matrix12 = Tuple[float, float, float, float, float, float, float, float, float, float, float, float] + Mode = str # Just required for typing, or gradual module inclusion while adding annotation? from io import BytesIO @@ -320,7 +321,7 @@ _MAPMODES = ("L", "P", "RGBX", "RGBA", "CMYK", "I;16", "I;16L", "I;16B") def getmodebase(mode): - # type: (Text) -> Text + # type: (Mode) -> Mode """ Gets the "base" mode for given mode. This function returns "L" for images that contain grayscale data, and "RGB" for images that @@ -334,7 +335,7 @@ def getmodebase(mode): def getmodetype(mode): - # type: (Text) -> Text + # type: (Mode) -> Mode """ Gets the storage type mode. Given a mode, this function returns a single-layer mode suitable for storing individual bands. @@ -347,7 +348,7 @@ def getmodetype(mode): def getmodebandnames(mode): - # type: (Text) -> Tuple + # type: (Mode) -> Tuple """ Gets a list of individual band names. Given a mode, this function returns a tuple containing the names of individual bands (use @@ -363,7 +364,7 @@ def getmodebandnames(mode): def getmodebands(mode): - # type: (Text) -> int + # type: (Mode) -> int """ Gets the number of individual bands for this mode. @@ -445,7 +446,7 @@ def init(): # Codec factories (used by tobytes/frombytes and ImageFile.load) def _getdecoder(mode, decoder_name, args, extra=()): - # type: (Text, Text, Optional[Tuple], Tuple) -> PyDecoder + # type: (Mode, Text, Optional[Tuple], Tuple) -> PyDecoder # tweak arguments if args is None: @@ -468,7 +469,7 @@ def _getdecoder(mode, decoder_name, args, extra=()): def _getencoder(mode, encoder_name, args, extra=()): - # type: (Text, Text, Optional[Tuple], Tuple) -> PyEncoder + # type: (Mode, Text, Optional[Tuple], Tuple) -> PyEncoder # tweak arguments if args is None: @@ -551,7 +552,7 @@ class Image(object): # type: () -> None # FIXME: take "new" parameters / other image? # FIXME: turn mode and size into delegating properties? - self.im = None + self.im = None # type: Optional[Any] self.mode = "" self.size = (0, 0) self.palette = None # type: Optional[ImagePalette.ImagePalette] @@ -893,7 +894,7 @@ class Image(object): def convert(self, mode=None, matrix=None, dither=None, palette=WEB, colors=256): - # type: (Optional[Text], Optional[Union[Matrix4, Matrix12]], Optional[int], Optional[int], int) -> Image + # type: (Optional[Mode], Optional[Union[Matrix4, Matrix12]], Optional[int], Optional[int], int) -> Image """ Returns a converted copy of this image. For the "P" mode, this method translates pixels through the palette. If mode is @@ -1531,7 +1532,7 @@ class Image(object): self.paste(result, box) def point(self, lut, mode=None): - # type: (Union[List, Callable[[Any], Any]], Optional[Text]) -> Image + # type: (Union[List, Callable[[Any], Any]], Optional[Mode]) -> Image """ Maps this image through a lookup table or function. @@ -1644,7 +1645,7 @@ class Image(object): self.im.putdata(data, scale, offset) def putpalette(self, data, rawmode="RGB"): - # type: (Sequence[Union[int, bytes]], Text) -> None + # type: (Sequence[Union[int, bytes]], Mode) -> None """ Attaches a palette to this image. The image must be a "P" or "L" image, and the palette sequence must contain 768 integer @@ -2365,7 +2366,7 @@ def _check_size(size): def new(mode, size, color=0): - # type: (Text, Size, Optional[Union[int, float, Tuple, Text]]) -> Image + # type: (Mode, Size, Optional[Union[int, float, Tuple, Text]]) -> Image """ Creates a new image with the given mode and size. @@ -2397,7 +2398,7 @@ def new(mode, size, color=0): def frombytes(mode, size, data, decoder_name="raw", *args): - # type: (Text, Size, Sequence[bytes], Text, *Any) -> Image + # type: (Mode, Size, Sequence[bytes], Text, *Any) -> Image """ Creates a copy of an image memory from pixel data in a buffer. @@ -2442,7 +2443,7 @@ def fromstring(*args, **kw): def frombuffer(mode, size, data, decoder_name="raw", *args): - # type: (Text, Size, Sequence[bytes], Text, *Any) -> Image + # type: (Mode, Size, Sequence[bytes], Text, *Any) -> Image """ Creates an image memory referencing pixel data in a byte buffer. @@ -2504,7 +2505,7 @@ def frombuffer(mode, size, data, decoder_name="raw", *args): def fromarray(obj, mode=None): - # type: (object, Optional[Text]) -> Image + # type: (object, Optional[Mode]) -> Image """ Creates an image memory from an object exporting the array interface (using the buffer protocol). @@ -2775,7 +2776,7 @@ def eval(image, *args): def merge(mode, bands): - # type: (Text, Sequence[Image]) -> Image + # type: (Mode, Sequence[Image]) -> Image """ Merge a set of single band images into a new multiband image. @@ -2961,7 +2962,7 @@ def effect_noise(size, sigma): def linear_gradient(mode): - # type: (Text) -> Image + # type: (Mode) -> Image """ Generate 256x256 linear gradient from black to white, top to bottom. @@ -2971,7 +2972,7 @@ def linear_gradient(mode): def radial_gradient(mode): - # type: (Text) -> Image + # type: (Mode) -> Image """ Generate 256x256 radial gradient from black to white, centre to edge.