Factor out the distribution file-system safe name functions from install_distinfo to allow all metadata consumers access to them.

This commit is contained in:
Jeremy Kloth 2011-09-12 11:12:42 -06:00
parent 4c3124c2b9
commit aa2b442bdc
3 changed files with 16 additions and 36 deletions

View file

@ -63,9 +63,7 @@ class install_distinfo(Command):
metadata = self.distribution.metadata
basename = "%s-%s.dist-info" % (
to_filename(safe_name(metadata['Name'])),
to_filename(safe_version(metadata['Version'])))
basename = metadata.get_fullname(filesafe=True) + ".dist-info"
self.distinfo_dir = os.path.join(self.distinfo_dir, basename)
@ -145,31 +143,3 @@ class install_distinfo(Command):
def get_outputs(self):
return self.outfiles
# The following functions are taken from setuptools' pkg_resources module.
def safe_name(name):
"""Convert an arbitrary string to a standard distribution name
Any runs of non-alphanumeric/. characters are replaced with a single '-'.
"""
return re.sub('[^A-Za-z0-9.]+', '-', name)
def safe_version(version):
"""Convert an arbitrary string to a standard version string
Spaces become dots, and all other non-alphanumeric characters become
dashes, with runs of multiple dashes condensed to a single dash.
"""
version = version.replace(' ', '.')
return re.sub('[^A-Za-z0-9.]+', '-', version)
def to_filename(name):
"""Convert a project or version name to its filename-escaped form
Any '-' characters are currently replaced with '_'.
"""
return name.replace('-', '_')