# -*- coding: utf-8 -*- # To use this script, simply import it your setup.py file, and use the # results of get_git_version() as your package version: # # from version import * # # setup( # version=get_git_version(), # . # . # . # ) __all__ = ["get_git_version"] import os import re from subprocess import Popen, PIPE OWN_DIR = os.path.dirname(os.path.abspath(os.path.realpath(__file__))) def call_git_describe(abbrev=4): try: p = Popen(['git', 'describe', '--abbrev=%d' % abbrev, '--tags', '--dirty'], cwd=OWN_DIR, stdout=PIPE, stderr=PIPE) p.stderr.close() line = p.stdout.readlines()[0] return line.strip() except: return None def get_git_version(abbrev=4): version = call_git_describe(abbrev) if version is None: raise ValueError("Cannot find the version number!") return re.sub('^debian/', '', version) if __name__ == "__main__": print get_git_version()