extensiones

Sistema de plugin simple
Descargar ahora

extensiones Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • Other/Proprietary Li...
  • Precio:
  • FREE
  • Nombre del editor:
  • Tarek Ziade
  • Sitio web del editor:
  • http://bitbucket.org/tarek/

extensiones Etiquetas


extensiones Descripción

sistema simple plugin extensiones es un sistema simple plug-in inspirado en los puntos de entrada setuptools. Se permite que una aplicación para definir y / o uso plugins.How para definir un plugin pluginA puede ser cualquier objeto invocable. Tiene que estar registrado a través de las extensiones registry.For ejemplo, tomemos una simple función que calcula el promedio de algunos números, y ahorrémoslo en un archivo llamado extensions.py en un paquete llamado miaplicacion: def promedio (* args): suma de retorno (args) / len (args) Esta función se puede registrar en el sistema de plugins usando la función de registro. Plugins tienen un nombre y pertenecen a un grupo. Para nuestro ejemplo, el grupo puede ser myapp.operator y el nombre Media: de extensiones importar registrarse uso #: registro (grupo, nombre, ubicación) registrarse ( 'myapp.operator', 'myapp.extensions: normal' 'promedio' ) el tercer parámetro da la ubicación de la exigible, con la forma module_name: attrs, donde module_name es el nombre completo del módulo, y attrs los atributos en la module.Notice que el nombre de grupo incluye el nombre del paquete, que es una buena práctica para las colisiones Evita desde los nombres de los grupos son globales para todas las aplicaciones que utilizan una configuración extensions.Using fileThere es otra manera de registrar sus plugins mediante el uso de un archivo de configuración. Puede escribir grupos ini-como archivo, utilizando para el título secciones, y el nombre = ubicación para el ejemplo values.For, si crea un archivo operators.cfg con este contenido: = promedio myapp.extensions: averageYou será capaz de cargarlo utilizando register_file: desde extensiones importar register_fileregister_file ( 'operators.cfg') Esta función escaneará su archivo y registro de los plugins para you.How a utilizar un pluginsextensions pluginIterate sobre registrados proporciona una función get que permite iterar sobre todos los plugins registrados para un determinado grupo de extensiones: importar getfor plug-in de obtener (grupo = 'myapp.operator'): imprimir plugin.nameYou también puede dar el nombre de la función: para el plug-in en get (grupo = 'myapp.operator ', name = 'promedio'): print plugin.nameOr incluso iterar sobre todos los complementos: desde itertools importar islicefor plugins islice (get (), 5): impresión en plugin.nameThe Plugin objectThe objetos devueltos por la función get son instancias de la clase Plugin .La clase Plugin proporciona un método llamado lo anuncio, que devuelve el objeto registrado, por lo que puede utilizar el mismo # Vamos a conseguir el plugin `average` del grupo` myapp.operator`plugin = get (grupo = 'myapp.operator', name = 'medio'). siguiente ( ) carga # de let itfunc = plugin.load () # usémosla nowaverage = func (1, 2, 3) Plugin también proporciona un nombre y un atributo de grupo, que corresponde al nombre del plugin registrado, y a su grupo. distribuir su pluginsIf quiere distribuir sus plugins, sólo hay que importar el módulo que registra los plugins en el archivo setup.py: desde distutils.core miaplicacion setupfrom importación plugins de importación # registros del pluginssetup (name = 'miaplicacion', versión = '1.0' paquetes = ) Esto registrará los plugins cuando el paquete se instala mediante la creación de un archivo especial llamado pLUGINS en el directorio .egg-información creada cuando su paquete se installed.Compatibility con pointsextensions entrada setuptools es totalmente compatible con los puntos de entrada setuptools. Para que pueda recorrer los puntos de entrada y de uso definidas en las aplicaciones de terceros que están instalados en su Python.If desea iterar a través de los puntos de entrada setuptools, utilice la opción consume_entry_points cuando se llama a la función get: plugins = get (consume_entry_points = True) esto iterar sobre extensiones de plugins y puntos de entrada setuptools. Requisitos: · Python


extensiones Software relacionado