[Distutils] distribute 0.6.10 and convert_2to3_doctests

P.J. Eby pje at telecommunity.com
Fri Apr 23 19:07:06 CEST 2010


At 07:08 PM 1/30/2010 -0500, Barry Warsaw wrote:
>On Jan 29, 2010, at 11:03 PM, Tarek Ziadé wrote:
>
> >Yes, that's how Jinja does already for example, using Setuptools's
> >pkg_resources :
> >
> >__version__ = __import__('pkg_resources').get_distribution('Jinja2').version
>
>And that's different yet again from what PJE suggests.

*shrug* A mere stylistic difference.  My spelling's just a shorter 
way to do the same thing, while at the same time asserting the 
package's requirements.  But there's nothing *wrong* with the above 
way of doing it.

Personally, I think that querying a package's version is generally a 
wrongheaded idea in the first place.  If you need a specific version, 
asserting this via your project's metadata or a require() line in 
your script is the way to go.  If you are querying API existence, 
hasattr() is the way to go.

That kind of leaves working around bugs in a specific version or two 
as the only sensible use case for a version check...  in which case, 
you're still better off just querying the installed version rather 
than asking the package for a __version__.


>   This is screaming for
>a blessed API to be pushed into the stdlib.
>
>(BTW, why use __import__() there?)

To make it a one-liner, I would guess, in the case where you're not 
doing anything else with pkg_resources.



More information about the Distutils-SIG mailing list