Merge pull request #373 from leVirve/gh-pages.
internally copybara was leaving extra space in a bad spot while stripping a comment. fixed the internal version to not do this and produce the same output this PR has.
pyguide.html is unmaintained and has been for ~5 years. pyguide.md
is reasonably up to date and we have the ability to keep it up to
date from our internal guide. Link to that instead.
I'd like to delete the old pyguide.html but a lot of things still
point directly at it so they at least have somewhere to land for
the time being.
flake8 testing of https://github.com/google/styleguide on Python 3.6.3
$ __flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics__
```
./cpplint/cpplint.py:1526:12: F821 undefined name 'xrange'
for i in xrange(startpos, len(line)):
^
./cpplint/cpplint.py:1755:15: F821 undefined name 'xrange'
for line in xrange(1, min(len(lines), 11)):
^
./cpplint/cpplint.py:1957:12: F821 undefined name 'xrange'
for i in xrange(1, len(raw_lines) - 1):
^
./cpplint/cpplint.py:2298:14: F821 undefined name 'xrange'
for i in xrange(linenum - 1, self.starting_linenum, -1):
^
./cpplint/cpplint.py:3080:26: F821 undefined name 'xrange'
for start_linenum in xrange(linenum, clean_lines.NumLines()):
^
./cpplint/cpplint.py:3537:14: F821 undefined name 'xrange'
for i in xrange(first_line, last_line + 1, 1):
^
./cpplint/cpplint.py:3601:19: F821 undefined name 'xrange'
for offset in xrange(endlinenum + 1,
^
./cpplint/cpplint.py:4155:14: F821 undefined name 'xrange'
for i in xrange(linenum + 1, end_line):
^
./cpplint/cpplint.py:4283:23: F821 undefined name 'unicode'
if isinstance(line, unicode):
^
./cpplint/cpplint.py:4928:12: F821 undefined name 'xrange'
for i in xrange(linenum, max(-1, linenum - 10), -1):
^
./cpplint/cpplint.py:4949:12: F821 undefined name 'xrange'
for i in xrange(linenum, max(-1, linenum - 10), -1):
^
./cpplint/cpplint.py:4965:12: F821 undefined name 'xrange'
for i in xrange(linenum, 1, -1):
^
./cpplint/cpplint.py:5066:20: F821 undefined name 'xrange'
for i in xrange(startline, linenum + 1):
^
./cpplint/cpplint.py:5090:14: F821 undefined name 'xrange'
for i in xrange(linenum - 1, max(0, linenum - 10), -1):
^
./cpplint/cpplint.py:5121:14: F821 undefined name 'xrange'
for i in xrange(2):
^
./cpplint/cpplint.py:5284:14: F821 undefined name 'xrange'
for i in xrange(linenum - 1, max(0, linenum - 5), -1):
^
./cpplint/cpplint.py:5503:18: F821 undefined name 'xrange'
for linenum in xrange(clean_lines.NumLines()):
^
./cpplint/cpplint.py:5639:21: F821 undefined name 'xrange'
for start_line in xrange(linenum, min(linenum + 3, clean_lines.NumLines())):
^
./cpplint/cpplint.py:5654:12: F821 undefined name 'xrange'
for i in xrange(end_line, min(end_line + 3, clean_lines.NumLines())):
^
./cpplint/cpplint.py:5911:15: F821 undefined name 'xrange'
for line in xrange(clean_lines.NumLines()):
^
```
Example:
cpplint.py --quiet <file-names>
Will now return with an exit code of 0 and return empty output if there
were no errors. This makes it particularly useful to be driven by a build system
such as makefiles or gradle.
In particular, these messages are now suppressed:
Ignoring <filename>, excluded by CPPLINT.cfg, ...
Done processing <filename>
Total errors found: 0
If there were any errors, the above messages are printed nevertheless.
There is no behavior change if --quiet is not passed in.
Also further improve the documentation and testing around --root.
Previously the root=setting in the CFG file was treated identically
to passing --root=setting on the command line, which seems undesirable
since it depends on were cpplint.cfg was invoked from (for relative
paths).
Judging on settings such as 'exclude_files' it seems within the spirit
to make the settings 'current working directory' contextual to the
same directory that CPPLINT.cfg is in.
This also makes execution consistent (picking up the "correct" settings)
regardless of the CWD when executing cpplint.py.
Example:
echo 'root=..' >> /a/b/c/CPPLINT.cfg
cd /
cpplint.py /a/b/c/source_file.h
# expects header guard of C_SOURCE_FILE_H_
However the old behavior would use '/../' = '/'
and incorrectly think the root was 'A_B_C_SOURCE_FILE_H_'.