import os.pathimport subprocessimport sysimport reindentdef status(message, modal=False, info=None):"""Decorator to output status info to stdout."""def decorated_fxn(fxn):def call_fxn(*args, **kwargs):sys.stdout.write(message + ' ... ')sys.stdout.flush()result = fxn(*args, **kwargs)if not modal and not info:print "done"elif info:print info(result)else:if result:print "yes"else:print "NO"return resultreturn call_fxnreturn decorated_fxn@status("Getting the list of files that have been added/changed",info=lambda x: "%s files" % len(x))def changed_files():"""Run ``svn status`` and return a set of files that have beenchanged/added."""cmd = 'svn status --quiet --non-interactive --ignore-externals'svn_st = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)svn_st.wait()output = [line.strip() for line in svn_st.stdout.readlines()]files = set()for line in output:if not line[0] in ('A', 'M'):continueline_parts = line.split()path = line_parts[-1]if os.path.isfile(path):files.add(path)return files@status("Fixing whitespace", info=lambda x: "%s files" % x)def normalize_whitespace(file_paths):"""Make sure that the whitespace for .py files have been normalized."""reindent.makebackup = False # No need to create backups.result = map(reindent.check, (x for x in file_paths if x.endswith('.py')))return sum(result)@status("Docs modified", modal=True)def docs_modified(file_paths):"""Report if any files in the Docs directory."""for path in file_paths:if path.startswith("Doc"):return Truereturn False@status("Misc/ACKS updated", modal=True)def credit_given(file_paths):"""Check if Misc/ACKS has been changed."""return 'Misc/ACKS' in file_paths@status("Misc/NEWS updated", modal=True)def reported_news(file_paths):"""Check if Misc/NEWS has been changed."""return 'Misc/NEWS' in file_pathsdef main():file_paths = changed_files()# PEP 7/8 verification.normalize_whitespace(file_paths)# Docs updated.docs_modified(file_paths)# Misc/ACKS changed.credit_given(file_paths)# Misc/NEWS changed.reported_news(file_paths)# Test suite run and passed.print "Did you run the test suite?"if __name__ == '__main__':main()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。