Skip to content

Instantly share code, notes, and snippets.

@gilsondev
Created May 25, 2012 22:14
Show Gist options
  • Save gilsondev/2790884 to your computer and use it in GitHub Desktop.
Save gilsondev/2790884 to your computer and use it in GitHub Desktop.
Creating version for python package based in the PEP 386 and Django
VERSION = (1, 0, 0, 'alpha', 0)
def get_version(version=None):
"Returns a PEP 386-compliant version number from VERSION."
if version is None:
from address import VERSION as version
else:
assert len(version) == 5
assert version[3] in ('alpha', 'beta', 'rc', 'final')
# Now build the two parts of the version number:
# main = X.Y[.Z]
# sub = .devN - for pre-alpha releases
# | {a|b|c}N - for alpha, beta and rc releases
parts = 2 if version[2] == 0 else 3
main = '.'.join(str(x) for x in version[:parts])
sub = ''
if version[3] == 'alpha' and version[4] == 0:
sub = 'a%d' % (version[4])
elif version[3] != 'final':
mapping = {'alpha': 'a', 'beta': 'b', 'rc': 'c'}
sub = mapping[version[3]] + str(version[4])
return main + sub
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment