[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#901022: ITP: reentry -- plugin manager based on setuptools entry points



Package: wnpp
Severity: wishlist
Owner: Andrius Merkys <andrius.merkys@gmail.com>

* Package name    : reentry
  Version         : 1.2.1a2
  Upstream Author : Rico Haeuselmann
* URL             : https://pypi.org/project/reentry/
* License         : MIT
  Programming Lang: Python
  Description     : plugin manager based on setuptools entry points

Setuptool's entry point system is convenient to use for plugin based
python applications. It allows separate python packaes to act as plugins
to a host package, making it easy for the host to find and iterate over
the relevant data structures from plugins.

However simply importing setuptools scales badly with the number of installed
distributions and can be very slow for moderately complex environments (~ 0.5 s). 
Finding and loading of plugins on the other hand is time-critical in 
cases like commandline tools loading subcommands, where 100 ms are a noticeable
delay.

Setuptools's pkg_resources is slow, because it verifies dependencies are installed 
correctly for all distributions present in the environment on import. This allows
entry points to have additional requirements.

Reentry forgoes this dependency check for entry points without such 'extras'
dependencies and thereby manages to be fast and scale better, with the amount of
installed plugins, not installed python packages in general.

This package is used for plugin management in AiiDA framework (http://www.aiida.net),
which I am planning to package for Debian.

I will team-maintain the package together with Debian Python Modules Team.

-- 
Andrius Merkys
Vilnius University Institute of Biotechnology, Saulėtekio al. 7, room V325
LT-10257 Vilnius, Lithuania


Reply to: