aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature
diff options
context:
space:
mode:
authorChristian Tismer <tismer@stackless.com>2019-08-22 13:09:43 +0200
committerChristian Tismer <tismer@stackless.com>2019-08-22 19:24:54 +0200
commit28958dfae22cc6e52dfb71c4b00c20aba72531a1 (patch)
tree61b8d680ce5935cdd984a8b1b9e36e5d8627b0ab /sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature
parent01b43dc3d93e632c3c42fb8e1105f200b9cee2ae (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.py10
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