forked from Akuli/python-tutorial
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstrip.py
More file actions
executable file
·69 lines (52 loc) · 2.16 KB
/
strip.py
File metadata and controls
executable file
·69 lines (52 loc) · 2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/usr/bin/env python3
# This is free and unencumbered software released into the public
# domain.
# Anyone is free to copy, modify, publish, use, compile, sell, or
# distribute this software, either in source code form or as a
# compiled binary, for any purpose, commercial or non-commercial, and
# by any means.
# In jurisdictions that recognize copyright laws, the author or
# authors of this software dedicate any and all copyright interest in
# the software to the public domain. We make this dedication for the
# benefit of the public at large and to the detriment of our heirs
# and successors. We intend this dedication to be an overt act of
# relinquishment in perpetuity of all present and future rights to
# this software under copyright law.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
# CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# For more information, please refer to <http://unlicense.org>
"""Strip trailing whitespace from markdown files."""
import common
def fix(line):
return line.rstrip().expandtabs(4)
def needs_stripping(file):
with common.slashfix_open(file, 'r') as f:
for line in f:
line = line.rstrip('\n')
if line != fix(line):
return True
return False
def strip(file):
real_file = common.slashfix(file)
lines = []
with open(real_file, 'r') as f:
for line in f:
lines.append(fix(line.rstrip('\n')))
with common.backup(real_file):
with open(real_file, 'w') as f:
for line in lines:
print(line, file=f)
def main():
for file in common.get_markdown_files():
if needs_stripping(file):
print("Stripping", file, "...")
strip(file)
else:
print("No trailing whitespace or tabs in", file)
if __name__ == '__main__':
main()