aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/PySide2/support/signature/loader.py
diff options
context:
space:
mode:
authorChristian Tismer <tismer@stackless.com>2017-09-24 18:24:10 +0200
committerChristian Tismer <tismer@stackless.com>2017-09-25 08:14:22 +0000
commitf643be1153275b804e8846b54afccbfef8db43c8 (patch)
tree68e50bb3d1208dd46fb7c04a4258382dfbf075c6 /sources/pyside2/PySide2/support/signature/loader.py
parent30a1c9c41e5e6d4166f171b9477c6f46cafa782f (diff)
Signature: Simplify parser by not reloading mapping
The mapping had been reloading on demand. This is overkill, since we only want to initialize the new constants. This patch replaces reloading by explicit init functions. This simplifies the parser and even the loader, because sys.path is no longer relevant and no context manager is needed for a single sys.path patch. Task-number: PYSIDE-510 Change-Id: I9e3a45cb10570211183952bd517abb0084b94f47 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'sources/pyside2/PySide2/support/signature/loader.py')
-rw-r--r--sources/pyside2/PySide2/support/signature/loader.py40
1 files changed, 13 insertions, 27 deletions
diff --git a/sources/pyside2/PySide2/support/signature/loader.py b/sources/pyside2/PySide2/support/signature/loader.py
index f9c8b5c53..373cc8abe 100644
--- a/sources/pyside2/PySide2/support/signature/loader.py
+++ b/sources/pyside2/PySide2/support/signature/loader.py
@@ -51,40 +51,26 @@ This version does not use an embedded .zip file.
import sys
import os
-import functools
-from contextlib import contextmanager
-from distutils import sysconfig
-
-@contextmanager
-def add_path(path):
- sys.path.insert(0, path)
- yield
- sys.path.pop(0)
# Make sure that we always have the PySide containing package first.
# This is crucial for the mapping during reload in the tests.
package_dir = __file__
for _ in "four":
package_dir = os.path.dirname(package_dir)
-assured_site_packages = functools.partial(add_path, package_dir)
-
-with assured_site_packages():
- if sys.version_info >= (3,):
- from PySide2.support.signature import inspect
- from PySide2.support.signature import typing
- else:
- import inspect
- namespace = inspect.__dict__
- from PySide2.support.signature import backport_inspect as inspect
- inspect.__dict__.update(namespace)
- from PySide2.support.signature import parser
-# Note also that during the tests we have a different encodind that would
-# break the Python license decorated files without an encoding line.
-
+sys.path.insert(0, package_dir)
+if sys.version_info >= (3,):
+ from PySide2.support.signature import inspect
+ from PySide2.support.signature import typing
+else:
+ import inspect
+ namespace = inspect.__dict__
+ from PySide2.support.signature import backport_inspect as inspect
+ inspect.__dict__.update(namespace)
# name used in signature.cpp
-def pyside_type_init(*args, **kw):
- with assured_site_packages():
- return parser.pyside_type_init(*args, **kw)
+from PySide2.support.signature.parser import pyside_type_init
+sys.path.pop(0)
+# Note also that during the tests we have a different encoding that would
+# break the Python license decorated files without an encoding line.
# name used in signature.cpp
def create_signature(props, sig_kind):