On 10/27/2011 04:34 PM, PJ Eby wrote:
You're making this way too hard. ;-)
All of the APIs you're using are low-level things, used only for advanced plugin frameworks or installer tools. All you need for a simple script is:
sys.path.insert(0, abspath('egg_directory')) import pkg_resources pkg_resources.require('foolproof') import foolproof
Thanks, that's much better right :) So anyway I do have to work with plugins, specifically envisage plugins. Moreover, our applications are normally composed by more than one egg, and each of them has its own setup_requires requiring a set of the global eggs. At the moment the run system is a bit complicated and uses pkg_resources.find_plugins... That said reading the API was still interesting, and for example I found the working_set.subscribe In theory I can register a callback function that when something is "found" does something, and I thought immediately that it might be possible to hot-swap some plugins at run-time, is that true doing some tricks with that, is that correct? def mycallback(dist): if dist == 'name': # reload(dist), if anything like this can be done at all