diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index eb13997..a3f2282 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,12 +72,12 @@ jobs: fi ) && PYTHONFAULTHANDLER=1 PYTHONIOENCODING=utf-8 ./run-examples.py - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v7 with: name: wheel-${{ matrix.os }}-${{ matrix.python-version }} path: dist/*.whl if: ${{ always() }} - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v7 with: name: result_images-${{ matrix.os }}-py${{ matrix.python-version }} path: result_images/ @@ -87,7 +87,7 @@ jobs: runs-on: ubuntu-latest needs: build steps: - - uses: actions/upload-artifact/merge@v4 + - uses: actions/upload-artifact/merge@v7 with: name: wheels pattern: wheel-* diff --git a/ext/_mplcairo.cpp b/ext/_mplcairo.cpp index 4ed612f..73c7a2e 100644 --- a/ext/_mplcairo.cpp +++ b/ext/_mplcairo.cpp @@ -1477,9 +1477,13 @@ void GraphicsContextRenderer::draw_text( // because the symbol may have been synthesized by // FT2Font::get_glyph_name for a font without FT_FACE_FLAG_GLYPH_NAMES // (e.g. arial.ttf), which FT_Get_Name_Index can't know about. - auto const& [font, size, codepoint, ox, oy] = - spec.cast< - std::tuple>(); + // Support both pre and post Matplotlib 3.11 formats. + auto const& glyph = spec.cast(); + auto const& font = glyph[0].cast(); + auto const& size = glyph[1].cast(); + auto const& codepoint = glyph[2].cast(); + auto const& ox = glyph[glyph.size() - 2].cast(), + & oy = glyph[glyph.size() - 1].cast(); mb.add_glyph(ox, -oy, font.attr("fname").cast(), size, codepoint);