diff options
Diffstat (limited to 'sources')
-rw-r--r-- | sources/pyside2/PySide2/CMakeLists.txt | 3 | ||||
-rw-r--r-- | sources/pyside2/PySide2/py.typed.in | 1 | ||||
-rw-r--r-- | sources/pyside2/PySide2/support/generate_pyi.py | 4 | ||||
-rw-r--r-- | sources/pyside2/libpyside/signalmanager.cpp | 7 | ||||
-rw-r--r-- | sources/shiboken2/doc/gettingstarted.rst | 4 |
5 files changed, 17 insertions, 2 deletions
diff --git a/sources/pyside2/PySide2/CMakeLists.txt b/sources/pyside2/PySide2/CMakeLists.txt index e39db75a1..aa37f19bc 100644 --- a/sources/pyside2/PySide2/CMakeLists.txt +++ b/sources/pyside2/PySide2/CMakeLists.txt @@ -8,6 +8,9 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/__init__.py.in" "${CMAKE_CURRENT_BINARY_DIR}/__init__.py" @ONLY) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/_config.py.in" "${CMAKE_CURRENT_BINARY_DIR}/_config.py" @ONLY) +# typing support for mypy +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/py.typed.in" + "${CMAKE_CURRENT_BINARY_DIR}/py.typed" @ONLY) # Use absolute path instead of relative path, to avoid ninja build errors due to # duplicate file dependency inconsistency. diff --git a/sources/pyside2/PySide2/py.typed.in b/sources/pyside2/PySide2/py.typed.in new file mode 100644 index 000000000..0e76a07dc --- /dev/null +++ b/sources/pyside2/PySide2/py.typed.in @@ -0,0 +1 @@ +# this is a marker file for mypy diff --git a/sources/pyside2/PySide2/support/generate_pyi.py b/sources/pyside2/PySide2/support/generate_pyi.py index e60645701..f173ec2fc 100644 --- a/sources/pyside2/PySide2/support/generate_pyi.py +++ b/sources/pyside2/PySide2/support/generate_pyi.py @@ -138,6 +138,10 @@ class Formatter(Writer): self.print("# Module", mod_name) self.print("import PySide2") from PySide2.support.signature import typing + self.print("try:") + self.print(" import typing") + self.print("except ImportError:") + self.print(" from PySide2.support.signature import typing") self.print("from PySide2.support.signature import typing") self.print("from PySide2.support.signature.mapping import (") self.print(" Virtual, Missing, Invalid, Default, Instance)") diff --git a/sources/pyside2/libpyside/signalmanager.cpp b/sources/pyside2/libpyside/signalmanager.cpp index 0fe0d0092..8e8cc9f02 100644 --- a/sources/pyside2/libpyside/signalmanager.cpp +++ b/sources/pyside2/libpyside/signalmanager.cpp @@ -114,18 +114,24 @@ namespace PySide { PyObjectWrapper::PyObjectWrapper() :m_me(Py_None) { + // PYSIDE-813: When PYSIDE-164 was solved by adding some thread allowance, + // this code was no longer protected. It was hard to find this connection. + // See the website https://bugreports.qt.io/browse/PYSIDE-813 for details. + Shiboken::GilState gil; Py_XINCREF(m_me); } PyObjectWrapper::PyObjectWrapper(PyObject *me) : m_me(me) { + Shiboken::GilState gil; Py_XINCREF(m_me); } PyObjectWrapper::PyObjectWrapper(const PyObjectWrapper &other) : m_me(other.m_me) { + Shiboken::GilState gil; Py_XINCREF(m_me); } @@ -142,6 +148,7 @@ PyObjectWrapper::~PyObjectWrapper() void PyObjectWrapper::reset(PyObject *o) { + Shiboken::GilState gil; Py_XINCREF(o); Py_XDECREF(m_me); m_me = o; diff --git a/sources/shiboken2/doc/gettingstarted.rst b/sources/shiboken2/doc/gettingstarted.rst index e064cec5d..caeb5a909 100644 --- a/sources/shiboken2/doc/gettingstarted.rst +++ b/sources/shiboken2/doc/gettingstarted.rst @@ -28,9 +28,9 @@ If you need only Shiboken Generator, a simple build run would look like this:: --build-tests \ --parallel=8 \ --verbose-build \ - --internal-build=shiboken2-generator + --internal-build-type=shiboken2-generator -The same can be used for the module, changing the value of ``internal-build`` to +The same can be used for the module, changing the value of ``internal-build-type`` to ``shiboken2-module``. Using the wheels |