From 7f179082638efe920748b5243423bdcaed3d42ef Mon Sep 17 00:00:00 2001 From: John Snow Date: Tue, 29 Jun 2021 17:43:10 -0400 Subject: [PATCH] python: expose typing information via PEP 561 https://www.python.org/dev/peps/pep-0561/#specification Create 'py.typed' files in each subpackage that indicate to mypy that this is a typed module, so that users of any of these packages can use mypy to check their code as well. Note: Theoretically it's possible to ditch MANIFEST.in in favor of using package_data in setup.cfg, but I genuinely could not figure out how to get it to include things from the *source root* into the *package root*; only how to include things from each subpackage. I tried! Signed-off-by: John Snow Reviewed-by: Willian Rampazzo Reviewed-by: Wainer dos Santos Moschetta Message-id: 20210629214323.1329806-3-jsnow@redhat.com Signed-off-by: John Snow --- python/qemu/machine/py.typed | 0 python/qemu/qmp/py.typed | 0 python/qemu/utils/py.typed | 0 python/setup.cfg | 4 ++++ 4 files changed, 4 insertions(+) create mode 100644 python/qemu/machine/py.typed create mode 100644 python/qemu/qmp/py.typed create mode 100644 python/qemu/utils/py.typed diff --git a/python/qemu/machine/py.typed b/python/qemu/machine/py.typed new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python/qemu/qmp/py.typed b/python/qemu/qmp/py.typed new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python/qemu/utils/py.typed b/python/qemu/utils/py.typed new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python/setup.cfg b/python/setup.cfg index 85cecbb41b..db1639c1f2 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -19,6 +19,7 @@ classifiers = Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 + Typing :: Typed [options] python_requires = >= 3.6 @@ -27,6 +28,9 @@ packages = qemu.machine qemu.utils +[options.package_data] +* = py.typed + [options.extras_require] # Run `pipenv lock --dev` when changing these requirements. devel = -- 2.11.0