我们在代码库的Makefile中使用pep8目标来检查所有python文件的PEP8兼容性:
## Check all python files for compatibility with PEP8
PEP8FLAGS := --ignore=E201,E202,E241,E265,E501,E711,E712,E713,E714,E721,W391,W291,W293,W601,W603
pep8:
pep8 $(PEP8FLAGS) .我希望有一个类似的pep8-changes目标,它只检查pull请求中更改的Python文件:
DIFF_FILES := (git diff --name-only --diff-filter=ACMR ; \ # ACMR: added/copied/modified/renamed
git diff --staged --name-only --diff-filter=ACMR ; \
git diff --name-only --diff-filter=ACMR upstream/master...) \
| sort | uniq | grep -e "\.py$$" | grep -v '__init__.py'
## Check all diff python files for compatibility with PEP8
pep8-changes:
pep8 $(PEP8FLAGS) --filename $(DIFF_FILES)但我得到以下错误:
pep8 --exclude=sandbox,thirdparty --ignore=E201,E202,E241,E265,E501,E711,E712,E713,E714,E721,W391,W291,W293,W601,W603 --filename (git diff --name-only --diff-filter=ACMR ; \
/bin/sh: -c: line 0: syntax error near unexpected token `('我在pep8 docs中找不到太多的帮助;我不认为--diff标志是我在这里要找的。如有任何帮助,我们不胜感激!
发布于 2017-01-07 04:14:11
好的,明白了。问题似乎是围绕着转义$字符。以下是最终结果:
DIFF_FILES := git diff --name-only --diff-filter=ACMR upstream/master... \
| sort | uniq | grep -e "\.py$$" | grep -v '__init__.py'
pep8-changes:
pep8 $(PEP8FLAGS) `$(DIFF_FILES)`https://stackoverflow.com/questions/41498213
复制相似问题