aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Tismer <tismer@stackless.com>2021-07-18 11:21:46 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-07-21 10:31:58 +0000
commit5af6a8eb5e25a0c0de1761adff0752788354dfb5 (patch)
tree0e7d83415ff8c2d531f4c145d50f91ee5ea751d3
parent62ac5eb03f33c187cd24cf3d06fac19d70240f62 (diff)
signature: update and make embedding aware
The signature scripts needed an update to make them work even when no source files are available. * Access to the license text should avoid source files * Some loader simplifications are possible since Python 2 is gone * The import list for PySide is incomplete * Enforce embedding in COIN mode for better testing This is a preparational step before the zip file access becomes totally virtual. Change-Id: I85e750bb718855f140edac6de34955adbd7843bc Task-number: PYSIDE-1621 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit a9de26109fca55154511f5d074c7d9e135b397f6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--sources/pyside6/PySide6/support/generate_pyi.py2
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/pyi_generator.py7
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/loader.py19
3 files changed, 11 insertions, 17 deletions
diff --git a/sources/pyside6/PySide6/support/generate_pyi.py b/sources/pyside6/PySide6/support/generate_pyi.py
index ecc04019b..e618ae0a7 100644
--- a/sources/pyside6/PySide6/support/generate_pyi.py
+++ b/sources/pyside6/PySide6/support/generate_pyi.py
@@ -99,6 +99,8 @@ def generate_all_pyi(outpath, options):
if __name__ == "__main__":
+ # PYSIDE-1621: Enforce embedding to ensure that it always works.
+ sys.pyside_uses_embedding = True
parser = argparse.ArgumentParser(
description="This script generates the .pyi file for all PySide modules.")
parser.add_argument("modules", nargs="+",
diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/pyi_generator.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/pyi_generator.py
index ecc815bb2..eb2e49770 100644
--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/pyi_generator.py
+++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/pyi_generator.py
@@ -1,4 +1,4 @@
-# This Python file uses the following encoding: utf-8
+LICENSE_TEXT = """
#############################################################################
##
## Copyright (C) 2021 The Qt Company Ltd.
@@ -37,6 +37,7 @@
## $QT_END_LICENSE$
##
#############################################################################
+"""
"""
pyi_generator.py
@@ -61,8 +62,6 @@ from shiboken6 import Shiboken
from shibokensupport.signature.lib.enum_sig import HintingEnumerator
from shibokensupport.signature.lib.tool import build_brace_pattern
-sourcepath = Path(__file__).resolve()
-
# Can we use forward references?
USE_PEP563 = sys.version_info[:2] >= (3, 7)
@@ -263,7 +262,7 @@ def generate_pyi(import_name, outpath, options):
outfile = io.StringIO()
fmt = Formatter(outfile, options)
- fmt.print(get_license_text()) # which has encoding, already
+ fmt.print(LICENSE_TEXT.strip())
need_imports = options._pyside_call and not USE_PEP563
if USE_PEP563:
fmt.print("from __future__ import annotations")
diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/loader.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/loader.py
index e0fd9dbb0..57f505d4a 100644
--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/loader.py
+++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/loader.py
@@ -102,25 +102,16 @@ __feature__.pyside_feature_dict = signature_bootstrap.pyside_feature_dict
builtins.__feature_import__ = signature_bootstrap.__feature_import__
del signature_bootstrap
-def _get_modname(mod):
- return mod.__spec__.name if getattr(mod, "__spec__", None) else mod.__name__
-
-def _set_modname(mod, name):
- if getattr(mod, "__spec__", None):
- mod.__spec__.name = name
- else:
- mod.__name__ = name
-
def put_into_package(package, module, override=None):
# take the last component of the module name
- name = (override if override else _get_modname(module)).rsplit(".", 1)[-1]
- # allow access as {package}.typing
+ name = (override if override else module.__spec__.name).rsplit(".", 1)[-1]
+ # allow access as {package}.{name}
if package:
setattr(package, name, module)
# put into sys.modules as a package to allow all import options
- fullname = f"{_get_modname(package)}.{name}" if package else name
- _set_modname(module, fullname)
+ fullname = f"{package.__spec__.name}.{name}" if package else name
+ module.__spec__.name = fullname
# publish new dotted name in sys.modules
sys.modules[fullname] = module
@@ -152,6 +143,7 @@ def move_into_pyside_package():
put_into_package(PySide6.support.signature, importhandler)
put_into_package(PySide6.support.signature.lib, enum_sig)
put_into_package(PySide6.support.signature.lib, pyi_generator)
+ put_into_package(PySide6.support.signature.lib, tool)
from shibokensupport.signature import mapping
from shibokensupport.signature import errorhandler
@@ -161,6 +153,7 @@ from shibokensupport.signature import parser
from shibokensupport.signature import importhandler
from shibokensupport.signature.lib import enum_sig
from shibokensupport.signature.lib import pyi_generator
+from shibokensupport.signature.lib import tool
if "PySide6" in sys.modules:
# We publish everything under "PySide6.support", again.