chore(deps): update dependency pillow to v12
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| Pillow (changelog) | ==10.4.0 -> ==12.0.0 |
||
| pillow (changelog) | ==10.4.0 -> ==12.0.0 |
||
| pillow (changelog) | ==9.5.0 -> ==12.0.0 |
||
| pillow (changelog) | ==10.3.0 -> ==12.0.0 |
||
| pillow (changelog) | ==11.1.0 -> ==12.0.0 |
Release Notes
python-pillow/Pillow (Pillow)
v12.0.0
v11.3.0
https://pillow.readthedocs.io/en/stable/releasenotes/11.3.0.html
Deprecations
- Deprecate fromarray mode argument #9018 [@radarhere]
- Deprecate saving I mode images as PNG #9023 [@radarhere]
Documentation
- Added release notes for #9041 #9042 [@radarhere]
- Add release notes for #8912 and #8969 #9019 [@radarhere]
- ImageFont does not handle multiline text #9000 [@radarhere]
- Updated Ubuntu CI targets #8988 [@radarhere]
- Update MinGW package names #8987 [@H4M5TER]
- Updated docstring #8943 [@radarhere]
- Mention that tobytes() with the raw encoder uses Pack.c #8878 [@radarhere]
- Refactor docs
Makefile#8933 [@hugovk] - Add template for quarterly release issue #8932 [@aclark4life]
- Add list of third party plugins #8910 [@radarhere]
- Update redirected URL #8919 [@radarhere]
- Docs: use sentence case for headers #8914 [@hugovk]
- Docs: remove unused Makefile targets #8917 [@hugovk]
- Remove indentation from lists #8915 [@radarhere]
- Python 3.13 is tested on Arch #8894 [@radarhere]
- Move XV Thumbnails to read only section #8893 [@aclark4life]
- Updated macOS tested Pillow versions #8890 [@radarhere]
Dependencies
- Add AVIF to wheels using only aomenc and dav1d AVIF codecs for reduced size #8858 [@fdintino]
- Use same AVIF URL when fetching dependency #8871 [@radarhere]
- Update dependency mypy to v1.16.1 #9026 [@renovate[bot]]
- Update libpng to 1.6.49 #9014 [@radarhere]
- Update dependency cibuildwheel to v3 #9010 [@renovate[bot]]
- Updated libjpeg-turbo to 3.1.1 #9009 [@radarhere]
- Update dependency mypy to v1.16.0 #8991 [@renovate[bot]]
- Updated libpng to 1.6.48 #8940 [@radarhere]
- Updated Ghostscript to 10.5.1 #8939 [@radarhere]
- Updated harfbuzz to 11.2.1 #8937 [@radarhere]
- Updated libavif to 1.3.0 #8949 [@radarhere]
- Update dependency cibuildwheel to v2.23.3 #8931 [@renovate[bot]]
- Updated harfbuzz to 11.1.0 #8904 [@radarhere]
Testing
- Add
matchparameter topytest.warns()#9038 [@hugovk] - Increase pytest verbosity #9040 [@radarhere]
- Improve SgiImagePlugin test coverage #8896 [@radarhere]
- Update ruff pre-commit ID #8994 [@radarhere]
- Only check DHT marker for libjpeg-turbo #9025 [@radarhere]
- Improve BLP tests #9020 [@radarhere]
- Fix warning #9016 [@radarhere]
- Test Python 3.14t on macOS and Linux #9011 [@radarhere]
- Only accept missing tkinter when building wheels on Windows #8981 [@radarhere]
- Fix test #8996 [@radarhere]
- Stop testing deprecated Windows Server 2019 runner image #8989 [@radarhere]
- Run slow tests on valgrind, but without timeout #8975 [@radarhere]
- Close file pointer earlier #8895 [@radarhere]
- Added Fedora 42 #8899 [@radarhere]
- Removed Fedora 40 #8887 [@radarhere]
Type hints
- Assert palette is not None #8877 [@radarhere]
- Do not import type checking #8854 [@radarhere]
- Improve type hints #8883 [@radarhere]
- Update dependency mypy to v1.16.0 #8991 [@renovate[bot]]
Other changes
- Updated check script paths #9052 [@radarhere]
- Raise FileNotFoundError when opening an empty path #9048 [@radarhere]
- Handle IPTC TIFF tags with incorrect type #8925 [@radarhere]
- Do not update palette for L mode GIF frame #8924 [@radarhere]
- Use save parameters as encoderinfo defaults #9001 [@radarhere]
- Add support for iOS #9030 [@freakboy3742]
- Fix qtables and quality scaling #8879 [@Kyliroco]
- Read 16-bit McIdas images into I;16B mode to allow for memory mapping #9046 [@radarhere]
- Support ttb multiline text #8730 [@radarhere]
- Use unpacking #9044 [@radarhere]
- Fix saving MPO with more than one appended image #8979 [@radarhere]
- Restore original encoderinfo after saving #8942 [@radarhere]
- Return PixelAccess from first load of ICO and IPTC images #8922 [@radarhere]
- Improve justifying text #8905 [@radarhere]
- Set color table fourth channel to zero for 1 and L mode when saving BMP #8889 [@radarhere]
- Improve reading XPM images #8874 [@radarhere]
- Fix buffer overflow when saving compressed DDS images #9041 [@radarhere]
- Use PEP 489 multi-phase initialization #8983 [@radarhere]
- Support saving I;16L TIFF images #9015 [@radarhere]
- Do not call sys.executable in ImageShow in PyInstaller application #9028 [@radarhere]
- Search for libtiff library file first on Windows and macOS #9034 [@radarhere]
- Fix libtiff cleanup #9002 [@radarhere]
- Use percent formatting for _dbg calls #9035 [@radarhere]
- Removed ImageCmsProfile._set method #9032 [@radarhere]
- Added Python 3.14 macOS x86-64 wheels #9031 [@radarhere]
- Support writing QOI images #9007 [@thisismypassport]
- Simplify C error handling #9021 [@radarhere]
- Add Python 3.14 beta wheels #9012 [@hugovk]
- Remove padding between interleaved PCX palette data #9005 [@radarhere]
- Start QOI decoding with a zero-initialized array of previously seen pixels #9008 [@radarhere]
- Correct drawing I;16 horizontal lines #8985 [@radarhere]
- Reduce number of bytes read for PCX header #9004 [@radarhere]
- Handle XMP data from an UNDEFINED TIFF tag #8997 [@radarhere]
- Do not decode bytes in PPM error message #8958 [@radarhere]
- Parse XMP tag bytes without decoding to string #8960 [@radarhere]
- Clear TIFF core image if memory mapping was used for last load #8962 [@radarhere]
- Use mask in C when drawing wide polygon lines #8984 [@radarhere]
- Simplify code #8863 [@radarhere]
- Call startswith once with a tuple #8998 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate #8993 [@pre-commit-ci[bot]]
- Use ImageFile.MAXBLOCK in tobytes() #8906 [@radarhere]
- Removed unreachable code #8918 [@radarhere]
- Valgrind Memory Leak Checking #8954 [@wiredfool]
- Add parallel test target, using pytest-xdist #8972 [@wiredfool]
- Add support for flat uint8 arrow arrays for multi channel images #8908 [@wiredfool]
- Removed CMAKE_POLICY_VERSION_MINIMUM=3.5 for libavif #8973 [@radarhere]
- Reduced number of bytes read in WMF header #8964 [@radarhere]
- Do not build against libavif < 1 #8969 [@radarhere]
- Improved support for Python 3.14 #8948 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate #8944 [@pre-commit-ci[bot]]
- Allow loading ImageFile state from Pillow < 11.2.1 #8938 [@radarhere]
- Remove outdated comment #8929 [@radarhere]
- Add support for Grim in Wayland sessions ImageGrab #8912 [@AdianKozlica]
- Add
make [-C docs] htmlliveto rebuild and reload HTML files #8913 [@hugovk] - Build Windows arm64 wheels on arm64 runner #8898 [@radarhere]
v11.2.1
https://pillow.readthedocs.io/en/stable/releasenotes/11.2.1.html
Deprecations
- Moved get_child_images() to ImageFile #8689 [@radarhere]
Documentation
- Add 11.2.1 release notes #8885 [@radarhere]
- Added avif to config settings #8875 [@radarhere]
- Added release notes for #8330 #8853 [@radarhere]
- Added release notes for #8781 and #8837 #8843 [@radarhere]
- Added media_white_point to ImageCms documentation #8829 [@radarhere]
- Removed FIXME #8825 [@radarhere]
- Updated comment #8822 [@radarhere]
- Added release notes for #8807 #8824 [@radarhere]
- DXT3 images are read in RGBA mode #8817 [@radarhere]
- JPEG comments are from the COM marker #8788 [@radarhere]
- Update Sphinx to 8.2 to remove nitpick ignore #8763 [@radarhere]
- Updated AffineTransform docstring to mention it uses the inverse matrix #8735 [@radarhere]
- Added MozJPEG documentation #8699 [@radarhere]
- Added Sphinx configuration key #8691 [@radarhere]
- Updated macOS tested Pillow versions #8654 [@radarhere]
Dependencies
- Updated xz to 5.8.1 #8868 [@radarhere]
- Updated harfbuzz to 11.0.1 #8870 [@radarhere]
- Update scientific-python/upload-nightly-action action to v0.6.2 #8865 [@renovate[bot]]
- Updated xz to 5.8.0 in macOS and Linux wheels, but not on manylinux2014 #8836 [@radarhere]
- Update dependency cibuildwheel to v2.23.2 #8832 [@renovate[bot]]
- Updated harfbuzz to 11.0.0 #8830 [@radarhere]
- Update dependency cibuildwheel to v2.23.1 #8818 [@renovate[bot]]
- Updated Ghostscript to 10.5.0 #8814 [@radarhere]
- Updated libtiff to 4.7.0 #8812 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate #8795 [@pre-commit-ci[bot]]
- Updated harfbuzz to 10.4.0 #8770 [@radarhere]
- Update dependency mypy to v1.15.0 #8791 [@renovate[bot]]
- Updated libpng to 1.6.47 #8764 [@radarhere]
- Updated lcms2 to 2.17 #8742 [@radarhere]
- Update dependency cibuildwheel to v2.23.0 #8785 [@renovate[bot]]
- Updated zlib-ng to 2.2.4 #8745 [@radarhere]
- Updated libimagequant to 4.3.4 on Windows #8744 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate #8729 [@pre-commit-ci[bot]]
- Updated harfbuzz to 10.2.0 #8688 [@radarhere]
- Updated xz to 5.6.4 #8711 [@radarhere]
- Updated libpng to 1.6.46 #8712 [@radarhere]
- Updated libimagequant to 4.3.4 #8710 [@radarhere]
- Updated libpng to 1.6.45 #8670 [@radarhere]
- Update cygwin/cygwin-install-action action to v5 #8675 [@renovate[bot]]
- [pre-commit.ci] pre-commit autoupdate #8665 [@pre-commit-ci[bot]]
- Updated freetype to 2.13.3 in macOS and Linux wheels #8653 [@radarhere]
- Upgrade zlib-ng to 2.2.3 #8656 [@hugovk]
Testing
- Fixed unclosed file warning #8847 [@radarhere]
- Assert image type #8619 [@radarhere]
- Parametrize tests #8838 [@radarhere]
- Change back to actions/setup-python #8833 [@radarhere]
- Simplified test code #8823 [@radarhere]
- Improved FliImagePlugin test coverage #8806 [@radarhere]
- Install libtiff-dev on Ubuntu GitHub Actions #8816 [@radarhere]
- Test using _seek to skip frames #8804 [@radarhere]
- Improved PcxImagePlugin test coverage #8797 [@radarhere]
- Use match argument #8801 [@radarhere]
- Improved BdfFontFile test coverage #8783 [@radarhere]
- Revert "Do not install libimagequant" #8778 [@radarhere]
- Improved FtexImagePlugin test coverage #8766 [@radarhere]
- Improved FontFile test coverage #8771 [@radarhere]
- Improved MpoImagePlugin test coverage #8765 [@radarhere]
- Improved SunImagePlugin coverage #8762 [@radarhere]
- Improve TarIO test coverage #8759 [@radarhere]
- Improve type checking in tests #8618 [@radarhere]
- Add PyPy3.11 to CI #8758 [@hugovk]
- Don't call
make cleanorpipin tox #8754 [@hugovk] - Don't shadow builtin open #8756 [@radarhere]
- Removed unused test code #8752 [@radarhere]
- Use monkeypatch #8747 [@radarhere]
- Do not install libimagequant on MinGW #8724 [@radarhere]
- Use getpixel() instead of load() #8727 [@radarhere]
- Revert "Ignore brew dependencies for libraqm on macOS 13" #8725 [@radarhere]
- Fixed exceptions when closing AppendingTiffWriter #8723 [@radarhere]
- Fixed unclosed file warnings #8705 [@radarhere]
- Use monkeypatch #8707 [@radarhere]
- Use Ubuntu 22.04 for 24.04 ppc64le and s390x #8713 [@radarhere]
- Updated Ubuntu arm to 24.04 with arm64 runner #8700 [@radarhere]
- Test oldest Python on 32-bit Windows 2019 and remove AppVeyor #8525 [@hugovk]
- Corrected argument types #8681 [@radarhere]
- Test Python 3.14 pre-release #8690 [@radarhere]
- Skip test_embeddable if compiler cannot be initialized #8686 [@radarhere]
- Improved test coverage #8679 [@radarhere]
- Removed xfail for test_embeddable on Python 3.13 #8683 [@radarhere]
- Use python-numpy and python-olefile instead of virtual python3 packages #8682 [@hugovk]
- Use python-pip instead of python3-pip in MinGW #8678 [@radarhere]
- Use ImageFile._Tile #8666 [@radarhere]
- Improved SPIDER test coverage #8668 [@radarhere]
- Removed unused image open #8649 [@radarhere]
- PngImageFile text is a property #8648 [@radarhere]
- Trigger wheel builds from changes in pyproject.toml #8674 [@radarhere]
Type hints
- Added fromarrow type hints #8867 [@radarhere]
- Assert image type #8619 [@radarhere]
- Check that _fp type is not DeferredError before use #8640 [@radarhere]
- Corrected type check #8760 [@radarhere]
- Improve type checking in tests #8618 [@radarhere]
- Corrected argument types #8681 [@radarhere]
- Use ImageFile._Tile #8666 [@radarhere]
- Added return types #8639 [@radarhere]
- Add overloads for exif_transpose #8657 [@cdce8p]
Other changes
- Do not include libavif in wheels #8876 [@radarhere]
- Remove GPL v2 from FreeType license #8884 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate #8873 [@pre-commit-ci[bot]]
- Replace deprecated classifier with licence expression (PEP 639) #8850 [@hugovk]
- Fixed conversion of AVIF image rotation property to EXIF orientation #8866 [@fdintino]
- Removed condition that is always true #8862 [@radarhere]
- Use multibuild build_github #8861 [@radarhere]
- Include filename in ImageFile state #8859 [@radarhere]
- Add KDE Wayland support for ImageGrab #8842 [@AdianKozlica]
- Only change readonly if saved filename matches opened filename #8852 [@radarhere]
- Allow HWND to be passed to ImageGrab.grab() on Windows #8516 [@radarhere]
- Allow cmake<4 when building libavif and libtiff #8851 [@radarhere]
- Image -> Arrow support #8330 [@wiredfool]
- Add AVIF plugin (decoder + encoder using libavif) #5201 [@fdintino]
- Updated xz to 5.8.0 on manylinux2014 by removing po4a dependency #8848 [@radarhere]
- Revert to zlib on macOS < 10.15 #8772 [@radarhere]
- Close TarIO file handle on error #8846 [@radarhere]
- Do not import TYPE_CHECKING #8844 [@radarhere]
- Enable memory mapping on PyPy #8840 [@radarhere]
- Corrected Palm P mode save #8685 [@radarhere]
- Improved connecting discontiguous corners #8659 [@radarhere]
- Only read until the offset of the next tile #8609 [@radarhere]
- Added USE_RAW_ALPHA for BMP images #8602 [@radarhere]
- Fixed orientation when opening YCbCr TIFF images #8556 [@radarhere]
- Allow loading of EMF images at a given DPI #8536 [@radarhere]
- Skip failing records when rendering WMF images #8506 [@radarhere]
- If append_images is populated, default save_all to True #8781 [@radarhere]
- Added GimpPaletteFile frombytes() to allow for unlimited parsing #8826 [@radarhere]
- Do not load image during save if file extension is unknown #8835 [@radarhere]
- Do not convert BC1 LUT to UINT32 #8837 [@radarhere]
- Start from zero index when reading GimpPaletteFile #8805 [@radarhere]
- Support saving DDS images with pixel formats #8807 [@radarhere]
- If every TIFF tile covers the image, only use the last offset #8820 [@radarhere]
- Use docker/setup-qemu-action #8819 [@radarhere]
- Replace deprecated Renovate schedule with cron syntax #8810 [@hugovk]
- Allow coords to be sequence of lists #8800 [@radarhere]
- Use ABCMeta in classes with abstractmethod #8803 [@radarhere]
- Support reading grayscale JPEG2000 images with 4 channels #8786 [@radarhere]
- Allow encoderconfig and encoderinfo to be set for appended TIFF images #8780 [@radarhere]
- Call
startswith/endswithonce with a tuple, andrangewithoutstart=0#8799 [@hugovk] - Corrected exif_transpose error when XMP is tuple #8792 [@radarhere]
- Fixed loading GD images #8793 [@radarhere]
- Image.core.outline will no longer raise an AttributeError #8794 [@radarhere]
- Removed ImageTk._show #8782 [@radarhere]
- _seek_check already raises an EOFError #8773 [@radarhere]
- Only set mode when necessary in FtexImagePlugin #8767 [@radarhere]
- Build PyPy3.11 wheel for macOS 10.15 x86_64 #8789 [@hugovk]
- Replace slice and comparison with
startswith/endswith#8761 [@hugovk] - Use member names to initialize PyTypeObjects #8741 [@radarhere]
- Pass CFLAGS to build_simple directly #8738 [@radarhere]
- Only crop GIF frames when saving with disposal method 2 if transparency is present #8748 [@radarhere]
- Update
pythoncapi_compat.hto fix building with PyPy3.11 #8757 [@mgorny] - Rewrite the install_name of the ZLIB-NG library on macOS #8673 [@freakboy3742]
- Remove debug
Image._wedge#8755 [@hugovk] - Remove unused
bdf_slantandbdf_spacingvariables #8753 [@hugovk] - Use boolean format argument for irreversible #8739 [@radarhere]
- Simplify Python code by receiving tuple from C #8740 [@radarhere]
- Use member names to initialize modules #8734 [@radarhere]
- Simplify Python code by passing tuples to C #8733 [@radarhere]
- Removed redundant argument parsing #8732 [@radarhere]
- Added "justify" align for multiline text #8721 [@radarhere]
- Seek relative to current position #8709 [@radarhere]
- Only use outside border of stroke in text() #8701 [@radarhere]
- Support saving PNG cICP chunk #8704 [@radarhere]
- Use Py_RETURN_NONE macro when possible #8717 [@radarhere]
- Added ImageFile close() #8702 [@radarhere]
- Use arm64 Linux runners for wheels #8698 [@radarhere]
- Test Windows amd64 wheels with NumPy #8696 [@radarhere]
- Added logging to TiffImagePlugin fixIFD() #8568 [@radarhere]
- Removed miniconda CPPFLAGS #8695 [@radarhere]
- Improved comment #8694 [@radarhere]
- Only F mode starts with F #8684 [@radarhere]
- Allow saving multiple frames as BigTIFF #8663 [@radarhere]
- Simplified converting to char * #8662 [@radarhere]
- Use namedtuple _replace #8652 [@radarhere]
- Updated TIFF decode error message string #8660 [@HarmvandenBrand]
- Added compile-time mozjpeg feature flag #8645 [@radarhere]
- Improved Docker coverage reporting #8664 [@radarhere]
- Removed giflib as webp dependency #8661 [@radarhere]
- Corrected installing ImageMagick on cifuzz #8658 [@radarhere]
v11.1.0
See GitHub Releases:
v11.0.0
-
Update licence to MIT-CMU #8460 [hugovk]
-
Conditionally define ImageCms type hint to avoid requiring core #8197 [radarhere]
-
Support writing LONG8 offsets in AppendingTiffWriter #8417 [radarhere]
-
Use ImageFile.MAXBLOCK when saving TIFF images #8461 [radarhere]
-
Do not close provided file handles with libtiff when saving #8458 [radarhere]
-
Support ImageFilter.BuiltinFilter for I;16* images #8438 [radarhere]
-
Use ImagingCore.ptr instead of ImagingCore.id #8341 [homm, radarhere, hugovk]
-
Updated EPS mode when opening images without transparency #8281 [Yay295, radarhere]
-
Use transparency when combining P frames from APNGs #8443 [radarhere]
-
Support all resampling filters when resizing I;16* images #8422 [radarhere]
-
Free memory on early return #8413 [radarhere]
-
Cast int before potentially exceeding INT_MAX #8402 [radarhere]
-
Check image value before use #8400 [radarhere]
-
Improved copying imagequant libraries #8420 [radarhere]
-
Use Capsule for WebP saving #8386 [homm, radarhere]
-
Fixed writing multiple StripOffsets to TIFF #8317 [Yay295, radarhere]
-
Fix
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Never, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
- [ ] If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.
Summary of Changes
Hello @renovate-bot, I'm Gemini Code Assist[^1]! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request performs a routine dependency update for the Pillow library, upgrading it to version 12.0.0 across multiple Python requirements.txt files. This ensures that all relevant projects and examples are leveraging the most current version of the image processing library, benefiting from the latest improvements and maintaining compatibility with modern Python environments.
Highlights
-
Pillow Dependency Update: The
Pillowlibrary has been updated to its latest major version,v12.0.0, across all affectedrequirements.txtfiles. This update brings the projects up to date with the newest features, performance enhancements, and security fixes from the Pillow project. - Broad Impact: This change affects various Python projects within the repository, including App Engine flexible environment examples, Dataflow GPU examples, and several Generative AI and Vision API snippets, ensuring consistent use of the latest Pillow version.
-
Version Range: The previous
Pillowversions being updated ranged from9.5.0to11.1.0, indicating a significant leap for some projects to thev12.0.0release.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.
| Feature | Command | Description |
|---|---|---|
| Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
| Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
| Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in pull request comments and review comments. |
| Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with :thumbsup: and :thumbsdown: on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
[^1]: Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.