Erweiterungen

Einfaches Plugin-System
Jetzt downloaden

Erweiterungen Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Other/Proprietary Li...
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Tarek Ziade
  • Website des Verlags:
  • http://bitbucket.org/tarek/

Erweiterungen Stichworte


Erweiterungen Beschreibung

Einfaches Plugin-System Erweiterungen ist ein einfaches Plugin-System von Setuptools Einspeisepunkten inspiriert. Es ermöglicht eine Anwendung zu definieren und / oder die Verwendung plugins.How ein pluginA Plugin zu definieren, kann jedes aufrufbare Objekt sein. Es muss durch die Erweiterungen registry.For Beispiel registriert werden, lassen Sie uns eine einfache Funktion übernehmen, die den Mittelwert von einigen Zahlen berechnet, und wir speichern sie in einer Datei namens extensions.py in einem Paket myapp genannt: def Durchschnitt (* args): Rückkehr Summe (args) / len (args) Diese Funktion kann im Plugin-System registriert werden, mit der Registerfunktion. Plugins hat einen Namen und gehört zu einer Gruppe. Für unser Beispiel kann die Gruppe myapp.operator und den Namen Durchschnitt sein: von Erweiterungen importieren # Nutzung registrieren (Gruppe, Name, Ort) registrieren ( 'myapp.operator', 'durchschnittlich', 'myapp.extensions: average' der dritte Parameter) gibt die Position des aufrufbaren, mit dem Formular module_name: attrs, wo module_name der vollständige Name des Moduls ist, und attrs die Attribute in der module.Notice dass der Gruppenname der Name des Pakets umfasst, das ist eine gute Praxis, da die Gruppennamen zu vermeiden Kollisionen sind für alle Anwendungen weltweit, die fileThere ist eine andere Art und Weise Ihre Plugins zu registrieren, indem Sie eine Konfigurationsdatei extensions.Using eine Konfiguration verwenden. Sie können eine ini-Datei wie unter Verwendung von Gruppen für die Abschnitte Titel und Namen = Speicherort für das values.For Beispiel schreiben, wenn Sie eine operators.cfg Datei mit folgendem Inhalt zu erstellen: mittel = myapp.extensions: averageYou in der Lage, es register_file mit laden: aus Erweiterungen Diese Funktion scannt Dateien und registrieren die Plugins für you.How register_fileregister_file ( operators.cfg) importieren Sie eine get-Funktion, die Sie Iterierte ermöglicht eine pluginIterate über registrierte pluginsextensions verwenden liefert über alle registrierten Plugins für eine bestimmte Gruppe: von Erweiterungen importieren getfor Plugin erhalten (Gruppe = 'myapp.operator'): print plugin.nameYou können auch den Namen der Funktion geben: für Plug-in get (group = 'myapp.operator name = 'Durchschnitt'): print plugin.nameOr Iterierte auch über alle Plugins: von itertools importieren islicefor Plugin in Islice (get (), 5): print plugin.nameThe Plugin objectThe Objekte durch die get-Funktion werden Plugin-Klasse Instanzen zurück .Der Plugin-Klasse stellt eine Methode aufgerufen lo Anzeige, dass die Rendite der registrierten Objekt, so können Sie es verwenden # lassen Sie uns das Plugin `average` der Gruppe erhalten` myapp.operator`plugin = get (Gruppe = 'myapp.operator' name = 'Durchschnitt'). next ( ) Last des # let itfunc = plugin.load () # ließen sie es verwendet nowaverage = func (1, 2, 3) Plugin bietet auch einen Namen und ein Gruppenattribut, das entspricht den Namen des registrierten Plugin, und zu seiner Gruppe. verteilen Sie Ihre pluginsIf möchten Sie Ihre Plugins verteilen, müssen Sie nur noch das Modul importieren, dass die Register die Plugins in Ihrem setup.py-Datei: von distutils.core Import setupfrom myapp Import Plugins # Register der pluginssetup (name = myapp, Version = 1.0 Pakete = ) Dadurch werden die Plugins registrieren, wenn das Paket durch die Schaffung einer speziellen Datei namens PLUGINS in die .egg-info-Verzeichnis installiert wird erstellt, wenn Ihr Paket ist installed.Compatibility mit Setuptools Eintrag pointsextensions ist voll kompatibel mit Setuptools Einstiegspunkte. So Sie durchlaufen und in Anwendungen von Drittanbietern definiert Verwendung Einstiegspunkte können, die in Ihrem Python.If installiert sind Sie Setuptools Einstiegspunkte zu durchlaufen, die consume_entry_points Option verwenden, wenn Sie die get-Funktion aufrufen: plugins = get (consume_entry_points = True) Dies wird über Erweiterungen Plugins und Setuptools Einspeisepunkten laufen. Anforderungen: · Python


Erweiterungen Zugehörige Software