From 5ca57917c6c609a1cb3be85e01a15d2a0f6024aa Mon Sep 17 00:00:00 2001 From: Cosimo Lupo Date: Wed, 6 Jul 2022 11:13:55 +0100 Subject: [PATCH] fix UFOFormatVersion tuple's __str__ in python 3.11 python 3.11 doesn't like when a mixin overrides a dunder method like __str__, for some reasons it keep using Enum.__str__, see https://github.com/fonttools/fonttools/pull/2655 --- Lib/fontTools/ufoLib/__init__.py | 5 +++++ Lib/fontTools/ufoLib/glifLib.py | 3 +++ 2 files changed, 8 insertions(+) diff --git a/Lib/fontTools/ufoLib/__init__.py b/Lib/fontTools/ufoLib/__init__.py index bd04dd7af..fa6cb1174 100755 --- a/Lib/fontTools/ufoLib/__init__.py +++ b/Lib/fontTools/ufoLib/__init__.py @@ -98,6 +98,11 @@ class UFOFormatVersion(tuple, _VersionTupleEnumMixin, enum.Enum): FORMAT_2_0 = (2, 0) FORMAT_3_0 = (3, 0) +# python 3.11 doesn't like when a mixin overrides a dunder method like __str__ +# for some reasons it keep using Enum.__str__, see +# https://github.com/fonttools/fonttools/pull/2655 +UFOFormatVersion.__str__ = _VersionTupleEnumMixin.__str__ + class UFOFileStructure(enum.Enum): ZIP = "zip" diff --git a/Lib/fontTools/ufoLib/glifLib.py b/Lib/fontTools/ufoLib/glifLib.py index 89c9176a7..7d28eaf73 100755 --- a/Lib/fontTools/ufoLib/glifLib.py +++ b/Lib/fontTools/ufoLib/glifLib.py @@ -79,6 +79,9 @@ class GLIFFormatVersion(tuple, _VersionTupleEnumMixin, enum.Enum): versions.add(cls.FORMAT_2_0) return frozenset(versions) +# workaround for py3.11, see https://github.com/fonttools/fonttools/pull/2655 +GLIFFormatVersion.__str__ = _VersionTupleEnumMixin.__str__ + # ------------ # Simple Glyph