diff options
author | Christian Tismer <tismer@stackless.com> | 2019-02-25 12:35:24 +0100 |
---|---|---|
committer | Christian Tismer <tismer@stackless.com> | 2019-02-26 10:35:51 +0000 |
commit | c6c1a3e099a8139137d6ef133d1d399ba1ee38bd (patch) | |
tree | aad5762394b1c6b2c03d1e4ddfa7ad7fd32b2abe /sources/pyside2 | |
parent | 5dcebb60c75b03cec2db63ecc618740a78d7f084 (diff) |
Prevent Python 3.5 From Crashing The Build
Python 3.5 has a bug that crashes the build.
See the description in the issue tracker.
The cure is to use a more recent contextlib.py and to avoid
a PySide cleanup function that creates the crash.
The problem is not solved for Python 3.5, and it is not clear
if the testbinding module has a hidden bug, too.
But this fix seems to be good enough for the moment.
We should decide if we are going to fix Python 3.5 or abandon
it altogether.
Change-Id: Iacf2237de1f34d2b3cd1d68f1fb5833bdca3fdc2
Fixes: PYSIDE-953
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'sources/pyside2')
-rw-r--r-- | sources/pyside2/PySide2/support/generate_pyi.py | 10 | ||||
-rw-r--r-- | sources/pyside2/tests/registry/init_platform.py | 6 |
2 files changed, 15 insertions, 1 deletions
diff --git a/sources/pyside2/PySide2/support/generate_pyi.py b/sources/pyside2/PySide2/support/generate_pyi.py index a92ee76f0..21ef841fe 100644 --- a/sources/pyside2/PySide2/support/generate_pyi.py +++ b/sources/pyside2/PySide2/support/generate_pyi.py @@ -53,6 +53,13 @@ import re import subprocess import argparse import glob +# PYSIDE-953: Use a newer contextlib for Python 3.5 +skip_creation = False +if sys.version_info[:2] == (3, 5): + try: + import PySide2.support.signature # gets new contextlib + except: + skip_creation = True from contextlib import contextmanager from textwrap import dedent @@ -272,6 +279,9 @@ def single_process(lockdir): def generate_all_pyi(outpath, options): + if skip_creation: + logger.warn("Sorry, we cannot create .pyi files with Python 3.5 while PySide") + logger.warn(" is not installed. Please run it by hand!") ps = os.pathsep if options.sys_path: # make sure to propagate the paths from sys_path to subprocesses diff --git a/sources/pyside2/tests/registry/init_platform.py b/sources/pyside2/tests/registry/init_platform.py index a324c36a2..6031dd2ad 100644 --- a/sources/pyside2/tests/registry/init_platform.py +++ b/sources/pyside2/tests/registry/init_platform.py @@ -55,7 +55,8 @@ shiboken and pysidetest projects. import sys import os import re -from contextlib import contextmanager +# PYSIDE-953: Use a newer contextlib for Python 3.5 +# from contextlib import contextmanager from textwrap import dedent script_dir = os.path.normpath(os.path.join(__file__, *".. .. .. .. ..".split())) @@ -117,6 +118,9 @@ sys.path[:0] = [os.path.join(shiboken_build_dir, "shibokenmodule"), pyside_build_dir] import PySide2 +# PYSIDE-953: Use a newer contextlib for Python 3.5 +import PySide2.support.signature # new contextlib +from contextlib import contextmanager all_modules = list("PySide2." + x for x in PySide2.__all__) |