Change parameter name to "chars" and move encoding outside loop
diff --git a/pre_commit_hooks/trailing_whitespace_fixer.py b/pre_commit_hooks/trailing_whitespace_fixer.py
index b74b753..a21b54f 100644
--- a/pre_commit_hooks/trailing_whitespace_fixer.py
+++ b/pre_commit_hooks/trailing_whitespace_fixer.py
@@ -7,15 +7,11 @@
from typing import Sequence
-def _fix_file(filename, is_markdown, chars_to_strip):
+def _fix_file(filename, is_markdown, chars):
# type: (str, bool, Optional[bytes]) -> bool
with open(filename, mode='rb') as file_processed:
lines = file_processed.readlines()
- newlines = [
- _process_line(line, is_markdown, chars_to_strip)
- for line
- in lines
- ]
+ newlines = [_process_line(line, is_markdown, chars) for line in lines]
if newlines != lines:
with open(filename, mode='wb') as file_processed:
for line in newlines:
@@ -25,7 +21,7 @@
return False
-def _process_line(line, is_markdown, chars_to_strip):
+def _process_line(line, is_markdown, chars):
# type: (bytes, bool, Optional[bytes]) -> bytes
if line[-2:] == b'\r\n':
eol = b'\r\n'
@@ -37,8 +33,8 @@
eol = b''
# preserve trailing two-space for non-blank lines in markdown files
if is_markdown and (not line.isspace()) and line.endswith(b' '):
- return line[:-2].rstrip(chars_to_strip) + b' ' + eol
- return line.rstrip(chars_to_strip) + eol
+ return line[:-2].rstrip(chars) + b' ' + eol
+ return line.rstrip(chars) + eol
def main(argv=None): # type: (Optional[Sequence[str]]) -> int
@@ -60,8 +56,10 @@
)
parser.add_argument(
'--chars',
- help='The set of characters to strip from the end of lines. '
- 'Defaults to all whitespace characters.',
+ help=(
+ 'The set of characters to strip from the end of lines. '
+ 'Defaults to all whitespace characters.'
+ ),
)
parser.add_argument('filenames', nargs='*', help='Filenames to fix')
args = parser.parse_args(argv)
@@ -86,16 +84,12 @@
" (probably filename; use '--markdown-linebreak-ext=EXT')"
.format(ext),
)
-
+ chars = None if args.chars is None else args.chars.encode('utf-8')
return_code = 0
for filename in args.filenames:
_, extension = os.path.splitext(filename.lower())
md = all_markdown or extension in md_exts
- if _fix_file(
- filename,
- md,
- None if args.chars is None else args.chars.encode('utf-8'),
- ):
+ if _fix_file(filename, md, chars):
print('Fixing {}'.format(filename))
return_code = 1
return return_code