aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Tismer <tismer@stackless.com>2020-04-16 17:23:55 +0200
committerChristian Tismer <tismer@stackless.com>2020-04-17 07:35:44 +0000
commitb0bfeaf894344e31b5175dbbd3ce371fae5dee5b (patch)
treea40744e2e5cabf5c86415c4a9e91baef01f9e86e
parent8df43d8c9d704a3abcc58b8ba84fc6fbfee2c433 (diff)
Support type checking with the mypy module
According to PEP 561, there needs to exist a py.typed file. Also, the import of typing must be visible statically for mypy without importing PySide2. Testing.. run mypy pyside_1100.py and you will get the correct output without "any". Change-Id: I1d08447161630a8c7a64eda32ff8a431e994c6a7 Fixes: PYSIDE-1100 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
-rw-r--r--build_scripts/platforms/unix.py2
-rw-r--r--build_scripts/platforms/windows_desktop.py2
-rw-r--r--sources/pyside2/PySide2/CMakeLists.txt3
-rw-r--r--sources/pyside2/PySide2/py.typed.in1
-rw-r--r--sources/pyside2/PySide2/support/generate_pyi.py4
5 files changed, 10 insertions, 2 deletions
diff --git a/build_scripts/platforms/unix.py b/build_scripts/platforms/unix.py
index fcbd010e2..b842510ff 100644
--- a/build_scripts/platforms/unix.py
+++ b/build_scripts/platforms/unix.py
@@ -188,7 +188,7 @@ def prepare_packages_posix(self, vars):
copydir(
"{build_dir}/pyside2/{st_package_name}",
"{st_build_dir}/{st_package_name}",
- filter=["*.pyi"],
+ filter=["*.pyi", "py.typed"],
vars=vars)
if not OPTION["NOEXAMPLES"]:
diff --git a/build_scripts/platforms/windows_desktop.py b/build_scripts/platforms/windows_desktop.py
index 88114fdaa..750a064b4 100644
--- a/build_scripts/platforms/windows_desktop.py
+++ b/build_scripts/platforms/windows_desktop.py
@@ -197,7 +197,7 @@ def prepare_packages_win32(self, vars):
copydir(
"{build_dir}/pyside2/{st_package_name}",
"{st_build_dir}/{st_package_name}",
- filter=["*.pyi"],
+ filter=["*.pyi", "py.typed"],
vars=vars)
copydir(
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)")