extensies

Simple Plugin System
Download nu

extensies Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Other/Proprietary Li...
  • Prijs:
  • FREE
  • Naam uitgever:
  • Tarek Ziade
  • Uitgever website:
  • http://bitbucket.org/tarek/

extensies Tags


extensies Beschrijving

Simple Plugin System Extensies is een eenvoudig plug-in-systeem geïnspireerd op de toegangspunten van SetUptools. Hiermee kunt u de plug-ins definiëren en / of gebruiken. Hoe definiëren een plugineplugin kan elk wijsabel voorwerp zijn. Het moet worden geregistreerd via het extensions-register. Laten we een eenvoudige functie maken die het gemiddelde van sommige nummers berekent, en laten we het opslaan in een bestand met de naam extensions.py in een pakket genaamd MyApp: def gemiddelde (* args): Return Sum (Args) / Len (args) Deze functie kan in het plug-in-systeem worden geregistreerd met behulp van de REGISTER-functie. Plug-ins hebben een naam en behoren tot een groep. Voor ons voorbeeld kan de groep MyApp.operator en de naam gemiddelde zijn: van extensies Importregister # Gebruik: Registreren (groep, Naam, Location) Registreren ('MyApp.operator', 'Gemiddeld', 'MyApp.extensions: Gemiddeld' ) De derde parameter geeft de locatie van de callable, met de Form Module_Name: ATWERS, waar Module_Name de volledige naam van de module is en de kenmerken in de module is. Notice dat de groepsnaam de naam van het pakket bevat, dat is Een goede praktijk om botsingen te voorkomen, aangezien de groepsnamen wereldwijd zijn voor alle toepassingen die extensies gebruiken. Een andere manier om uw plug-ins te registreren door een configuratiebestand te registreren. U kunt een INI-like bestand schrijven, met behulp van groepen voor de titel van secties, en naam = locatie voor de waarden. Als u een operators.cfg-bestand maakt met deze inhoud: Gemiddeld = MyApp.Extensions: AveryUou Wordt in staat om het te laden met Register_File: van extensions Import Register_Fileregister_File ('Operators.cfg') Deze functie scant uw bestand en registreert u de plug-ins voor u.HOW om een pluginiterate te gebruiken over geregistreerde plugstextensions biedt een GET-functie waarmee u kunt voldoen Over alle geregistreerde plug-ins voor een gegeven groep: van extensies Import getfor plug-in in Get (groep = 'myapp.operator'): print plugin.nameyou kan ook de naam geven aan de functie: voor plug-in in Get (groep = 'myapp.operator ', Naam =' Gemiddeld '): Print plugin.nameor zelfs herhaalt over alle plug-ins: van itertools import isliceFor plugin in islice (Get (), 5): Print plugin.NAMETHE Plugin objectthe objecten geretourneerd door de GET-functie zijn plug-in klasse-instanties .De plug-in-class biedt één methode genaamd LO AD-advertentie, die het geregistreerde object retourneert, zodat u het kunt gebruiken # laten we de plug-in "gemiddeld` van de groep `myapp.operator`plugin = krijgen (groep = 'myapp.operator', naam = 'gemiddeld'). Volgende ( ) # Laten we Itfunc = plug-in laden.LOAD () # Laten we het gebruiken NUBAKAGE = FUNC (1, 2, 3) Plug-in biedt ook een naam en een groepsattribuut, dat overeenkomt met de naam van de geregistreerde plug-in en aan de groep. Distribueer uw pluginSIF die u uw plug-ins wilt distribueren, u hoeft alleen de module te importeren die de plug-ins registreert in uw Setup.py-bestand: van Distutils.core Import SetUpFrom MyApp Import Plugins # Registers De plug-insetup (naam = 'MyApp', versie = '1.0' Packages = ) Hiermee wordt de plug-ins geregistreerd wanneer het pakket is geïnstalleerd door een speciaal bestand met de naam Plug-ins te maken in de GGG-Info-directory die is gemaakt wanneer uw pakket is geïnstalleerd. Compatibiliteit met SetUptools Entry PointExtensions is volledig compatibel. Met toegangspunten van Setuptools. U kunt dus de invoerpunten omvatten en gebruiken die zijn gedefinieerd in toepassingen van derden die in uw Python zijn geïnstalleerd. Als u de invoerpunten van Setuptools wilt herhalen, gebruikt u de optie Consume_entry_points wanneer u de GET-functie belt: Plug-ins = GET (Consume_Try_Points = TRUE) Dit hanteert over extensions-plug-ins en setuptools-invoerpunten. Vereisten: · Python


extensies Gerelateerde software