Split reading of versioninfo out into a method

Make the read_versioninfo to match write_versioninfo.

Additionally, there is an edge case where if the code is installed from a
github zipball, versioning info is missing. Now that we're using this,
there should be virtual no instances where a zipball will be easier or
less cost than an sdist created tarball, all of which should be public and
accessible, but during the transition, we need to account for the codepath.

Change-Id: Icd3fe97c6341bb04da27adc55a85f1ab6b525c46
This commit is contained in:
Monty Taylor
2012-06-26 13:58:07 -05:00
parent 993a7b7dd6
commit 089d509f35
+17 -4
View File
@@ -205,6 +205,20 @@ _rst_template = """%(heading)s
"""
def read_versioninfo(project):
"""Read the versioninfo file. If it doesn't exist, we're in a github
zipball, and there's really know way to know what version we really
are, but that should be ok, because the utility of that should be
just about nil if this code path is in use in the first place."""
versioninfo_path = os.path.join(project, 'versioninfo')
if os.path.exists(versioninfo_path):
with open(versioninfo_path, 'r') as vinfo:
version = vinfo.read().strip()
else:
version = "0.0.0"
return version
def write_versioninfo(project, version):
"""Write a simple file containing the version of the package."""
open(os.path.join(project, 'versioninfo'), 'w').write("%s\n" % version)
@@ -312,9 +326,8 @@ def get_pre_version(projectname, base_version):
write_versioninfo(projectname, version)
return version.split('~')[0]
else:
with open(os.path.join(projectname, 'versioninfo'), 'r') as vinfo:
full_version = vinfo.read().strip()
return full_version.split('~')[0]
version = read_versioninfo(projectname)
return version.split('~')[0]
def get_post_version(projectname):
@@ -326,4 +339,4 @@ def get_post_version(projectname):
version = _get_git_post_version()
write_versioninfo(projectname, version)
return version
return open(os.path.join(projectname, 'versioninfo'), 'r').read().strip()
return read_versioninfo(projectname)