Merge pull request #5194 from radarhere/python310

PyModule_AddObject fix for Python 3.10
This commit is contained in:
Andrew Murray 2021-01-12 21:53:54 +11:00 committed by GitHub
commit 543fa2ceb7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 29 additions and 10 deletions

View File

@ -45,6 +45,7 @@ test_script:
- cd c:\pillow - cd c:\pillow
- '%PYTHON%\%EXECUTABLE% -m pip install pytest pytest-cov' - '%PYTHON%\%EXECUTABLE% -m pip install pytest pytest-cov'
- c:\"Program Files (x86)"\"Windows Kits"\10\Debuggers\x86\gflags.exe /p /enable %PYTHON%\%EXECUTABLE% - c:\"Program Files (x86)"\"Windows Kits"\10\Debuggers\x86\gflags.exe /p /enable %PYTHON%\%EXECUTABLE%
- '%PYTHON%\%EXECUTABLE% -c "from PIL import Image"'
- '%PYTHON%\%EXECUTABLE% -m pytest -vx --cov PIL --cov Tests --cov-report term --cov-report xml Tests' - '%PYTHON%\%EXECUTABLE% -m pytest -vx --cov PIL --cov Tests --cov-report term --cov-report xml Tests'
#- '%PYTHON%\%EXECUTABLE% test-installed.py -v -s %TEST_OPTIONS%' TODO TEST_OPTIONS with pytest? #- '%PYTHON%\%EXECUTABLE% test-installed.py -v -s %TEST_OPTIONS%' TODO TEST_OPTIONS with pytest?

View File

@ -2,4 +2,6 @@
set -e set -e
python3 -c "from PIL import Image"
python3 -bb -m pytest -v -x -W always --cov PIL --cov Tests --cov-report term Tests python3 -bb -m pytest -v -x -W always --cov PIL --cov Tests --cov-report term Tests

View File

@ -273,6 +273,7 @@ jobs:
- name: Test Pillow - name: Test Pillow
run: | run: |
python3 selftest.py --installed python3 selftest.py --installed
python3 -c "from PIL import Image"
python3 -m pytest -vx --cov PIL --cov Tests --cov-report term --cov-report xml Tests python3 -m pytest -vx --cov PIL --cov Tests --cov-report term --cov-report xml Tests
- name: Upload coverage - name: Upload coverage

View File

@ -4134,8 +4134,9 @@ setup_module(PyObject *m) {
} }
#endif #endif
PyObject *have_libjpegturbo;
#ifdef LIBJPEG_TURBO_VERSION #ifdef LIBJPEG_TURBO_VERSION
PyModule_AddObject(m, "HAVE_LIBJPEGTURBO", Py_True); have_libjpegturbo = Py_True;
#define tostr1(a) #a #define tostr1(a) #a
#define tostr(a) tostr1(a) #define tostr(a) tostr1(a)
PyDict_SetItemString( PyDict_SetItemString(
@ -4143,19 +4144,24 @@ setup_module(PyObject *m) {
#undef tostr #undef tostr
#undef tostr1 #undef tostr1
#else #else
PyModule_AddObject(m, "HAVE_LIBJPEGTURBO", Py_False); have_libjpegturbo = Py_False;
#endif #endif
Py_INCREF(have_libjpegturbo);
PyModule_AddObject(m, "HAVE_LIBJPEGTURBO", have_libjpegturbo);
PyObject *have_libimagequant;
#ifdef HAVE_LIBIMAGEQUANT #ifdef HAVE_LIBIMAGEQUANT
PyModule_AddObject(m, "HAVE_LIBIMAGEQUANT", Py_True); have_libimagequant = Py_True;
{ {
extern const char *ImagingImageQuantVersion(void); extern const char *ImagingImageQuantVersion(void);
PyDict_SetItemString( PyDict_SetItemString(
d, "imagequant_version", PyUnicode_FromString(ImagingImageQuantVersion())); d, "imagequant_version", PyUnicode_FromString(ImagingImageQuantVersion()));
} }
#else #else
PyModule_AddObject(m, "HAVE_LIBIMAGEQUANT", Py_False); have_libimagequant = Py_False;
#endif #endif
Py_INCREF(have_libimagequant);
PyModule_AddObject(m, "HAVE_LIBIMAGEQUANT", have_libimagequant);
#ifdef HAVE_LIBZ #ifdef HAVE_LIBZ
/* zip encoding strategies */ /* zip encoding strategies */
@ -4189,11 +4195,14 @@ setup_module(PyObject *m) {
} }
#endif #endif
PyObject *have_xcb;
#ifdef HAVE_XCB #ifdef HAVE_XCB
PyModule_AddObject(m, "HAVE_XCB", Py_True); have_xcb = Py_True;
#else #else
PyModule_AddObject(m, "HAVE_XCB", Py_False); have_xcb = Py_False;
#endif #endif
Py_INCREF(have_xcb);
PyModule_AddObject(m, "HAVE_XCB", have_xcb);
PyDict_SetItemString(d, "PILLOW_VERSION", PyUnicode_FromString(version)); PyDict_SetItemString(d, "PILLOW_VERSION", PyUnicode_FromString(version));

View File

@ -920,20 +920,26 @@ static PyMethodDef webpMethods[] = {
void void
addMuxFlagToModule(PyObject *m) { addMuxFlagToModule(PyObject *m) {
PyObject *have_webpmux;
#ifdef HAVE_WEBPMUX #ifdef HAVE_WEBPMUX
PyModule_AddObject(m, "HAVE_WEBPMUX", Py_True); have_webpmux = Py_True;
#else #else
PyModule_AddObject(m, "HAVE_WEBPMUX", Py_False); have_webpmux = Py_False;
#endif #endif
Py_INCREF(have_webpmux);
PyModule_AddObject(m, "HAVE_WEBPMUX", have_webpmux);
} }
void void
addAnimFlagToModule(PyObject *m) { addAnimFlagToModule(PyObject *m) {
PyObject *have_webpanim;
#ifdef HAVE_WEBPANIM #ifdef HAVE_WEBPANIM
PyModule_AddObject(m, "HAVE_WEBPANIM", Py_True); have_webpanim = Py_True;
#else #else
PyModule_AddObject(m, "HAVE_WEBPANIM", Py_False); have_webpanim = Py_False;
#endif #endif
Py_INCREF(have_webpanim);
PyModule_AddObject(m, "HAVE_WEBPANIM", have_webpanim);
} }
void void