diff --git a/.ci/install.sh b/.ci/install.sh index 486ac3a34..6f83fef22 100755 --- a/.ci/install.sh +++ b/.ci/install.sh @@ -33,9 +33,10 @@ pip install pyroma pip install test-image-results pip install numpy -# TODO Remove when 3.8 / 3.9 includes setuptools 49.3.2+: +# TODO Remove when 3.8 / 3.9 / PyPy3 includes setuptools 49.3.2+: if [ "$GHA_PYTHON_VERSION" == "3.8" ]; then pip install -U "setuptools>=49.3.2" ; fi if [ "$GHA_PYTHON_VERSION" == "3.9" ]; then pip install -U "setuptools>=49.3.2" ; fi +if [ "$TRAVIS_PYTHON_VERSION" == "pypy3.6-7.3.1" ]; then pip install -U "setuptools>=49.3.2" ; fi if [[ $TRAVIS_PYTHON_VERSION == 3.* ]]; then # arm64, ppc64le, s390x CPUs: diff --git a/.travis.yml b/.travis.yml index 1056df1a5..b02f054d0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,7 +26,7 @@ matrix: - python: "3.8" arch: s390x - - python: "pypy3" + - python: "pypy3.6-7.3.1" name: "PyPy3 Xenial" - python: "3.9-dev" name: "3.9-dev Xenial" diff --git a/Tests/test_imagefont.py b/Tests/test_imagefont.py index 389df9151..6fb62269e 100644 --- a/Tests/test_imagefont.py +++ b/Tests/test_imagefont.py @@ -15,7 +15,6 @@ from .helper import ( assert_image_equal_tofile, assert_image_similar, assert_image_similar_tofile, - is_pypy, is_win32, skip_unless_feature, skip_unless_feature_version, @@ -475,7 +474,6 @@ class TestImageFont: with pytest.raises(UnicodeEncodeError): font.getsize("’") - @pytest.mark.xfail(is_pypy(), reason="failing on PyPy with Raqm") def test_unicode_extended(self): # issue #3777 text = "A\u278A\U0001F12B" diff --git a/src/_imagingft.c b/src/_imagingft.c index 7e9c1fb16..cb1ebdf06 100644 --- a/src/_imagingft.c +++ b/src/_imagingft.c @@ -368,27 +368,6 @@ text_layout_raqm(PyObject* string, FontObject* self, const char* dir, PyObject * goto failed; } -#if (defined(PYPY_VERSION_NUM) && (PYPY_VERSION_NUM < 0x07020000)) - if (PyUnicode_Check(string)) { - Py_UNICODE *text = PyUnicode_AS_UNICODE(string); - Py_ssize_t size = PyUnicode_GET_SIZE(string); - if (! size) { - /* return 0 and clean up, no glyphs==no size, - and raqm fails with empty strings */ - goto failed; - } - if (!(*p_raqm.set_text)(rq, (const uint32_t *)(text), size)) { - PyErr_SetString(PyExc_ValueError, "raqm_set_text() failed"); - goto failed; - } - if (lang) { - if (!(*p_raqm.set_language)(rq, lang, start, size)) { - PyErr_SetString(PyExc_ValueError, "raqm_set_language() failed"); - goto failed; - } - } - } -#else if (PyUnicode_Check(string)) { Py_UCS4 *text = PyUnicode_AsUCS4Copy(string); Py_ssize_t size = PyUnicode_GET_LENGTH(string); @@ -410,7 +389,6 @@ text_layout_raqm(PyObject* string, FontObject* self, const char* dir, PyObject * } } } -#endif else { PyErr_SetString(PyExc_TypeError, "expected string"); goto failed;