NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2034 most downloaded on PyPI
Typing stubs for Pillow
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 9 days to 3 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
98 releases · first in 2021
One column per quarter.
Using precise code for pyright: ignore and re-enabling various pyright tests
Using precise code for pyright: ignore and re-enabling various pyright tests (#12576)
Use assignments for enums in pillow
Use assignments for enums in pillow (#11959)
Add typehints for open in PIL.WallImageFile
Add typehints for open in PIL.WallImageFile (#11887)
Add precise values for enum members where possible
Add precise values for enum members where possible (#11299)
Co-authored-by: Jelle Zijlstra jelle.zijlstra@gmail.com Co-authored-by: Alex Waygood alex.waygood@gmail.com
[stubsabot] Mark Pillow as obsolete since 10.3.0
[stubsabot] Mark Pillow as obsolete since 10.3.0 (#11698)
Depend on Pillow instead of types-Pillow
Depend on Pillow instead of types-Pillow (#11720)
Remove bare Incomplete annotations in third-party stubs
Remove bare Incomplete annotations in third-party stubs (#11671)
[Pillow] Annotate ImageSequence.pyi
[Pillow] Annotate ImageSequence.pyi (#11625)
Use PEP 570 syntax in third party stubs
Use PEP 570 syntax in third party stubs (#11554)
Pillow: Allow float(s) for cutoff param of autocontrast
Type obj parameter of PIL.Image.fromarray
Type obj parameter of PIL.Image.fromarray (#11176)
Add a number of properties to PIL.ImageStat.Stat
Add a number of properties to PIL.ImageStat.Stat (#11303)
[Pillow] Update to 10.2.*
[Pillow] Update to 10.2.* (#11232)
Update typing_extensions imports in third-party stubs
Update typing_extensions imports in third-party stubs (#11245)
third-party: make some protocol params pos-only
third-party: make some protocol params pos-only (#11006)
Bump flake8-pyi to 23.11.0
Bump flake8-pyi to 23.11.0 (#10997)
Bump Pillow to 10.1.*
Bump Pillow to 10.1.* (#10897)
[Pillow] Fix typing of FreeTypeFont.getlength
[Pillow] Fix typing of FreeTypeFont.getlength (#10663)
Add an upstream_repository field to METADATA.toml
Add an upstream_repository field to METADATA.toml (#10487)
Closes: #10478
Pillow: mark MAX_IMAGE_PIXELS as non-final
Pillow: mark MAX_IMAGE_PIXELS as non-final (#10445)
[Pillow] Replace Any with Incomplete
Pillow: Add tuple[int, int] to _Color TypeAlias
Pillow: Add tuple[int, int] to _Color TypeAlias (#10407)
[PIL] Make return type of PyDecoder.decode a tuple
[PIL] Make return type of PyDecoder.decode a tuple (#10381)
Add partial_stub metadata field
Add partial_stub metadata field (#10157)
[Pillow] Add all missing items
[Pillow] Add all missing items (#10114)
Add a return type for PIL.Image.load
Add a return type for PIL.Image.load (#9466)
Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com
[Pillow] Add Base and GPS enums in PIL.ExifTags
[Pillow] Add Base and GPS enums in PIL.ExifTags (#10051)
Release: https://pypi.org/pypi/Pillow/9.5.0 Homepage: https://python-pillow.org Changelog: https://github.com/python-pillow/Pillow/blob/main/CHANGES.r
Bump Pillow to 9.5.* (#10046)
Release: https://pypi.org/pypi/Pillow/9.5.0 Homepage: https://python-pillow.org Changelog: https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst Diff: https://github.com/python-pillow/Pillow/compare/9.4.0...9.5.0
Delete some unnecessary type aliases in tkinter
Delete some unnecessary type aliases in tkinter (#9970)
Add default values for third-party stubs beginning with 'P'
Add default values for third-party stubs beginning with 'P' (#9957)
Improve many __(a)exit__ annotations
Improve many __(a)exit__ annotations (#9696)
Update Unused parameters in stubs/
Update Unused parameters in stubs/ (#9704)
Update _Unused TypeAlias
Update object | None params
Replace unused object parameters with Unused alias
Integrate requirements-stubtest.txt into METADATA.toml
Integrate requirements-stubtest.txt into METADATA.toml (#9778)
Stubtest settings: change ignore_missing_stub default to false
Stubtest settings: change ignore_missing_stub default to false (#9779)
If you're reading about this commit from an autogenerated changelog entry, this should have no user-visible impact on how the stubs are interpreted by a type checker; it's just an internal change to how typeshed's tests work.
Add types for PIL.ImageTk
Add types for PIL.ImageTk (#9733)
Use typing_extensions.Self instead of _typeshed.Self
Use typing_extensions.Self instead of _typeshed.Self (#9702)
Add comments when subclassing Any
Add comments when subclassing Any (#9732)
Pillow: Add missing enums from 9.1.0
Pillow: Add missing enums from 9.1.0 (#9698)
Use _typeshed.FileDescriptorOrPath in stubs
Use _typeshed.FileDescriptorOrPath in stubs (#9695)
Enable flake8-pyi's Y037
Enable flake8-pyi's Y037 (#9686)
Use OSError instead of IOError
Use OSError instead of IOError (#9683)
Bump black to 23.1.0
Bump black to 23.1.0 (#9647)
Replace Any with Incomplete in many places
Replace Any with Incomplete in many places (#9565)
Replace Any with Incomplete in many places
Replace Any with Incomplete in many places (#9558)
types-Pillow: Allow stubtest to validate PIL.FpxImagePlugin and PIL.MicImagePlugin
types-Pillow: Allow stubtest to validate PIL.FpxImagePlugin and PIL.MicImagePlugin (#9531)
Update various comments now non-types dependencies are allowed
Update various comments now non-types dependencies are allowed (#9527)
Allowlist-only fixes for stubtest on Windows
Allowlist-only fixes for stubtest on Windows (#9522)
Bump Pillow to 9.4 (#9453) Closes #9448
Bump Pillow to 9.4 (#9453)
Closes #9448
PIL: fix image convert palette type
PIL: fix image convert palette type (#9331)
PIL: add optimize param to save
PIL: add optimize param to save (#9328)
Mark first argument of __[get|set|del]attr__ as str
Mark first argument of __[get|set|del]attr__ as str (#9245)
Annotate known magic-method return types
Annotate known magic-method return types (#9131)
[stubsabot] Bump Pillow to 9.3.*
[stubsabot] Bump Pillow to 9.3.* (#9039)
Release: https://pypi.org/pypi/Pillow/9.3.0 Homepage: https://python-pillow.org Changelog: https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst Diff: https://github.com/python-pillow/Pillow/compare/9.2.0...9.3.0
Stubsabot analysis of the diff between the two releases:
If stubtest fails for this PR:
Note that you will need to close and re-open the PR in order to trigger CI
Co-authored-by: stubsabot <>
Use Incomplete instead of Any in __getattr__
Use Incomplete instead of Any in __getattr__ (#8903)
Allow PIL.Image.MAX_IMAGE_PIXELS to be None
Allow PIL.Image.MAX_IMAGE_PIXELS to be None (#8876)
_decompression_bomb_check() explicitly checks for None and handles it as "unlimited".
fix: pillow.ImageDraw.textlength may return float
fix: pillow.ImageDraw.textlength may return float (#8773)
[pillow] add new PIL.Image enums
[pillow] add new PIL.Image enums (#8419)
Co-authored-by: Shantanu 12621235+hauntsaninja@users.noreply.github.com
[stubsabot] Bump Pillow to 9.2.*
[stubsabot] Bump Pillow to 9.2.* (#8226)
Improve_Color type alias of PIL.Image (#8210)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com
Fix box parameter type of Pillow.PIL.Image.paste
Fix box parameter type of Pillow.PIL.Image.paste (#8090)
When executing img.paste(cropped, box=(10.5, 10.5)):
TypeError: 'float' object cannot be interpreted as an integer
So the box parameter's type should be not tuple[float, float] but tuple[int, int]. (same as _Box)
Pillow: change _Mode type alias to str
Pillow: change _Mode type alias to str (#7967)
Your coding agent can read these notes before it upgrades. Set up the MCP server →