diff options
author | Christian Tismer <tismer@stackless.com> | 2019-08-22 13:09:43 +0200 |
---|---|---|
committer | Christian Tismer <tismer@stackless.com> | 2019-08-22 19:24:54 +0200 |
commit | 28958dfae22cc6e52dfb71c4b00c20aba72531a1 (patch) | |
tree | 61b8d680ce5935cdd984a8b1b9e36e5d8627b0ab /sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature | |
parent | 01b43dc3d93e632c3c42fb8e1105f200b9cee2ae (diff) |
Fix a typing bug in Python 2.7 and update
The typing module has problems if it exists twice.
This gave trouble with matplotlib, when typing was imported
and then called PySide indirectly.
The only reliable cure appears to be to use the typing
module if it is already in sys.modules .
The typing27 modue was updated to the latest version
of https://github.com/python/typing (original file with
additional license headers).
Fixes: PYSIDE-1073
Change-Id: Iebfdfe7fd51080a9334db332719928c001501381
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature')
-rw-r--r-- | sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/loader.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/loader.py b/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/loader.py index 6c76483a0..8192f9bca 100644 --- a/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/loader.py +++ b/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/loader.py @@ -151,12 +151,18 @@ def list_modules(message): print(" {:23}".format(name), repr(module)[:70]) +orig_typing = True if sys.version_info >= (3,): import typing import inspect inspect.formatannotation = formatannotation else: - from shibokensupport import typing27 as typing + if "typing" not in sys.modules: + orig_typing = False + from shibokensupport import typing27 as typing + sys.modules["typing"] = typing + else: + import typing import inspect namespace = inspect.__dict__ from shibokensupport import backport_inspect as inspect @@ -196,7 +202,7 @@ def move_into_pyside_package(): put_into_package(PySide2.support.signature, parser) put_into_package(PySide2.support.signature.lib, enum_sig) - put_into_package(PySide2.support.signature, typing) + put_into_package(None if orig_typing else PySide2.support.signature, typing) put_into_package(PySide2.support.signature, inspect) from shibokensupport.signature import mapping |