Seite 1 von 1

Über Python-Code

Veröffentlicht: 4. September 2019 - 21:30 Uhr
von frferrer
Guten Abend,

Beim Durchsehen einiger Codebeispiele wundere ich mich über eine Anweisung, die in der Dokumentation und in einigen Paketen vorkommt.

Insbesondere im folgenden Dokument https://www.wapt.fr/fr/doc/wapt-create- ... g-software

Hier ist der betreffende Code:

Code: Alle auswählen

for soft in installed_softwares('winscp3'):
    if Version(soft['version']) < Version('5.0.2'):
        run(WAPT.uninstall_cmd(soft['key']))
Die Anweisung Deinstallationsbefehl ist eine Funktion des Moduls Setup-Helfer.
Dieses Modul wird in alle Dateien geladen setup.py ganz oben in der Datei die Anweisung

Code: Alle auswählen

from setuphelpers import *
Ich verstehe also den Sinn der Verwendung nicht wirklich WAPT.uninstall_cmd im Vergleich zu einem einfachen Deinstallationsbefehl.
Dies führt zu folgendem Code:

Code: Alle auswählen

for soft in installed_softwares('winscp3'):
    if Version(soft['version']) < Version('5.0.2'):
        run(uninstall_cmd(soft['key']))
Soweit ich das verstehe, ist WAPT ein Objekt, das Methoden aus dem setuphelpers-Modul enthält.

Daraus ergeben sich folgende Fragen:
  • Wo wird dieses WAPT-Objekt instanziiert? Welchen Zweck hat es?
  • Warum sollte man die uninstall_cmd- des WAPT-Objekts anstelle der uninstall_cmd- des setuphelpers-Moduls verwenden?
  • Welchen Vorteil bietet diese Methode?
DANKE.

Betreff: Über Python-Code

Veröffentlicht: 6. September 2019 – 17:23 Uhr
von htouvet
`common.Wapt.uninstall_cmd` ist ein Alias ​​für `setuphelpers.uninstall_cmd`, vermutlich aus Gründen der Abwärtskompatibilität.

Die WAPT-Instanz (der Klasse `common.Wapt`), die in den Hook-Funktionen `install()`, `uninstall()`, `session_setup()` und `audit()` in `setup.py` verwendet werden kann, ist eine Objektvariable, die vom WAPT-Client instanziiert und vor dem Funktionsaufruf automatisch in den Namensraum des Setup-Moduls eingefügt wird, ähnlich einer eingebauten impliziten Variable (siehe z. B.: https://github.com/tranquilit/WAPT/blob ... n.py#L3701).

Dies wurde ursprünglich eingeführt, um eine explizite Parameterliste in den Definitionen der `install`-Funktion usw. zu vermeiden und die `setup.py`-Datei für unerfahrene Paketierer übersichtlich zu halten, da diese Variable selten verwendet wird.

Das WAPT-Objekt (Klasse common.Wapt) ermöglicht den Zugriff auf den aktuellen Zustand des wapt-Clients und die zugehörige API sowie das Ausführen expliziter Befehle wie WAPT.install('package'), WAPT.remove('package'), WAPT.forget('package') usw. – ähnlich wie in der Kommandozeile mit wapt-get install, wapt-get remove, nur eben im Python-Code.

Betreff: Über Python-Code

Veröffentlicht: 9. September 2019 - 22:02 Uhr
von frferrer
Guten Abend,

Vielen Dank für diese Texterklärung, jetzt ist sie viel verständlicher.

Für Anfänger ist es nicht einfach, sich zurechtzufinden, wenn beide Schriftsysteme verwendet werden.

Darf ich vorschlagen, dass das Codebeispiel in der Dokumentation so überarbeitet wird, dass nur noch die Syntax übrig bleibt?

Code: Alle auswählen

run(uninstall_cmd())
und die Nutzung von WAPT beibehalten.<méthode> als das, was es ist, nämlich die WAPT-Clientinstanz?
https://www.wapt.fr/fr/doc/wapt-create- ... g-software

DANKE.

Betreff: Über Python-Code

Veröffentlicht: 16. September 2019 – 18:25 Uhr
von Sfonteneau
Wir müssen hier unbedingt aufräumen…

Wir haben bisher nicht viel darüber gesprochen, aber ihr könnt die Dokumentation selbst bearbeiten, indem ihr Pull Requests einreicht:

Die Dokumentation findet ihr hier:

https://github.com/tranquilit/WAPT-Documentation.

Wir haben immer weniger Zeit, Dokumentationen zu erstellen.

Hilfe aus der Community wäre super!

Ihr könnt Pull Requests direkt einreichen!