[Distutils] Are there best practices on creating/using egg extras?
Phillip J. Eby
pje at telecommunity.com
Fri Jul 20 21:58:09 CEST 2007
At 01:50 PM 7/20/2007 -0500, Dave Peterson wrote:
>Hello,
>
>I'm not sure if I've painted Enthought into a corner or not, but I can't
>figure out if there is a way to help users of a library, delivered as an
>egg, to know and/or maintain dependencies on extras declared in that
>egg. By which I mean that if my library, called X, declares extras 1,
>2, and 3, and the source for X includes all the code that implements the
>features in extras 1, 2, and 3, and the extras document the external
>dependencies component X has to get those extras to work, how does
>someone importing from the API in X know whether their dependency on it
>should be 'X', 'X[1]', X[1,2]', etc. ? After all, all the API methods
>are already there even if they didn't install the extras. So far the
>only mechanisms I can see are (a) a manual one which depends on people
>(everyone using X!) knowing the internals of X such that they can tell
>that if they import symbols a, b, or c, then that means they need extra
>1, etc., and (b) trial and error iteration driven by unit / integration
>tests.
>
>Am I just misusing or misunderstanding extras here?
Note that if you have code that imports from your extras, you can
always include:
pkg_resources.require("X[1]")
right before the imports. Then, instead of an obscure import error,
users will get an obscure DistributionNotFound error that at least
tells them one of the packages they'll need to install. ;-)
More information about the Distutils-SIG
mailing list