[Distutils] setuptools in 2.5?
Phillip J. Eby
pje at telecommunity.com
Sun Jan 15 18:34:35 CET 2006
At 10:30 AM 1/15/2006 -0500, Jim Fulton wrote:
>Has a decision been made whether to include setuptools in 2.5?
It hasn't been proposed, and I don't think it's likely. setuptools is
still alpha (although I think it's starting to reach beta quality) and
there are a lot of features left to implement before 1.0.
I do think it's quite possible that quite a lot of setuptools could
reasonably be backported to the distutils, including some of its command
conveniences (aliases, configuration-saving, distribution rotation, etc.),
utility functions (e.g. find_packages), and so on. The parts that are both
stable and not specific to eggs, in other words, as these are less likely
to be controversial. :)
>If it is going to be included, then I'll update doctest to
>use pkg_resources to find doctest text files. If it isn't going to
>be included then I'll have a quandry. :) I guess that in that case,
>I'd have to use some conditional logic.
I'd suggest something like this, which will give you a compatible API and
will work with any zipped packages, not just eggs:
import sys, os
def _get_path_and_loader(package_name, resource_name):
try:
module = sys.modules[moduleName]
except KeyError:
__import__(moduleName)
module = sys.modules[moduleName]
loader = getattr(module, '__loader__', None)
parts = resource_name.split('/')
path = os.path.join(os.path.dirname(module.__file__),*parts)
return path, loader
def resource_string(package_name, resource_name):
path,loader = _get_path_and_loader(package_name, resource_name)
if loader is None:
f = open(path,'rb')
try:
return f.read()
finally:
f.close()
else:
return loader.get_data(path)
try:
from pkg_resources import resource_string
except ImportError:
pass
(Note that if 'resource_name' includes a subdirectory path under the
associated package, it should use '/' as a separator, not the local os.sep
character, as pkg_resources uses distutils-style paths for "resources".)
More information about the Distutils-SIG
mailing list