summaryrefslogtreecommitdiff
path: root/rdiff-backup/misc/remove-comments.py
diff options
context:
space:
mode:
Diffstat (limited to 'rdiff-backup/misc/remove-comments.py')
-rw-r--r--rdiff-backup/misc/remove-comments.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/rdiff-backup/misc/remove-comments.py b/rdiff-backup/misc/remove-comments.py
new file mode 100644
index 0000000..e24e3ba
--- /dev/null
+++ b/rdiff-backup/misc/remove-comments.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python
+
+"""remove-comments.py
+
+Given a python program on standard input, spit one out on stdout that
+should work the same, but has blank and comment lines removed.
+
+"""
+
+import sys, re
+
+triple_regex = re.compile('"""')
+
+def eattriple(initial_line_stripped):
+ """Keep reading until end of doc string"""
+ assert initial_line_stripped.startswith('"""')
+ if triple_regex.search(initial_line_stripped[3:]): return
+ while 1:
+ line = sys.stdin.readline()
+ if not line or triple_regex.search(line): break
+
+while 1:
+ line = sys.stdin.readline()
+ if not line: break
+ stripped = line.strip()
+ if not stripped: continue
+ if stripped[0] == "#": continue
+ if stripped.startswith('"""'):
+ eattriple(stripped)
+ continue
+ sys.stdout.write(line)
+