+def get_non_digit_prefix(val):
+ return re.match('[^0-9]*', val).group(0)
+
+class GitCommand:
+ def __getattr__(self, name):
+ def call(*args, suppress_stderr = False, split = True):
+ cmd = ["git", name.replace('_', '-')] + list(args)
+ with subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE if suppress_stderr else None) as p:
+ (stdout, stderr) = p.communicate()
+ if p.returncode != 0:
+ raise Exception("Running %s returned non-zero exit code %d" % (str(cmd), p.returncode))
+ stdout = stdout.decode('utf-8').strip('\n')
+ return stdout.split('\n') if split else stdout
+ return call
+git = GitCommand()
+