From 26b512ea1bcc8035f8f5312b2065c85a639c02ae Mon Sep 17 00:00:00 2001
From: Damien George <damien.p.george@gmail.com>
Date: Sat, 30 May 2015 23:11:16 +0100
Subject: [PATCH] py: Get makeqstrdata.py and makeversionhdr.py running under
 Python 2.6.

These scripts should run under as wide a range of Python versions as
possible.
---
 py/makeqstrdata.py   | 21 +++++++--------------
 py/makeversionhdr.py | 16 ++++++++++++++--
 2 files changed, 21 insertions(+), 16 deletions(-)

diff --git a/py/makeqstrdata.py b/py/makeqstrdata.py
index 3abf638e2..6b7df39cb 100644
--- a/py/makeqstrdata.py
+++ b/py/makeqstrdata.py
@@ -1,6 +1,11 @@
+"""
+Process raw qstr file and output qstr data with length, hash and data bytes.
+
+This script works with Python 2.6, 2.7, 3.3 and 3.4.
+"""
+
 from __future__ import print_function
 
-import argparse
 import re
 import sys
 
@@ -97,17 +102,5 @@ def do_work(infiles):
         qlen_str = ('\\x%02x' * cfg_bytes_len) % tuple(((qlen >> (8 * i)) & 0xff) for i in range(cfg_bytes_len))
         print('QDEF(MP_QSTR_%s, (const byte*)"\\x%02x\\x%02x%s" "%s")' % (ident, qhash & 0xff, (qhash >> 8) & 0xff, qlen_str, qdata))
 
-    return True
-
-def main():
-    arg_parser = argparse.ArgumentParser(description='Process raw qstr file and output qstr data with length, hash and data bytes')
-    arg_parser.add_argument('files', nargs='+', help='input file(s)')
-    args = arg_parser.parse_args()
-
-    result = do_work(args.files)
-    if not result:
-        print('exiting with error code', file=sys.stderr)
-        exit(1)
-
 if __name__ == "__main__":
-    main()
+    do_work(sys.argv[1:])
diff --git a/py/makeversionhdr.py b/py/makeversionhdr.py
index f178b7534..708d67df7 100644
--- a/py/makeversionhdr.py
+++ b/py/makeversionhdr.py
@@ -1,4 +1,8 @@
-# This script works with Python 2 and 3
+"""
+Generate header file with macros defining MicroPython version info.
+
+This script works with Python 2.6, 2.7, 3.3 and 3.4.
+"""
 
 from __future__ import print_function
 
@@ -8,6 +12,13 @@ import datetime
 import subprocess
 
 def get_version_info_from_git():
+    # Python 2.6 doesn't have check_output, so check for that
+    try:
+        subprocess.check_output
+        subprocess.check_call
+    except AttributeError:
+        return None
+
     # Note: git describe doesn't work if no tag is available
     try:
         git_tag = subprocess.check_output(["git", "describe", "--dirty", "--always"], universal_newlines=True).strip()
@@ -89,4 +100,5 @@ def make_version_header(filename):
         with open(filename, 'w') as f:
             f.write(file_data)
 
-make_version_header(sys.argv[1])
+if __name__ == "__main__":
+    make_version_header(sys.argv[1])
-- 
GitLab