提交 f2903b1e authored 作者: James Bergstra's avatar James Bergstra

added src_version cache

上级 35a56587
...@@ -52,33 +52,36 @@ def __src_version__(): ...@@ -52,33 +52,36 @@ def __src_version__():
# #
#print 'name:', __name__ if not hasattr(__src_version__, 'rval'):
location = _imp.find_module(__name__)[1] #print 'name:', __name__
#print 'location:', location location = _imp.find_module(__name__)[1]
#print 'location:', location
status = _subprocess.Popen(('hg','st'),cwd=location,stdout=_subprocess.PIPE).communicate()[0]
#status_codes = [line[0] for line in if line and line[0] != '?'] status = _subprocess.Popen(('hg','st'),cwd=location,stdout=_subprocess.PIPE).communicate()[0]
for line in status.split('\n'): #status_codes = [line[0] for line in if line and line[0] != '?']
if not line: continue for line in status.split('\n'):
if line[0] != '?': if not line: continue
raise Exception('Uncommitted modification to "%s" in %s (%s)' if line[0] != '?':
%(line[2:], __name__,location)) raise Exception('Uncommitted modification to "%s" in %s (%s)'
if line[0] == '?' and line[-3:] == '.py': %(line[2:], __name__,location))
raise Exception('Untracked file "%s" in %s (%s)' if line[0] == '?' and line[-3:] == '.py':
%(line[2:], __name__, location)) raise Exception('Untracked file "%s" in %s (%s)'
%(line[2:], __name__, location))
hg_id = _subprocess.Popen(('hg','id'),cwd=location,stdout=_subprocess.PIPE).communicate()[0]
hg_id = _subprocess.Popen(('hg','id'),cwd=location,stdout=_subprocess.PIPE).communicate()[0]
#This asserts my understanding of hg id return values
# There is mention in the doc that it might return two parent hash codes #This asserts my understanding of hg id return values
# but I've never seen it, and I dont' know what it means or how it is # There is mention in the doc that it might return two parent hash codes
# formatted. # but I've never seen it, and I dont' know what it means or how it is
tokens = hg_id.split(' ') # formatted.
assert len(tokens) <= 2 tokens = hg_id.split(' ')
assert len(tokens) >= 1 assert len(tokens) <= 2
assert tokens[0][-1] != '+' # the trailing + indicates uncommitted changes assert len(tokens) >= 1
if len(tokens) == 2: assert tokens[0][-1] != '+' # the trailing + indicates uncommitted changes
assert tokens[1] == 'tip\n' if len(tokens) == 2:
assert tokens[1] == 'tip\n'
return tokens[0]
__src_version__.rval = tokens[0]
return __src_version__.rval
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论