From ceb0644bc3dbee517a3a61947b1fe4111579406d Mon Sep 17 00:00:00 2001 From: Christian Tismer Date: Sat, 20 Mar 2021 19:24:38 +0100 Subject: signature: remove inspect and typing from special PySide6 modules inspect and typing are removed from the signature module and the official ones are used. This is done as a clean-up before re-writing generate_pyi.py . Task-number: PYSIDE-1415 Change-Id: I3b580805775962447e65a2d7593ecf737e97536c Reviewed-by: Friedemann Kleint --- sources/pyside6/PySide6/support/generate_pyi.py | 22 +++++----- sources/pyside6/tests/QtWidgets/signature_test.py | 2 +- .../shibokensupport/signature/errorhandler.py | 2 +- .../files.dir/shibokensupport/signature/layout.py | 3 +- .../shibokensupport/signature/lib/enum_sig.py | 2 +- .../files.dir/shibokensupport/signature/loader.py | 47 ---------------------- .../files.dir/shibokensupport/signature/mapping.py | 10 ++--- .../samplebinding/pointerprimitivetype_test.py | 2 +- 8 files changed, 20 insertions(+), 70 deletions(-) (limited to 'sources') diff --git a/sources/pyside6/PySide6/support/generate_pyi.py b/sources/pyside6/PySide6/support/generate_pyi.py index 233bc9142..f99911fa0 100644 --- a/sources/pyside6/PySide6/support/generate_pyi.py +++ b/sources/pyside6/PySide6/support/generate_pyi.py @@ -44,17 +44,18 @@ generate_pyi.py This script generates the .pyi files for all PySide modules. """ -import sys -import os +import argparse +import inspect import io +import logging +import os import re -import subprocess -import argparse -from pathlib import Path +import sys +import typing + from contextlib import contextmanager +from pathlib import Path from textwrap import dedent -import logging - # Make sure not to get .pyc in Python2. sourcepath = Path(__file__).parent.resolve() / (Path(__file__).stem + ".py") @@ -136,11 +137,7 @@ class Formatter(Writer): self.mod_name = mod_name self.print("# Module", mod_name) self.print("import PySide6") - from PySide6.support.signature import typing - self.print("try:") - self.print(" import typing") - self.print("except ImportError:") - self.print(" from PySide6.support.signature import typing") + self.print("import typing") self.print("from PySide6.support.signature.mapping import (") self.print(" Virtual, Missing, Invalid, Default, Instance)") self.print() @@ -279,7 +276,6 @@ def generate_all_pyi(outpath, options): # now we can import global PySide6, inspect, typing, HintingEnumerator, build_brace_pattern import PySide6 - from PySide6.support.signature import inspect, typing from PySide6.support.signature.lib.enum_sig import HintingEnumerator from PySide6.support.signature.lib.tool import build_brace_pattern diff --git a/sources/pyside6/tests/QtWidgets/signature_test.py b/sources/pyside6/tests/QtWidgets/signature_test.py index 6842055a0..c18048b8e 100644 --- a/sources/pyside6/tests/QtWidgets/signature_test.py +++ b/sources/pyside6/tests/QtWidgets/signature_test.py @@ -37,6 +37,7 @@ ## ############################################################################# +import inspect import os import sys import unittest @@ -48,7 +49,6 @@ init_test_paths(False) import PySide6.QtCore import PySide6.QtWidgets -from shibokensupport.signature import inspect class PySideSignatureTest(unittest.TestCase): diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/errorhandler.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/errorhandler.py index 7af7b48b2..71f2ffbab 100644 --- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/errorhandler.py +++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/errorhandler.py @@ -54,9 +54,9 @@ enough to produce a useful ValueError. This matter will be improved in a later version. """ +import inspect import sys -from shibokensupport.signature import inspect from shibokensupport.signature import get_signature from shibokensupport.signature.mapping import update_mapping, namespace from textwrap import dedent diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/layout.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/layout.py index c0460b332..3ab916326 100644 --- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/layout.py +++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/layout.py @@ -53,8 +53,9 @@ It also implements them in this file. The configurations are used literally as strings like "signature", "existence", etc. """ +import inspect +import typing from textwrap import dedent -from shibokensupport.signature import inspect, typing from shibokensupport.signature.mapping import ellipsis from shibokensupport.signature.lib.tool import SimpleNamespace diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/enum_sig.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/enum_sig.py index 97eec9052..dce11249d 100644 --- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/enum_sig.py +++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/enum_sig.py @@ -47,9 +47,9 @@ It is not easy to adhere to this protocol, but in the end, it paid off by producing a lot of clarity. """ +import inspect import sys import types -from shibokensupport.signature import inspect from shibokensupport.signature import get_signature as get_sig diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/loader.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/loader.py index 9e653dd41..48db70156 100644 --- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/loader.py +++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/loader.py @@ -64,31 +64,6 @@ import os import traceback import types -# On Python 2, we only have ImportError, which is way too coarse. -# When problems occour, please use Python 3, because it has the finer -# ModuleNotFoundError. - -try: - ModuleNotFoundError -except NameError: - ModuleNotFoundError = ImportError - -def _qualname(x): - return getattr(x, "__qualname__", x.__name__) - -# patching inspect's formatting to keep the word "typing": -def formatannotation(annotation, base_module=None): - # if getattr(annotation, '__module__', None) == 'typing': - # return repr(annotation).replace('typing.', '') - if isinstance(annotation, type): - name = _qualname(annotation) - if annotation.__module__ in ('builtins', base_module): - return name - return annotation.__module__ + '.' + name - return repr(annotation) - -# 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 pyside_type_init(type_key, sig_strings): @@ -157,26 +132,7 @@ def list_modules(message): for (name, module) in sorted(ext_modules.items()): print(f" {name:23}", repr(module)[:70]) - -orig_typing = True -import typing -import inspect -inspect.formatannotation = formatannotation - -# Fix the module names in typing if possible. This is important since -# the typing names should be I/O compatible, so that typing.Dict -# shows itself as "typing.Dict". -for name, obj in typing.__dict__.items(): - if hasattr(obj, "__module__"): - try: - obj.__module__ = "typing" - except (TypeError, AttributeError): - pass - import shibokensupport -put_into_package(shibokensupport.signature, typing, "typing") -put_into_package(shibokensupport.signature, inspect, "inspect") - def move_into_pyside_package(): import PySide6 @@ -195,9 +151,6 @@ def move_into_pyside_package(): put_into_package(PySide6.support.signature, importhandler) put_into_package(PySide6.support.signature.lib, enum_sig) - put_into_package(None if orig_typing else PySide6.support.signature, typing) - put_into_package(PySide6.support.signature, inspect) - from shibokensupport.signature import mapping from shibokensupport.signature import errorhandler from shibokensupport.signature import layout diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py index 177f4f179..7bf096389 100644 --- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py +++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py @@ -47,13 +47,13 @@ The PySide modules are not loaded in advance, but only after they appear in sys.modules. This minimizes the loading overhead. """ -import sys -import struct import os -from pathlib import Path +import struct +import sys +import typing -from shibokensupport.signature import typing -from shibokensupport.signature.typing import TypeVar, Generic +from pathlib import Path +from typing import TypeVar, Generic from shibokensupport.signature.lib.tool import with_metaclass class ellipsis(object): diff --git a/sources/shiboken6/tests/samplebinding/pointerprimitivetype_test.py b/sources/shiboken6/tests/samplebinding/pointerprimitivetype_test.py index 09362d05f..ad3bd899a 100644 --- a/sources/shiboken6/tests/samplebinding/pointerprimitivetype_test.py +++ b/sources/shiboken6/tests/samplebinding/pointerprimitivetype_test.py @@ -56,7 +56,7 @@ from sample import IntArray2, VirtualMethods import shiboken6 _init_pyside_extension() # trigger init, which does not happen in tests -from shibokensupport.signature import typing +import typing class PointerPrimitiveTypeTest(unittest.TestCase): -- cgit v1.2.3