@@ -6,3 +6,31 @@ This repository holds the stubs of the PyQt5 framework. It uses the stub files t
6
6
produced during compilation process of PyQt5. These stub files have been modified by the author
7
7
to allow using them for type-checking via Mypy. This repository is far from complete and the author will
8
8
appreciate any PRs or Issues that help making this stub-repository more reliable.
9
+
10
+
11
+ # Building upstream stubs
12
+ The Dockerfile in the root of the ` upstream ` branch is used to build all* of the
13
+ stubs for the upstream PyQt5 modules. The Dockerfile consists of multiple build
14
+ layers:
15
+ * core ` PyQt5 `
16
+ * ` PyQt3D `
17
+ * ` PyQtChart `
18
+ * ` PyQtDataVisualization `
19
+ * ` PyQtPurchasing `
20
+ * ` PyQtWebEngine `
21
+ * an output layer.
22
+
23
+ Each module build layer deposits its stub files within ` /output/ ` in its
24
+ filesystem. The output layer then collects the contents of each into its own
25
+ ` /output/ ` dir for export to the host computer. Build args are provided to
26
+ change the version of each module.
27
+
28
+ A convenience script, ` build_upstream.py ` , is provided. It builds the stubs and
29
+ copies them to the host computer. Make sure you install ` docker-py ` to use it.
30
+ It builds ` $PWD/Dockerfile ` (overridden with ` --dockerfile ` ) and outputs the
31
+ stubs to ` $PWD/PyQt5-stubs ` (overridden with ` --output-dir ` ).
32
+
33
+ \* There are a few missing modules: ` QtAxContainer ` , ` QtAndroidExtras ` ,
34
+ ` QtMacExtras ` , and ` QtWindowsExtras ` . The current project understanding is that
35
+ they need to be built on the target platform, something a Linux-based docker
36
+ image cannot do. The deprecated ` Enginio ` module is also missing.
0 commit comments