From 58750ed9314a7252f8ea4d763c52675d65b5be57 Mon Sep 17 00:00:00 2001
From: gpotter2 <gpotter@potter.fr>
Date: Mon, 20 Mar 2017 20:56:08 +0100
Subject: [PATCH] AutoParser

---
 dev/scripts/autoFixer.py | 65 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)
 create mode 100644 dev/scripts/autoFixer.py

diff --git a/dev/scripts/autoFixer.py b/dev/scripts/autoFixer.py
new file mode 100644
index 00000000..b9d00e49
--- /dev/null
+++ b/dev/scripts/autoFixer.py
@@ -0,0 +1,65 @@
+#! /usr/bin/env python
+
+"Process python files to improve python 3 migration"
+
+import os
+import sys
+import getopt
+# Modified glob version to support **
+import glob2
+import re
+
+def main():
+    tabsize = 8
+    try:
+        opts, args = getopt.getopt(sys.argv[1:], "t:")
+        if not args:
+            raise getopt.error, "At least one file argument required"
+    except getopt.error, msg:
+        print msg
+        print "usage:", sys.argv[0], "files ..."
+        return
+
+    files = []
+    for arg in args:
+        files.extend(glob2.glob(arg))
+    
+    for filename in files:
+        if "autoFixer" in filename or "build" in filename:
+            continue
+        process(filename, tabsize)
+
+# Utils, regexes
+r1_ = r'\"(([^\"\n]|\\\")*(\\x|\\0)([^\"\n]|\\\")*)\"'
+r2_ = r"\'(([^\'\n]|\\\')*(\\x|\\0)([^\'\n]|\\\')*)\'"
+#r3_ = r"(?<![\"'\\])(['\"])\1([^\"'])"
+
+r1_r = r'b"\1"'
+r2_r = r"b'\1'"
+#r3_r = r"b\1\1\2"
+
+def process(filename, tabsize):
+    try:
+        f = open(filename)
+        text = f.read()
+        f.close()
+    except IOError, msg:
+        print "%r: I/O error: %s" % (filename, msg)
+        return
+    # Remove tabs
+    newtext = text.expandtabs(tabsize)
+    # Auto-detect bytes with "\x...", "\0..."
+    newtext = re.sub(r1_, r1_r, newtext)
+    # Auto-detect bytes with '\x...', '\0...'
+    newtext = re.sub(r2_, r2_r, newtext)
+    # Auto-detect bytes with '', "" but not """, '''
+    #newtext = re.sub(r3_, r3_r, newtext)
+    if newtext == text:
+        return
+    f = open(filename, "w")
+    f.write(newtext)
+    f.close()
+    print filename
+
+if __name__ == '__main__':
+    main()
-- 
GitLab