On 23 Jul 2013 05:53, "Carl Meyer" <carl@oddbird.net> wrote:
On 07/22/2013 06:31 AM, Daniel Holth wrote:
Yes, extras are *only* a way to create aliases for a set of dependencies. They are not recorded as installed. It should make no difference whether you install ipython[notebook], look up the dependencies for the ipython notebook and install them manually, or happen to have the ipython[notebook] dependencies installed and then later install ipython itself.
In the broad view I don't think this is true, when you consider uninstall. If I install ipython[notebook] and later uninstall ipython, it would be reasonable for the uninstaller to prompt me to uninstall all the ipython notebook dependencies by default, whereas it should not do so if I had installed them separately and directly.
That said, the REQUESTED flag in PEP 376 is probably sufficient for this, so it may still be true that there's no need to store which extras were installed with a package.
The safest logic for that kind of garbage collection feature is currently: * was it explicitly requested? * if not, does anything else (extra or not) still depend on it? Tracking extra requests directly currently falls into YAGNI territory in my opinion - if people want that level of control, then they really have a separate distribution rather than an extra. Cheers, Nick.
Carl
_______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig