Source code for pymchelper.version

import os
import subprocess


[docs]def git_version(): """ Inspired by https://github.com/numpy/numpy/blob/master/setup.py :return: the git revision as a string """ def _minimal_ext_cmd(cmd): # construct minimal environment env = {} for k in ['SYSTEMROOT', 'PATH', 'HOME']: v = os.environ.get(k) if v is not None: env[k] = v # LANGUAGE is used on win32 env['LANGUAGE'] = 'C' env['LANG'] = 'C' env['LC_ALL'] = 'C' result = subprocess.Popen(cmd, stdout=subprocess.PIPE, env=env).communicate()[0] return result try: out = _minimal_ext_cmd(['git', 'describe', '--tags', '--long']) GIT_REVISION = out.strip().decode('ascii') if GIT_REVISION: no_of_commits_since_last_tag = int(GIT_REVISION.split('-')[1]) tag_name = GIT_REVISION.split('-')[0][1:] if no_of_commits_since_last_tag == 0: version = tag_name else: version = '{}+rev{}'.format(tag_name, no_of_commits_since_last_tag) else: version = "Unknown" except OSError: version = "Unknown" return version