Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
8caff88
Remove ttconv backwards-compatibility code
anntzer May 3, 2025
c44db77
Fix center of rotation with rotation_mode='anchor'
Nov 26, 2024
f1cdc19
Merge pull request #29199 from WPurre/fixing-rotation-bug
QuLogic Jun 10, 2025
41cc933
Remove fallback code for glyph indices
QuLogic Jun 12, 2025
7dafe63
Merge pull request #30145 from QuLogic/remove-ttconv
QuLogic Jun 19, 2025
67d1a02
Merge pull request #30168 from QuLogic/no-glyph-fallback
QuLogic Jun 19, 2025
bb9aae4
Merge branch 'main' into text-overhaul
QuLogic Jun 19, 2025
a7fd524
Merge branch 'main' into text-overhaul
QuLogic Jul 7, 2025
389373e
ci: Preload existing test images from text-overhaul-figures branch
QuLogic Jun 30, 2025
4d47644
Merge pull request #30231 from QuLogic/preload-ci
QuLogic Jul 8, 2025
a018606
Add typing to AFM parser
QuLogic Jun 3, 2025
aff20cf
ci: Fix image preload with multiple conflicts
QuLogic Jul 8, 2025
572540d
Merge pull request #30274 from QuLogic/fix-preload
QuLogic Jul 9, 2025
f231f2e
Merge pull request #30134 from QuLogic/afm-typing
QuLogic Jul 9, 2025
7b4d725
Remove kerning_factor from tests
QuLogic Mar 28, 2025
8255ae2
Set text hinting to defaults
QuLogic Apr 9, 2025
89c054d
Update FreeType to 2.13.3
QuLogic Mar 27, 2025
7787153
Bump minimum meson-python to 0.13.2
QuLogic Apr 23, 2025
972a821
ci: Purge Strawberry Perl from Windows builders
QuLogic Jul 2, 2025
8839576
Merge branch 'main' into text-overhaul
QuLogic Jul 16, 2025
5fc9559
Don't set a default size for FT2Font
QuLogic Jul 16, 2025
7dae1e5
Merge pull request #30319 from QuLogic/ft2font-size
tacaswell Jul 16, 2025
7a628e5
Deprecate font_manager.is_opentype_cff_font
QuLogic Jul 18, 2025
42c108a
Deprecate setting text kerning factor to any non-None value
QuLogic Jul 17, 2025
3a0a773
TYP: Make glyph indices distinct from character codes
QuLogic Jun 3, 2025
c6e6904
Fix kerning of mathtext
QuLogic Jun 6, 2025
733cd7d
Update test images for previous changes
QuLogic Jul 24, 2025
56308af
Merge pull request #30143 from QuLogic/character-glyph-types
tacaswell Jul 31, 2025
fa62956
Split font opening/closing out of FT2Font constructor/destructor
QuLogic Jul 16, 2025
db17baf
Make PyFT2Font a subclass of FT2Font
QuLogic Jul 17, 2025
f8bd156
Merge branch 'main' into text-overhaul
QuLogic Aug 21, 2025
904fc82
Merge branch 'main' into text-overhaul
QuLogic Aug 21, 2025
ad32f0d
DOC: Fix missing references on text-overhaul branch
QuLogic Aug 21, 2025
9766cbd
Merge branch 'main' into text-overhaul
QuLogic Aug 21, 2025
584b1fd
Remove version from FreeType wrap file
QuLogic Aug 26, 2025
0635d3a
Add libraqm and its dependencies to build
QuLogic Dec 19, 2024
b0ded3a
Implement text shaping with libraqm
QuLogic Feb 26, 2025
9813523
Implement font fallback for libraqm
QuLogic Apr 3, 2025
b36b97f
DOC: Add What's New entry for complex text layout
QuLogic Aug 8, 2025
04c8eef
ci: Ignore coverage data from subprojects and generated files
QuLogic Aug 26, 2025
b291c9d
Update test images for font/text overhaul
QuLogic Sep 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 20 additions & 0 deletions .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,26 @@ install:
- micromamba env create -f environment.yml python=%PYTHON_VERSION% pywin32
- micromamba activate mpl-dev

before_test:
- git config --global user.name 'Matplotlib'
- git config --global user.email '[email protected]'
- git fetch https://github.com/QuLogic/matplotlib.git text-overhaul-figures:text-overhaul-figures
- git merge --no-commit text-overhaul-figures || true
# If there are any conflicts in baseline images, then pick "ours",
# which should be the updated images in the PR.
- ps: |
$conflicts = git diff --name-only --diff-filter=U `
lib/matplotlib/tests/baseline_images `
lib/mpl_toolkits/*/tests/baseline_images
if ($conflicts) {
git checkout --ours -- $conflicts
git add -- $conflicts
}
git status
# If committing fails, there were conflicts other than the baseline images,
# which should not be allowed to happen, and should fail the build.
- git commit -m "Preload test images from branch text-overhaul-figures"

test_script:
# Now build the thing..
- set LINK=/LIBPATH:%cd%\lib
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/cibuildwheel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,10 @@ jobs:
name: cibw-sdist
path: dist/

- name: Purge Strawberry Perl
if: startsWith(matrix.os, 'windows-')
run: Remove-Item -Recurse C:\Strawberry

- name: Build wheels for CPython 3.14
uses: pypa/cibuildwheel@352e01339f0a173aa2a3eb57f01492e341e83865 # v3.1.3
with:
Expand Down
28 changes: 24 additions & 4 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,25 @@ jobs:
fetch-depth: 0
persist-credentials: false

- name: Preload test images
run: |
git config --global user.name 'Matplotlib'
git config --global user.email '[email protected]'
git fetch https://github.com/QuLogic/matplotlib.git text-overhaul-figures:text-overhaul-figures
git merge --no-commit text-overhaul-figures || true
# If there are any conflicts in baseline images, then pick "ours",
# which should be the updated images in the PR.
conflicts=$(git diff --name-only --diff-filter=U \
lib/matplotlib/tests/baseline_images \
lib/mpl_toolkits/*/tests/baseline_images)
if [ -n "${conflicts}" ]; then
git checkout --ours -- ${conflicts}
git add -- ${conflicts}
fi
# If committing fails, there were conflicts other than the baseline images,
# which should not be allowed to happen, and should fail the build.
git commit -m 'Preload test images from branch text-overhaul-figures'

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
Expand Down Expand Up @@ -378,13 +397,14 @@ jobs:
if [[ "${{ runner.os }}" != 'macOS' ]]; then
LCOV_IGNORE_ERRORS=',' # do not ignore any lcov errors by default
if [[ "${{ matrix.os }}" = ubuntu-24.04 ]]; then
# filter mismatch and unused-entity errors detected by lcov 2.x
LCOV_IGNORE_ERRORS='mismatch,unused'
# filter mismatch errors detected by lcov 2.x
LCOV_IGNORE_ERRORS='mismatch'
fi
lcov --rc lcov_branch_coverage=1 --ignore-errors $LCOV_IGNORE_ERRORS \
--capture --directory . --output-file coverage.info
--capture --directory . --exclude $PWD/subprojects --exclude $PWD/build \
--output-file coverage.info
lcov --rc lcov_branch_coverage=1 --ignore-errors $LCOV_IGNORE_ERRORS \
--output-file coverage.info --extract coverage.info $PWD/src/'*' $PWD/lib/'*'
--output-file coverage.info --extract coverage.info $PWD/src/'*'
lcov --rc lcov_branch_coverage=1 --ignore-errors $LCOV_IGNORE_ERRORS \
--list coverage.info
find . -name '*.gc*' -delete
Expand Down
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ repos:
- id: check-docstring-first
exclude: lib/matplotlib/typing.py # docstring used for attribute flagged by check
- id: end-of-file-fixer
exclude_types: [svg]
exclude_types: [diff, svg]
- id: mixed-line-ending
- id: name-tests-test
args: ["--pytest-test-first"]
- id: no-commit-to-branch # Default is master and main.
- id: trailing-whitespace
exclude_types: [svg]
exclude_types: [diff, svg]
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.15.0
hooks:
Expand Down
46 changes: 46 additions & 0 deletions LICENSE/LICENSE_FREETYPE
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
FREETYPE LICENSES
-----------------

The FreeType 2 font engine is copyrighted work and cannot be used
legally without a software license. In order to make this project
usable to a vast majority of developers, we distribute it under two
mutually exclusive open-source licenses.

This means that *you* must choose *one* of the two licenses described
below, then obey all its terms and conditions when using FreeType 2 in
any of your projects or products.

- The FreeType License, found in the file `docs/FTL.TXT`, which is
similar to the original BSD license *with* an advertising clause
that forces you to explicitly cite the FreeType project in your
product's documentation. All details are in the license file.
This license is suited to products which don't use the GNU General
Public License.

Note that this license is compatible to the GNU General Public
License version 3, but not version 2.

- The GNU General Public License version 2, found in
`docs/GPLv2.TXT` (any later version can be used also), for
programs which already use the GPL. Note that the FTL is
incompatible with GPLv2 due to its advertisement clause.

The contributed BDF and PCF drivers come with a license similar to
that of the X Window System. It is compatible to the above two
licenses (see files `src/bdf/README` and `src/pcf/README`). The same
holds for the source code files `src/base/fthash.c` and
`include/freetype/internal/fthash.h`; they were part of the BDF driver
in earlier FreeType versions.

The gzip module uses the zlib license (see `src/gzip/zlib.h`) which
too is compatible to the above two licenses.

The files `src/autofit/ft-hb.c` and `src/autofit/ft-hb.h` contain code
taken almost verbatim from the HarfBuzz file `hb-ft.cc`, which uses
the 'Old MIT' license, compatible to the above two licenses.

The MD5 checksum support (only used for debugging in development
builds) is in the public domain.


--- end of LICENSE.TXT ---
42 changes: 42 additions & 0 deletions LICENSE/LICENSE_HARFBUZZ
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
HarfBuzz is licensed under the so-called "Old MIT" license. Details follow.
For parts of HarfBuzz that are licensed under different licenses see individual
files names COPYING in subdirectories where applicable.

Copyright © 2010-2022 Google, Inc.
Copyright © 2015-2020 Ebrahim Byagowi
Copyright © 2019,2020 Facebook, Inc.
Copyright © 2012,2015 Mozilla Foundation
Copyright © 2011 Codethink Limited
Copyright © 2008,2010 Nokia Corporation and/or its subsidiary(-ies)
Copyright © 2009 Keith Stribley
Copyright © 2011 Martin Hosken and SIL International
Copyright © 2007 Chris Wilson
Copyright © 2005,2006,2020,2021,2022,2023 Behdad Esfahbod
Copyright © 2004,2007,2008,2009,2010,2013,2021,2022,2023 Red Hat, Inc.
Copyright © 1998-2005 David Turner and Werner Lemberg
Copyright © 2016 Igalia S.L.
Copyright © 2022 Matthias Clasen
Copyright © 2018,2021 Khaled Hosny
Copyright © 2018,2019,2020 Adobe, Inc
Copyright © 2013-2015 Alexei Podtelezhnikov

For full copyright notices consult the individual files in the package.


Permission is hereby granted, without written agreement and without
license or royalty fees, to use, copy, modify, and distribute this
software and its documentation for any purpose, provided that the
above copyright notice and the following two paragraphs appear in
all copies of this software.

IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
Copyright (c) 2018 The Meson development team
The MIT License (MIT)

Copyright © 2015 Information Technology Authority (ITA) <[email protected]>
Copyright © 2016-2023 Khaled Hosny <[email protected]>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
Loading
Loading