diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-08-29 10:33:56 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-08-29 10:34:09 +0200 |
commit | 7eb87edb6c951a9bbf8a850e3de13466229df853 (patch) | |
tree | 622693dd646a40b73532f43f983b168db65ee125 /sources/pyside2 | |
parent | fbddb1a61600a1a33a1d3088ec47743164038e85 (diff) | |
parent | ef2c47069c545f5afdf767c70add543bac4c77e6 (diff) |
Merge remote-tracking branch 'origin/5.11' into dev
Change-Id: I302543eef74bc1f3dc6340cdfab7510a66ea1b6a
Diffstat (limited to 'sources/pyside2')
-rw-r--r-- | sources/pyside2/PySide2/QtWidgets/typesystem_widgets_common.xml | 5 | ||||
-rw-r--r-- | sources/pyside2/PySide2/support/signature/backport_inspect.py | 4 | ||||
-rw-r--r-- | sources/pyside2/PySide2/support/signature/loader.py | 18 | ||||
-rw-r--r-- | sources/pyside2/PySide2/support/signature/mapping.py | 2 | ||||
-rw-r--r-- | sources/pyside2/PySide2/support/signature/parser.py | 27 | ||||
-rw-r--r-- | sources/pyside2/tests/QtWidgets/CMakeLists.txt | 1 | ||||
-rw-r--r-- | sources/pyside2/tests/QtWidgets/signature_test.py (renamed from sources/pyside2/tests/registry/signature_test.py) | 92 | ||||
-rw-r--r-- | sources/pyside2/tests/registry/CMakeLists.txt | 1 |
8 files changed, 44 insertions, 106 deletions
diff --git a/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_common.xml b/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_common.xml index 7394b121f..9da5c71d9 100644 --- a/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_common.xml +++ b/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_common.xml @@ -405,6 +405,11 @@ <modify-function signature="wheelEvent(QGraphicsSceneWheelEvent*)"> <modify-argument index="1" invalidate-after-use="yes"/> </modify-function> + <modify-function signature="setGraphicsEffect(QGraphicsEffect*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> <!-- ### These methods are internal on Qt. --> <modify-function signature="supportsExtension(QGraphicsItem::Extension)const" remove="all"/> <modify-function signature="setExtension(QGraphicsItem::Extension,QVariant)" remove="all"/> diff --git a/sources/pyside2/PySide2/support/signature/backport_inspect.py b/sources/pyside2/PySide2/support/signature/backport_inspect.py index 9fed3e82e..0eafe9caa 100644 --- a/sources/pyside2/PySide2/support/signature/backport_inspect.py +++ b/sources/pyside2/PySide2/support/signature/backport_inspect.py @@ -88,6 +88,10 @@ PSF LICENSE AGREEMENT FOR PYTHON 3.7.0 to be bound by the terms and conditions of this License Agreement. """ +__doc__ = """ + signature() - get a Signature object for the callable +""" + import sys from collections import OrderedDict diff --git a/sources/pyside2/PySide2/support/signature/loader.py b/sources/pyside2/PySide2/support/signature/loader.py index 1827ca454..f51bafe79 100644 --- a/sources/pyside2/PySide2/support/signature/loader.py +++ b/sources/pyside2/PySide2/support/signature/loader.py @@ -40,13 +40,18 @@ from __future__ import print_function, absolute_import """ +loader.py + +The loader has to lazy-load the signature module and also provides a few +Python modules to support Python 2.7 . + This file was originally directly embedded into the C source. After it grew more and more, I now prefer to have it as Python file. -The remaining stub loader is a short string now. +The remaining stub loader in the C source is now only a short string. -The loader has to lazy-load the signature module and also provides a few -Python modules that I consider essential and therefore built-in. -This version does not use an embedded .zip file. +This version does no longer use an embedded .zip file but is a package. +The old code without a package but with zip compression can still be found +at https://codereview.qt-project.org/#/c/203533/ for reference. """ import sys @@ -64,7 +69,12 @@ else: import inspect namespace = inspect.__dict__ from PySide2.support.signature import backport_inspect as inspect + _doc = inspect.__doc__ inspect.__dict__.update(namespace) + inspect.__doc__ += _doc + # force inspect to find all attributes. See "heuristic" in pydoc.py! + inspect.__all__ = list(x for x in dir(inspect) if not x.startswith("_")) + # name used in signature.cpp from PySide2.support.signature.parser import pyside_type_init sys.path.pop(0) diff --git a/sources/pyside2/PySide2/support/signature/mapping.py b/sources/pyside2/PySide2/support/signature/mapping.py index 7151af8bb..dd3df0988 100644 --- a/sources/pyside2/PySide2/support/signature/mapping.py +++ b/sources/pyside2/PySide2/support/signature/mapping.py @@ -40,7 +40,7 @@ from __future__ import print_function, absolute_import """ -signature_mapping.py +mapping.py This module has the mapping from the pyside C-modules view of signatures to the Python representation. diff --git a/sources/pyside2/PySide2/support/signature/parser.py b/sources/pyside2/PySide2/support/signature/parser.py index eb6453d3e..9313fb540 100644 --- a/sources/pyside2/PySide2/support/signature/parser.py +++ b/sources/pyside2/PySide2/support/signature/parser.py @@ -49,21 +49,24 @@ from .mapping import type_map, update_mapping, __dict__ as namespace _DEBUG = False -TYPE_MAP_DOC = """ - The type_map variable is central for the signature package. +""" +parser.py + +This module parses the signature text and creates properties for the +signature objects. - PySide has a new function 'CppGenerator::writeSignatureInfo()' - that extracts the gathered information about the function arguments - and defaults as good as it can. But what PySide generates is still - very C-ish and has many constants that Python doesn't understand. +PySide has a new function 'CppGenerator::writeSignatureInfo()' +that extracts the gathered information about the function arguments +and defaults as good as it can. But what PySide generates is still +very C-ish and has many constants that Python doesn't understand. - The function 'try_to_guess()' below understands a lot of PySide's - peculiar way to assume local context. If it is able to do the guess, - then the result is inserted into the dict, so the search happens - not again. For everything that is not covered by these automatic - guesses, we provide an entry in 'type_map' that resolves it. +The function 'try_to_guess()' below understands a lot of PySide's +peculiar way to assume local context. If it is able to do the guess, +then the result is inserted into the dict, so the search happens +not again. For everything that is not covered by these automatic +guesses, we provide an entry in 'type_map' that resolves it. - In effect, 'type_map' maps text to real Python objects. +In effect, 'type_map' maps text to real Python objects. """ def dprint(*args, **kw): diff --git a/sources/pyside2/tests/QtWidgets/CMakeLists.txt b/sources/pyside2/tests/QtWidgets/CMakeLists.txt index 36f1ba80a..6d8645918 100644 --- a/sources/pyside2/tests/QtWidgets/CMakeLists.txt +++ b/sources/pyside2/tests/QtWidgets/CMakeLists.txt @@ -134,6 +134,7 @@ PYSIDE_TEST(qwidget_setlayout_test.py) PYSIDE_TEST(qwidget_test.py) PYSIDE_TEST(qcolormap_test.py) PYSIDE_TEST(reference_count_test.py) +PYSIDE_TEST(signature_test.py) PYSIDE_TEST(standardpixmap_test.py) PYSIDE_TEST(test_module_template.py) PYSIDE_TEST(virtual_protected_inheritance_test.py) diff --git a/sources/pyside2/tests/registry/signature_test.py b/sources/pyside2/tests/QtWidgets/signature_test.py index ae5b9381e..15a9333b4 100644 --- a/sources/pyside2/tests/registry/signature_test.py +++ b/sources/pyside2/tests/QtWidgets/signature_test.py @@ -39,97 +39,13 @@ from __future__ import print_function, absolute_import -import sys -import os import unittest -from collections import OrderedDict -from pprint import pprint -from util import isolate_warnings, check_warnings -import PySide2 - -""" -This test shows that we have over 14500 signatures, -and that they all can be created. -""" - -all_modules = list("PySide2." + x for x in PySide2.__all__) - -from PySide2.support.signature import parser, inspect - -_do_print = (True if os.isatty(sys.stdout.fileno()) or "-v" in sys.argv - else False) - -def dprint(*args, **kw): - if _do_print: - print(*args, **kw) - -def enum_module(mod_name): - __import__(mod_name) - count = 0 - module = sys.modules[mod_name] - dprint() - dprint("Module", mod_name) - members = inspect.getmembers(module, inspect.isclass) - for class_name, klass in members: - signature = getattr(klass, '__signature__', None) - dprint() - # class_members = inspect.getmembers(klass) - # gives us also the inherited things. - dprint(" class {}:".format(class_name)) - if signature is None: - pass # initialization not called? - elif isinstance(signature, list): - dprint(" with overloading():") - for overload in signature: - dprint(" def __init__" + str(overload)) - else: - dprint(" def __init__" + str(signature)) - count += 1 - have_sig = signature is not None - have_members = 0 - class_members = sorted(list(klass.__dict__.items())) - for func_name, func in class_members: - signature = getattr(func, '__signature__', None) - if signature is not None: - if isinstance(signature, list): - dprint(" with overloading():") - for overload in signature: - dprint(" def", func_name + str(overload)) - else: - dprint(" def", func_name + str(signature)) - count += 1 - have_members = count - if not have_sig and not have_members: - # print at least "pass" - dprint(" pass") - return count - -def enum_all(): - result = OrderedDict() - total = 0 - for mod_name in all_modules: - result[mod_name] = enum_module(mod_name) - total += result[mod_name] - pprint(result if sys.version_info >= (3,) else list(result.items()), - stream=sys.stderr) - print("Total", total, file=sys.stderr) - return result +import PySide2.QtCore +import PySide2.QtWidgets +from PySide2.support.signature import inspect class PySideSignatureTest(unittest.TestCase): - def testAllSignaturesCanBuild(self): - with isolate_warnings(): - # This test touches all attributes - result = enum_all() - # We omit the number of functions test. - # That is replaced by existence_test.py . - for mod_name, count in result.items(): - pass - # If an attribute could not be computed, then we will have a warning - # in the warningregistry. - if check_warnings(): - raise RuntimeError("There are errors, see above.") - def testSignatureExist(self): t1 = type(PySide2.QtCore.QObject.children.__signature__) self.assertEqual(t1, inspect.Signature) @@ -158,7 +74,7 @@ class PySideSignatureTest(unittest.TestCase): self.assertTrue(ob1 is ob2) def testModuleIsInitialized(self): - assert PySide2.QtWidgets.QApplication.__signature__ is not None + self.assertTrue(PySide2.QtWidgets.QApplication.__signature__ is not None) def test_NotCalled_is_callable_and_correct(self): # A signature that has a default value with some "Default(...)" diff --git a/sources/pyside2/tests/registry/CMakeLists.txt b/sources/pyside2/tests/registry/CMakeLists.txt index 210219cb2..df50037e1 100644 --- a/sources/pyside2/tests/registry/CMakeLists.txt +++ b/sources/pyside2/tests/registry/CMakeLists.txt @@ -37,5 +37,4 @@ ## ############################################################################# -PYSIDE_TEST(signature_test.py) PYSIDE_TEST(existence_test.py) |