Coder Social home page Coder Social logo

pyqt5-stubs's Introduction

mypy logo

PyPI version mypy checked Build Status Downloads Downloads

Mypy stubs for the PyQt5 framework

This repository holds the stubs of the PyQt5 framework. It uses the stub files that are produced during compilation process of PyQt5. These stub files have been modified by the author to allow using them for type-checking via Mypy. This repository is far from complete and the author will appreciate any PRs or Issues that help making this stub-repository more reliable.

Installation

Simply install PyQt5-stubs with pip:

$ pip install PyQt5-stubs

Or clone the latest version from Github and install it via Python setuptools:

$ git clone https://github.com/python-qt-tools/PyQt5-stubs
$ python setup.py install

Supported Modules

The following modules are supported by PyQt5-stubs:

  • QtCore
  • QtWidgets
  • QtGui
  • QtDBus
  • QtNetwork
  • QtOpenGL
  • QtPrintSupport
  • QtSql
  • QtTest
  • QtXml
  • sip

Building upstream stubs

The Dockerfile is used to build all of the stubs for the upstream PyQt5 modules. The Dockerfile consists of multiple build layers:

  • core: PyQt5
  • PyQt3D
  • PyQtChart
  • PyQtDataVisualization
  • PyQtPurchasing
  • PyQtWebEngine
  • an output layer

Each module build layer deposits its stub files within /output/ in its filesystem. The output layer then collects the contents of each into its own /output/ dir for export to the host computer. Build args are provided to change the version of each module.

A convenience script, build_upstream.py, is provided. It builds the stubs and copies them to the host computer. Make sure you install docker-py to use it. It builds $PWD/Dockerfile (overridden with --dockerfile) and outputs the stubs to $PWD/PyQt5-stubs (overridden with --output-dir).

* There are a few missing modules: QtAxContainer, QtAndroidExtras, QtMacExtras, and QtWindowsExtras. The current project understanding is that they need to be built on the target platform, something a Linux-based docker image cannot do. The deprecated Enginio module is also missing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.