Commit e9bdeda0 authored by Jason R. Coombs's avatar Jason R. Coombs

Extract name/version functionality from egg_info to be re-used by a dist-info command. Ref #1386.

parent 89155abb
...@@ -116,7 +116,33 @@ def translate_pattern(glob): ...@@ -116,7 +116,33 @@ def translate_pattern(glob):
return re.compile(pat, flags=re.MULTILINE|re.DOTALL) return re.compile(pat, flags=re.MULTILINE|re.DOTALL)
class egg_info(Command): class InfoCommon:
tag_build = None
tag_date = None
@property
def name(self):
return safe_name(self.distribution.get_name())
def tagged_version(self):
version = self.distribution.get_version()
# egg_info may be called more than once for a distribution,
# in which case the version string already contains all tags.
if self.vtags and version.endswith(self.vtags):
return safe_version(version)
return safe_version(version + self.vtags)
def tags(self):
version = ''
if self.tag_build:
version += self.tag_build
if self.tag_date:
version += time.strftime("-%Y%m%d")
return version
vtags = property(tags)
class egg_info(InfoCommon, Command):
description = "create a distribution's .egg-info directory" description = "create a distribution's .egg-info directory"
user_options = [ user_options = [
...@@ -133,14 +159,9 @@ class egg_info(Command): ...@@ -133,14 +159,9 @@ class egg_info(Command):
} }
def initialize_options(self): def initialize_options(self):
self.egg_name = None
self.egg_version = None
self.egg_base = None self.egg_base = None
self.egg_info = None self.egg_info = None
self.tag_build = None
self.tag_date = 0
self.broken_egg_info = False self.broken_egg_info = False
self.vtags = None
#################################### ####################################
# allow the 'tag_svn_revision' to be detected and # allow the 'tag_svn_revision' to be detected and
...@@ -167,11 +188,15 @@ class egg_info(Command): ...@@ -167,11 +188,15 @@ class egg_info(Command):
egg_info['tag_date'] = 0 egg_info['tag_date'] = 0
edit_config(filename, dict(egg_info=egg_info)) edit_config(filename, dict(egg_info=egg_info))
def finalize_options(self): @property
self.egg_name = safe_name(self.distribution.get_name()) def egg_name(self):
self.vtags = self.tags() return self.name
self.egg_version = self.tagged_version()
@property
def egg_version(self):
return self.tagged_version()
def finalize_options(self):
parsed_version = parse_version(self.egg_version) parsed_version = parse_version(self.egg_version)
try: try:
...@@ -254,14 +279,6 @@ class egg_info(Command): ...@@ -254,14 +279,6 @@ class egg_info(Command):
if not self.dry_run: if not self.dry_run:
os.unlink(filename) os.unlink(filename)
def tagged_version(self):
version = self.distribution.get_version()
# egg_info may be called more than once for a distribution,
# in which case the version string already contains all tags.
if self.vtags and version.endswith(self.vtags):
return safe_version(version)
return safe_version(version + self.vtags)
def run(self): def run(self):
self.mkpath(self.egg_info) self.mkpath(self.egg_info)
installer = self.distribution.fetch_build_egg installer = self.distribution.fetch_build_egg
...@@ -277,14 +294,6 @@ class egg_info(Command): ...@@ -277,14 +294,6 @@ class egg_info(Command):
self.find_sources() self.find_sources()
def tags(self):
version = ''
if self.tag_build:
version += self.tag_build
if self.tag_date:
version += time.strftime("-%Y%m%d")
return version
def find_sources(self): def find_sources(self):
"""Generate SOURCES.txt manifest file""" """Generate SOURCES.txt manifest file"""
manifest_filename = os.path.join(self.egg_info, "SOURCES.txt") manifest_filename = os.path.join(self.egg_info, "SOURCES.txt")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment