Über Python-Code

Fragen zu WAPT-Paketen / Anfragen und Hilfe bezüglich WAPT-Paketen.
Forumregeln
Community-Forumregeln
* Englischer Support auf www.reddit.com/r/wapt
* Französischer Community-Support ist in diesem Forum verfügbar.
* Bitte kennzeichnen Sie gelöste Themen mit [GELÖST].
* Bitte bearbeiten Sie keine Themen, die mit [GELÖST] markiert sind. Erstellen Sie stattdessen ein neues Thema und verweisen Sie auf das alte.
* Geben Sie die installierte WAPT-Version, die vollständige Versionsnummer und die Build-Nummer (2.2.1.11957 / 2.2.2.12337 / usw.) sowie die Enterprise-/Discovery-Edition an.
* Versionen 1.8.2 und älter werden nicht mehr unterstützt. Fragen zu Version 1.8.2 werden nur beantwortet, wenn sie sich auf ein Upgrade auf eine unterstützte Version (2.1, 2.2 usw.) beziehen.
* Geben Sie das Server-Betriebssystem (Linux/Windows) und die Version (Debian Buster/Bullseye – CentOS 7 – Windows Server 2012/2016/2019) an.
* Geben Sie gegebenenfalls das Betriebssystem des Administrations-/Paketerstellungsrechners und des Rechners mit dem problematischen Agenten an (Windows 7/10/11/Debian 11/etc.).
* Vermeiden Sie es, mehrere Fragen in einem Thema zu stellen, da diese sonst möglicherweise ignoriert werden. Falls mehrere Themen relevant sind, erstellen Sie bitte separate Themen, vorzugsweise nacheinander und nicht gleichzeitig (d. h. vermeiden Sie Spam im Forum).
* Fügen Sie Code-Snippets, Screenshots und andere Bilder direkt in Ihren Beitrag ein. Links zu Pastebin, Bitly und anderen Drittanbieterseiten werden systematisch entfernt.
* Wie in jedem Community-Forum erfolgt die Unterstützung freiwillig durch die Mitglieder. Für kommerziellen Support kontaktieren Sie bitte den Vertrieb von Tranquil IT unter +44 2 40 97 57 55.
Gesperrt
Ferrer
Nachrichten: 8
Anmeldung: 20. Oktober 2017 - 19:05 Uhr

4. September 2019 – 21:30 Uhr

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.
Benutzeravatar
htouvet
WAPT-Experte
Nachrichten: 436
Anmeldung: 16. März 2015 - 10:48 Uhr
Kontakt:

6. September 2019 – 17:23 Uhr

`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.
Ruhige IT
Ferrer
Nachrichten: 8
Anmeldung: 20. Oktober 2017 - 19:05 Uhr

9. September 2019 - 22:02 Uhr

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.
Benutzeravatar
Sfonteneau
WAPT-Experte
Nachrichten: 2322
Registriert: 10. Juli 2014 - 23:52 Uhr
Kontakt:

16. September 2019 – 18:25 Uhr

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!
Gesperrt