diff options
| author | Christian Tismer <tismer@stackless.com> | 2018-07-14 15:10:56 +0200 |
|---|---|---|
| committer | Christian Tismer <tismer@stackless.com> | 2018-11-24 10:31:02 +0000 |
| commit | b92fb6e81be252a2ffae26768434028c5029ddc7 (patch) | |
| tree | 88338bea02faff38ac986ba9d39c24d17670f795 /sources/pyside2/PySide2/support/signature/loader.py | |
| parent | 4413f505ebcc39882ab7052488b37e38300b5219 (diff) | |
Split The Signature Module After The Project Split
The PySide project has been split into three pieces, including
Shiboken. This had far-reaching consequences for the signature project.
Shiboken can be run together with PySide or alone,
with tests or without. In every configuration, the signature
module has to work correctly.
During tests, the shiboken binary also hides the shiboken module,
and we had to use extra efforts to always guarantee the accessibility
of all signature modules.
This commit is the preparation for typeerrors implemented with the
signature module. It has been split off because the splitting
is not directly related, besides these unawaited consequences.
I re-added and corrected voidptr_test and simplified the calls.
Remark.. We should rename shiboken to Shiboken in all imports.
I also simplified initialization. After "from PySide2 import QtCore",
now a simple access like "type.__signature__" triggers initialization.
Further, I removed all traces of "signature_loader" and allowed
loading everything from PySide2.support.signature, again. The
loader is now needed internally, only.
Also, moved the type patching into FinishSignatureInitialization
to support modules with no classes at all.
The "testbinding" problem was finally identified as a name clash
when the same function is also a signal. A further investigation
showed that there exists also a regular PySide method with
that problem. The test was extended to all methods, and it
maps now all these cases to "{name}.overload".
Updated the included typing27.py from https://pypi.org/project/typing/
from version 3.6.2 to version 3.6.6 .
Task-number: PYSIDE-749
Change-Id: Ie33b8c6b0df5640212f8991539088593a041a05c
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/pyside2/PySide2/support/signature/loader.py')
| -rw-r--r-- | sources/pyside2/PySide2/support/signature/loader.py | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/sources/pyside2/PySide2/support/signature/loader.py b/sources/pyside2/PySide2/support/signature/loader.py deleted file mode 100644 index 21ecebcc8..000000000 --- a/sources/pyside2/PySide2/support/signature/loader.py +++ /dev/null @@ -1,89 +0,0 @@ -############################################################################# -## -## Copyright (C) 2018 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of Qt for Python. -## -## $QT_BEGIN_LICENSE:LGPL$ -## Commercial License Usage -## Licensees holding valid commercial Qt licenses may use this file in -## accordance with the commercial license agreement provided with the -## Software or, alternatively, in accordance with the terms contained in -## a written agreement between you and The Qt Company. For licensing terms -## and conditions see https://www.qt.io/terms-conditions. For further -## information use the contact form at https://www.qt.io/contact-us. -## -## GNU Lesser General Public License Usage -## Alternatively, this file may be used under the terms of the GNU Lesser -## General Public License version 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# - -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 in the C source is now only a short string. - -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 -import os - -# 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) -sys.path.insert(0, package_dir) -if sys.version_info >= (3,): - import inspect -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) -# Note also that during the tests we have a different encoding that would -# break the Python license decorated files without an encoding line. -from PySide2.support.signature import layout - -# name used in signature.cpp -def create_signature(props, key): - return layout.create_signature(props, key) - -# end of file |
