QGIS Plugin
Das Plugin lebt in qgis_plugin/axqua/ und ist kompatibel mit QGIS 3.44 und QGIS 4. Es enthält keinen numerischen Code. Jede Aufgabe wird an das Programm axqua (Allgemeine Struktur & UML) übergeben.
Modul |
Inhalt |
|---|---|
|
Das Objekt, das QGIS lädt: das Panel, die Menüeinträge, die Symbolleiste Schaltfläche und der Verarbeitungsanbieter und deren Entfernung beim Entladen des Plugins. |
|
Das einzige Modul, das QGIS 3 von QGIS 4 unterscheidet. Alle anderen Module importieren Qt-Klassen über |
|
Sucht das Programm |
|
Führt Aufrufe des Programms im Hintergrund aus, so dass QGIS reagiert. |
|
Der Arbeitstisch und die Regeln für die Auffrischung. |
|
Findet die Ergebnisdateien eines Jobs und fügt sie dem QGIS-Projekt als Layer hinzu. |
|
Die vordefinierten Kartenstile für Wassertiefe und Fließgeschwindigkeit. |
|
Die Liste der Fälle des Panels, die in den Einstellungen von QGIS gespeichert ist, und der Leser der Projektdateien früherer Versionen. |
|
Die Schritte eines Batches und das Shell-Skript, das sie ohne QGIS ausführt. |
|
Die Tabelle der Registerkarten und Unterregisterkarten: ihre Reihenfolge, die Fähigkeiten, die jeder zeigt, und die Dokumentationsseite und das Label, das Help dafür öffnet. |
|
Das Panel: die festen Registerkarten, die Jobliste darunter, Clean Up und Help. |
|
Die Registerkarte Configuration und der Editor des Profils dieses Computers. |
|
Die Installationsassistenten für TELEMAC, OpenFOAM und die Postprozessoren: die Registerkarteneinstellungen, die Überprüfung und die laufende Installation, ein Fenster um |
|
Die Fall-Einstellungen: die Seiten und Frames einer Fall-Datei, die aus |
|
Die Registerkarte Case Setup und die Seiten der Workflow-Tabs. |
|
Die Warndreiecke und die Adressen der Dokumentation, die das Plugin öffnet (eine lokale Kopie oder die veröffentlichte in der Sprache von QGIS). |
|
Das Fenster von Clean Up, um |
|
Die Jobtabelle, der Log Viewer, der Einstellungsdialog, das Drucklayout und der Filmexport. |
|
Die Algorithmen für das QGIS Processing Toolbox. |
Verknüpfen Sie für die Entwicklung den Plugin-Ordner mit dem Plugin-Ordner eines QGIS-Benutzerprofils, anstatt das Archiv zu installieren:
ln -s /path/to/aXqua/qgis_plugin/axqua ~/.local/share/QGIS/QGIS3/profiles/default/python/plugins/axqua
Wenn das installierte QGIS älter als Version 3.44 ist, startet das Skript scripts/qgis_dev.sh das QGIS einer Conda-Umgebung mit einem eigenen Benutzerprofil, in dem es das Plugin verknüpft und aktiviert. Bestehende Profile werden nicht geändert:
conda create -n qgis-dev -c conda-forge "qgis>=3.44"
scripts/qgis_dev.sh
QGIS listet ein Plugin nur dann auf, wenn es metadata.txt lesen kann. Der Befehl python scripts/build_plugin_zip.py --check liest die Datei auf die gleiche Weise wie QGIS.
Help Im Plugin öffnet sich die Dokumentation im Abschnitt des Tabs, der angezeigt wird. Das Plugin-Archiv trägt keine Kopie der Dokumentation: axqua docs benennt eine Kopie, die auf diesem Computer aufgebaut ist ($AXQUA_DOCS, sonst docs/_build/site oder docs/_build/html der Quellauscheckung) und ob der Standardbrowser sie lesen kann, und das Plugin öffnet die veröffentlichte Dokumentation ansonsten. Eine lokale Seite wird durch eine kleine Weiterleitungsseite (_help/open.html neben der Kopie) geöffnet, da xdg-open und Chrom den Abschnittsteil (#...) einer Dateiadresse ablegen.
Die Tests des Plugins sind in qgis_plugin/tests/. Die Tests, die QGIS erfordern, werden übersprungen, wenn das Python-Modul qgis nicht verfügbar ist. Das Skript scripts/build_plugin_zip.py erstellt das Plugin-Archiv und überprüft die Anforderungen des QGIS-Plugin-Repository.
Freigaben. Das Plugin und das Programm werden zusammen unter einer Versionsnummer veröffentlicht, die pyproject.toml, src/axqua/__init__.py (_FALLBACK_VERSION), qgis_plugin/axqua/metadata.txt und docs/conf.py tragen. Ein Tag v<version>, der auf GitHub geschoben wird, erstellt das Plugin-Archiv und fügt es dem Release hinzu. Das Programm wird von Hand auf PyPI hochgeladen, von einer sauberen Kopie des getaggten Commits. twine fragt nach einem API-Token von pypi.org (Account settings > API tokens; ein auf das Projekt axqua begrenztes Token genügt):
rm -rf build dist/pypi
python -m pip install --upgrade build twine
python -m build --outdir dist/pypi
twine check --strict dist/pypi/*
python scripts/check_wheel.py dist/pypi/*.whl
twine upload dist/pypi/*
scripts/check_wheel.py bestätigt, dass das Rad genau die verfolgten Dateien von src/axqua und die Lizenzdateien enthält, die pyproject.toml Namen. PyPI akzeptiert eine Versionsnummer nur einmal, auch nachdem die Dateien gelöscht wurden, so dass ein Fehler eine neue Version erfordert. twine upload --repository testpypi dist/pypi/* wird zu TestPyPI für eine Probe hochgeladen. Der Job pypi des Release-Workflows kann den Upload mit Trusted Publishing übernehmen, in dem kein Token gespeichert ist; der Kommentar über dem Job in .github/workflows/plugin-release.yml erklärt, wie man ihn einschaltet.