flake8-qgis
A flake8 plugin for QGIS3 python plugins written in Python.
Made with Cookiecutter template cookiecutter-flake8-plugin. Inspired by flake8-simplify.
Installation
Install with pip:
pip install flake8-qgis
Usage
Just call flake8 . in your package or flake your.py.
Rules
QGS101: Don't use from-imports from qgis protected members (example)QGS102: Don't use imports from qgis protected members (example)QGS103: Don't use from-imports from PyQt directly (example)QGS104: Don't use imports from PyQt directly (example)QGS105: Don't pass QgisInterface as an argument (example)
You might have good reasons to ignore some rules.
To do that, use the standard Flake8 configuration. For example, within the setup.cfg file:
[flake8]
ignore = QGS101, QGS102
Examples
QGS101
# Bad
from qgs._core import QgsMapLayer, QgsVectorLayer
from qgis._core import QgsApplication
# Good
from qgs.core import QgsMapLayer, QgsVectorLayer
from qgis.core import QgsApplication
QGS102
# Bad
import qgs._core.QgsVectorLayer as QgsVectorLayer
# Good
import qgs.core.QgsVectorLayer as QgsVectorLayer
QGS103
# Bad
from PyQt5.QtCore import pyqtSignal
# Good
from qgis.PyQt.QtCore import pyqtSignal
QGS104
# Bad
import PyQt5.QtCore.pyqtSignal as pyqtSignal
# Good
import qgis.PyQt.QtCore.pyqtSignal as pyqtSignal
QGS105
# Bad: iface passed as argument
def some_function(somearg, iface):
# do something with iface
# Good: iface imported
from qgis.utils import iface
def some_function(somearg):
# do something with iface
# in classFactory the passing is OK, since QGIS injects it
def classFactory(iface):
# preferably do not pass the iface to plugin
Metadata
Release files for flake8-qgis 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| flake8_qgis-0.1.3.tar.gz | 5.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flake8_qgis-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.0 kB
Release files / flake8_qgis-0.1.3.tar.gz
| Download URL | flake8_qgis-0.1.3.tar.gz |
|---|---|
| Size | 5.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f600e991738965a4dfc28a59eee24489d32e6ea5527ea50815fe44bbbbf374a1
|
|
BLAKE2b-256 checksum How to use checksums |
2bd3771bd017d5092e0d3af53ce9730644dcc7fe376d09627a695a7ac9c05c9e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5
|
Release files / flake8_qgis-0.1.3-py3-none-any.whl
| Download URL | flake8_qgis-0.1.3-py3-none-any.whl |
|---|---|
| Size | 5.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
862f9b86afb5bbf3579e2f11772e64f1b815ca70d994c8590facb9e57bc9033e
|
|
BLAKE2b-256 checksum How to use checksums |
8d12f72341c554ca6c680be9a25b76f41453009b839bc27f79416dee6ea8e46d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5
|