Changelog
### 7.1.2
```
=========================
Bug Fixes
---------
- `9726 <https://github.com/pytest-dev/pytest/issues/9726>`_: An unnecessary ``numpy`` import inside :func:`pytest.approx` was removed.
- `9820 <https://github.com/pytest-dev/pytest/issues/9820>`_: Fix comparison of ``dataclasses`` with ``InitVar``.
- `9869 <https://github.com/pytest-dev/pytest/issues/9869>`_: Increase ``stacklevel`` for the ``NODE_CTOR_FSPATH_ARG`` deprecation to point to the
user's code, not pytest.
- `9871 <https://github.com/pytest-dev/pytest/issues/9871>`_: Fix a bizarre (and fortunately rare) bug where the `temp_path` fixture could raise
an internal error while attempting to get the current user's username.
```
Links
- PyPI: https://pypi.org/project/pytest
- Changelog: https://pyup.io/changelogs/pytest/
- Homepage: https://docs.pytest.org/en/latest/
Changelog
### 9.2.0
```
------------------
- Deprecate ImageFont.getsize and related functions 6381
[nulano, radarhere]
- Fixed null check for fribidi_version_info in FriBiDi shim 6376
[nulano]
- Added GIF decompression bomb check 6402
[radarhere]
- Handle PCF fonts files with less than 256 characters 6386
[dawidcrivelli, radarhere]
- Improved GIF optimize condition 6378
[raygard, radarhere]
- Reverted to __array_interface__ with the release of NumPy 1.23 6394
[radarhere]
- Pad PCX palette to 768 bytes when saving 6391
[radarhere]
- Fixed bug with rounding pixels to palette colors 6377
[btrekkie, radarhere]
- Use gnome-screenshot on Linux if available 6361
[radarhere, nulano]
- Fixed loading L mode BMP RLE8 images 6384
[radarhere]
- Fixed incorrect operator in ImageCms error 6370
[LostBenjamin, hugovk, radarhere]
- Limit FPX tile size to avoid extending outside image 6368
[radarhere]
- Added support for decoding plain PPM formats 5242
[Piolie, radarhere]
- Added apply_transparency() 6352
[radarhere]
- Fixed behaviour change from endian fix 6197
[radarhere]
- Allow remapping P images with RGBA palettes 6350
[radarhere]
- Fixed drawing translucent 1px high polygons 6278
[radarhere]
- Pad COLORMAP to 768 items when saving TIFF 6232
[radarhere]
- Fix P -> PA conversion 6337
[RedShy, radarhere]
- Once exif data is parsed, do not reload unless it changes 6335
[radarhere]
- Only try to connect discontiguous corners at the end of edges 6303
[radarhere]
- Improve transparency handling when saving GIF images 6176
[radarhere]
- Do not update GIF frame position until local image is found 6219
[radarhere]
- Netscape GIF extension belongs after the global color table 6211
[radarhere]
- Only write GIF comments at the beginning of the file 6300
[raygard, radarhere]
- Separate multiple GIF comment blocks with newlines 6294
[raygard, radarhere]
- Always use GIF89a for comments 6292
[raygard, radarhere]
- Ignore compression value from BMP info dictionary when saving as TIFF 6231
[radarhere]
- If font is file-like object, do not re-read from object to get variant 6234
[radarhere]
- Raise ValueError when trying to access internal fp after close 6213
[radarhere]
- Support more affine expression forms in im.point() 6254
[benrg, radarhere]
- Populate Python palette in fromarray() 6283
[radarhere]
- Raise ValueError if PNG chunks are truncated 6253
[radarhere]
- Use durations from each frame by default when saving GIFs 6265
[radarhere]
- Adjust BITSPERSAMPLE to match SAMPLESPERPIXEL when opening TIFFs 6270
[radarhere]
- Search pkgconf system libs/cflags 6138
[jameshilliard, radarhere]
- Raise ValueError for invalid PPM maxval 6242
[radarhere]
- Corrected screencapture argument in ImageGrab.grab() 6244
[axt-one]
- Deprecate support for Qt 5 (PyQt5 and PySide2) 6237
[hugovk, radarhere]
- Increase wait time of temporary file deletion on Windows 6224
[AlexTedeschi]
- Deprecate FreeTypeFont.getmask2 fill parameter 6220
[nulano, radarhere, hugovk]
- Round lut values where necessary 6188
[radarhere]
- Load before getting size in resize() 6190
[radarhere]
- Load image before performing size calculations in thumbnail() 6186
[radarhere]
- Deprecated PhotoImage.paste() box parameter 6178
[radarhere]
```
### 9.1.1
```
------------------
- When reading past the end of a TGA scan line, reduce bytes left. CVE-2022-30595
[radarhere]
- Do not open images with zero or negative height 6269
[radarhere]
```
Links
- PyPI: https://pypi.org/project/pillow
- Changelog: https://pyup.io/changelogs/pillow/
- Homepage: https://python-pillow.org
Changelog
### 4.33.3
```
----------------------------
- [designspaceLib] Fixed typo in ``deepcopyExceptFonts`` method, preventing font
references to be transferred (2600). Fixed another typo in the name of ``Range``
dataclass's ``__post_init__`` magic method (2597).
```
### 4.33.2
```
----------------------------
- [otBase] Make logging less verbose when harfbuzz fails to serialize. Do not exit
at the first failure but continue attempting to fix offset overflow error using
the pure-python serializer even when the ``USE_HARFBUZZ_REPACKER`` option was
explicitly set to ``True``. This is normal with fonts with relatively large
tables, at least until hb.repack implements proper table splitting.
```
### 4.33.1
```
----------------------------
- [otlLib] Put back the ``FONTTOOLS_GPOS_COMPACT_MODE`` environment variable to fix
regression in ufo2ft (and thus fontmake) introduced with v4.33.0 (2592, 2593).
This is deprecated and will be removed one ufo2ft gets updated to use the new
config setup.
```
### 4.33.0
```
----------------------------
- [OS/2 / merge] Automatically recalculate ``OS/2.xAvgCharWidth`` after merging
fonts with ``fontTools.merge`` (2591, 2538).
- [misc/config] Added ``fontTools.misc.configTools`` module, a generic configuration
system (2416, 2439).
Added ``fontTools.config`` module, a fontTools-specific configuration
system using ``configTools`` above.
Attached a ``Config`` object to ``TTFont``.
- [otlLib] Replaced environment variable for GPOS compression level with an
equivalent option using the new config system.
- [designspaceLib] Incremented format version to 5.0 (2436).
Added discrete axes, variable fonts, STAT information, either design- or
user-space location on instances.
Added ``fontTools.designspaceLib.split`` module to split a designspace
into sub-spaces that interpolate and that represent the variable fonts
listed in the document.
Made instance names optional and allow computing them from STAT data instead.
Added ``fontTools.designspaceLib.statNames`` module.
Allow instances to have the same location as a previously defined STAT label.
Deprecated some attributes:
``SourceDescriptor``: ``copyLib``, ``copyInfo``, ``copyGroups``, ``copyFeatures``.
``InstanceDescriptor``: ``kerning``, ``info``; ``glyphs``: use rules or sparse
sources.
For both, ``location``: use the more explicit designLocation.
Note: all are soft deprecations and existing code should keep working.
Updated documentation for Python methods and the XML format.
- [varLib] Added ``build_many`` to build several variable fonts from a single
designspace document (2436).
Added ``fontTools.varLib.stat`` module to build STAT tables from a designspace
document.
- [otBase] Try to use the Harfbuzz Repacker for packing GSUB/GPOS tables when
``uharfbuzz`` python bindings are available (2552). Disable it by setting the
"fontTools.ttLib.tables.otBase:USE_HARFBUZZ_REPACKER" config option to ``False``.
If the option is set explicitly to ``True`` but ``uharfbuzz`` can't be imported
or fails to serialize for any reasons, an error will be raised (ImportError or
uharfbuzz errors).
- [CFF/T2] Ensure that ``pen.closePath()`` gets called for CFF2 charstrings (2577).
Handle implicit CFF2 closePath within ``T2OutlineExtractor`` (2580).
```
Links
- PyPI: https://pypi.org/project/fonttools
- Changelog: https://pyup.io/changelogs/fonttools/
- Repo: http://github.com/fonttools/fonttools
Update pytest from 7.1.1 to 7.1.2.
Changelog
### 7.1.2 ``` ========================= Bug Fixes --------- - `9726 <https://github.com/pytest-dev/pytest/issues/9726>`_: An unnecessary ``numpy`` import inside :func:`pytest.approx` was removed. - `9820 <https://github.com/pytest-dev/pytest/issues/9820>`_: Fix comparison of ``dataclasses`` with ``InitVar``. - `9869 <https://github.com/pytest-dev/pytest/issues/9869>`_: Increase ``stacklevel`` for the ``NODE_CTOR_FSPATH_ARG`` deprecation to point to the user's code, not pytest. - `9871 <https://github.com/pytest-dev/pytest/issues/9871>`_: Fix a bizarre (and fortunately rare) bug where the `temp_path` fixture could raise an internal error while attempting to get the current user's username. ```Links
- PyPI: https://pypi.org/project/pytest - Changelog: https://pyup.io/changelogs/pytest/ - Homepage: https://docs.pytest.org/en/latest/Update pillow from 9.1.0 to 9.2.0.
Changelog
### 9.2.0 ``` ------------------ - Deprecate ImageFont.getsize and related functions 6381 [nulano, radarhere] - Fixed null check for fribidi_version_info in FriBiDi shim 6376 [nulano] - Added GIF decompression bomb check 6402 [radarhere] - Handle PCF fonts files with less than 256 characters 6386 [dawidcrivelli, radarhere] - Improved GIF optimize condition 6378 [raygard, radarhere] - Reverted to __array_interface__ with the release of NumPy 1.23 6394 [radarhere] - Pad PCX palette to 768 bytes when saving 6391 [radarhere] - Fixed bug with rounding pixels to palette colors 6377 [btrekkie, radarhere] - Use gnome-screenshot on Linux if available 6361 [radarhere, nulano] - Fixed loading L mode BMP RLE8 images 6384 [radarhere] - Fixed incorrect operator in ImageCms error 6370 [LostBenjamin, hugovk, radarhere] - Limit FPX tile size to avoid extending outside image 6368 [radarhere] - Added support for decoding plain PPM formats 5242 [Piolie, radarhere] - Added apply_transparency() 6352 [radarhere] - Fixed behaviour change from endian fix 6197 [radarhere] - Allow remapping P images with RGBA palettes 6350 [radarhere] - Fixed drawing translucent 1px high polygons 6278 [radarhere] - Pad COLORMAP to 768 items when saving TIFF 6232 [radarhere] - Fix P -> PA conversion 6337 [RedShy, radarhere] - Once exif data is parsed, do not reload unless it changes 6335 [radarhere] - Only try to connect discontiguous corners at the end of edges 6303 [radarhere] - Improve transparency handling when saving GIF images 6176 [radarhere] - Do not update GIF frame position until local image is found 6219 [radarhere] - Netscape GIF extension belongs after the global color table 6211 [radarhere] - Only write GIF comments at the beginning of the file 6300 [raygard, radarhere] - Separate multiple GIF comment blocks with newlines 6294 [raygard, radarhere] - Always use GIF89a for comments 6292 [raygard, radarhere] - Ignore compression value from BMP info dictionary when saving as TIFF 6231 [radarhere] - If font is file-like object, do not re-read from object to get variant 6234 [radarhere] - Raise ValueError when trying to access internal fp after close 6213 [radarhere] - Support more affine expression forms in im.point() 6254 [benrg, radarhere] - Populate Python palette in fromarray() 6283 [radarhere] - Raise ValueError if PNG chunks are truncated 6253 [radarhere] - Use durations from each frame by default when saving GIFs 6265 [radarhere] - Adjust BITSPERSAMPLE to match SAMPLESPERPIXEL when opening TIFFs 6270 [radarhere] - Search pkgconf system libs/cflags 6138 [jameshilliard, radarhere] - Raise ValueError for invalid PPM maxval 6242 [radarhere] - Corrected screencapture argument in ImageGrab.grab() 6244 [axt-one] - Deprecate support for Qt 5 (PyQt5 and PySide2) 6237 [hugovk, radarhere] - Increase wait time of temporary file deletion on Windows 6224 [AlexTedeschi] - Deprecate FreeTypeFont.getmask2 fill parameter 6220 [nulano, radarhere, hugovk] - Round lut values where necessary 6188 [radarhere] - Load before getting size in resize() 6190 [radarhere] - Load image before performing size calculations in thumbnail() 6186 [radarhere] - Deprecated PhotoImage.paste() box parameter 6178 [radarhere] ``` ### 9.1.1 ``` ------------------ - When reading past the end of a TGA scan line, reduce bytes left. CVE-2022-30595 [radarhere] - Do not open images with zero or negative height 6269 [radarhere] ```Links
- PyPI: https://pypi.org/project/pillow - Changelog: https://pyup.io/changelogs/pillow/ - Homepage: https://python-pillow.orgUpdate fonttools[unicode] from 4.32.0 to 4.33.3.
Changelog
### 4.33.3 ``` ---------------------------- - [designspaceLib] Fixed typo in ``deepcopyExceptFonts`` method, preventing font references to be transferred (2600). Fixed another typo in the name of ``Range`` dataclass's ``__post_init__`` magic method (2597). ``` ### 4.33.2 ``` ---------------------------- - [otBase] Make logging less verbose when harfbuzz fails to serialize. Do not exit at the first failure but continue attempting to fix offset overflow error using the pure-python serializer even when the ``USE_HARFBUZZ_REPACKER`` option was explicitly set to ``True``. This is normal with fonts with relatively large tables, at least until hb.repack implements proper table splitting. ``` ### 4.33.1 ``` ---------------------------- - [otlLib] Put back the ``FONTTOOLS_GPOS_COMPACT_MODE`` environment variable to fix regression in ufo2ft (and thus fontmake) introduced with v4.33.0 (2592, 2593). This is deprecated and will be removed one ufo2ft gets updated to use the new config setup. ``` ### 4.33.0 ``` ---------------------------- - [OS/2 / merge] Automatically recalculate ``OS/2.xAvgCharWidth`` after merging fonts with ``fontTools.merge`` (2591, 2538). - [misc/config] Added ``fontTools.misc.configTools`` module, a generic configuration system (2416, 2439). Added ``fontTools.config`` module, a fontTools-specific configuration system using ``configTools`` above. Attached a ``Config`` object to ``TTFont``. - [otlLib] Replaced environment variable for GPOS compression level with an equivalent option using the new config system. - [designspaceLib] Incremented format version to 5.0 (2436). Added discrete axes, variable fonts, STAT information, either design- or user-space location on instances. Added ``fontTools.designspaceLib.split`` module to split a designspace into sub-spaces that interpolate and that represent the variable fonts listed in the document. Made instance names optional and allow computing them from STAT data instead. Added ``fontTools.designspaceLib.statNames`` module. Allow instances to have the same location as a previously defined STAT label. Deprecated some attributes: ``SourceDescriptor``: ``copyLib``, ``copyInfo``, ``copyGroups``, ``copyFeatures``. ``InstanceDescriptor``: ``kerning``, ``info``; ``glyphs``: use rules or sparse sources. For both, ``location``: use the more explicit designLocation. Note: all are soft deprecations and existing code should keep working. Updated documentation for Python methods and the XML format. - [varLib] Added ``build_many`` to build several variable fonts from a single designspace document (2436). Added ``fontTools.varLib.stat`` module to build STAT tables from a designspace document. - [otBase] Try to use the Harfbuzz Repacker for packing GSUB/GPOS tables when ``uharfbuzz`` python bindings are available (2552). Disable it by setting the "fontTools.ttLib.tables.otBase:USE_HARFBUZZ_REPACKER" config option to ``False``. If the option is set explicitly to ``True`` but ``uharfbuzz`` can't be imported or fails to serialize for any reasons, an error will be raised (ImportError or uharfbuzz errors). - [CFF/T2] Ensure that ``pen.closePath()`` gets called for CFF2 charstrings (2577). Handle implicit CFF2 closePath within ``T2OutlineExtractor`` (2580). ```Links
- PyPI: https://pypi.org/project/fonttools - Changelog: https://pyup.io/changelogs/fonttools/ - Repo: http://github.com/fonttools/fonttoolsUpdate uharfbuzz from 0.24.1 to 0.27.0.
Changelog
### 0.27.0 ``` - Updated to HarfBuzz 4.3.0. ``` ### 0.26.0 ``` - Updated to HarfBuzz 4.3.0. ``` ### 0.25.0 ``` * Updated to HarfBuzz 4.2.1. ```Links
- PyPI: https://pypi.org/project/uharfbuzz - Changelog: https://pyup.io/changelogs/uharfbuzz/ - Repo: https://github.com/trufont/uharfbuzz