diff --git a/AUTHORS b/AUTHORS index 101ed8f7..922c761b 100644 --- a/AUTHORS +++ b/AUTHORS @@ -2,4 +2,5 @@ This is the (likely imcomplete) list of people who have made Wren what it is. If you submit a patch to Wren, please add your name and email address to the end of this list. -Robert Nystrom \ No newline at end of file +Robert Nystrom +Kyle Marek-Spartz diff --git a/script/generate_builtins.py b/script/generate_builtins.py index 16466edb..c2b3ea67 100755 --- a/script/generate_builtins.py +++ b/script/generate_builtins.py @@ -1,4 +1,5 @@ #!/usr/bin/env python + import glob import os.path import re @@ -33,7 +34,7 @@ def copy_builtin(filename): with open("src/wren_" + name + ".c", "w") as f: f.write(c_source) - print name + print(name) for f in glob.iglob("builtin/*.wren"): diff --git a/script/generate_docs.py b/script/generate_docs.py index 580ae10f..81671693 100755 --- a/script/generate_docs.py +++ b/script/generate_docs.py @@ -7,6 +7,7 @@ import shutil import subprocess import sys import time +import re from datetime import datetime def is_up_to_date(path, out_path): @@ -49,7 +50,7 @@ def format_file(path, skip_up_to_date): elif command == "category": category = args else: - print "UNKNOWN COMMAND:", command, args + print(' '.join(["UNKNOWN COMMAND:", command, args])) elif stripped.startswith('#'): # Add anchors to the headers. @@ -57,7 +58,7 @@ def format_file(path, skip_up_to_date): headertype = stripped[:index] header = stripped[index:].strip() anchor = header.lower().replace(' ', '-') - anchor = anchor.translate(None, '.?!:/') + anchor = re.compile('\.|\?|!|:|/').sub('', anchor) contents += indentation + headertype contents += '{1} #\n'.format(anchor, header) @@ -84,7 +85,7 @@ def format_file(path, skip_up_to_date): with open(out_path, 'w') as out: out.write(template.format(**fields)) - print "converted", basename + print("converted " + basename) def check_sass(): @@ -98,7 +99,7 @@ def check_sass(): return subprocess.call(['sass', 'doc/site/style.scss', 'build/docs/style.css']) - print "built css" + print("built css") def format_files(skip_up_to_date): diff --git a/script/metrics.py b/script/metrics.py index 93c3001c..fdbded9a 100755 --- a/script/metrics.py +++ b/script/metrics.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python import glob import fnmatch @@ -64,17 +64,17 @@ for dir_path, dir_names, file_names in os.walk("test"): num_expects += 1 continue -print "source:" -print " files ", num_files -print " semicolons ", num_semicolons -print " TODOs ", num_todos -print " comment lines ", num_docs -print " code lines ", num_code -print " empty lines ", num_empty -print -print "test:" -print " files ", num_test_files -print " TODOs ", num_test_todos -print " expectations ", num_expects -print " non-empty lines", num_test -print " empty lines ", num_test_empty +print("source:") +print(" files " + str(num_files)) +print(" semicolons " + str(num_semicolons)) +print(" TODOs " + str(num_todos)) +print(" comment lines " + str(num_docs)) +print(" code lines " + str(num_code)) +print(" empty lines " + str(num_empty)) +print("\n") +print("test:") +print(" files " + str(num_test_files)) +print(" TODOs " + str(num_test_todos)) +print(" expectations " + str(num_expects)) +print(" non-empty lines " + str(num_test)) +print(" empty lines " + str(num_test_empty)) diff --git a/script/test.py b/script/test.py index ba3a6562..1637a481 100755 --- a/script/test.py +++ b/script/test.py @@ -1,4 +1,6 @@ -#!/usr/bin/python +#!/usr/bin/env python + +from __future__ import print_function from collections import defaultdict from os import listdir @@ -55,11 +57,11 @@ def walk(dir, callback): def print_line(line=None): # Erase the line. - print '\033[2K', + print('\033[2K', end='') # Move the cursor to the beginning. - print '\r', + print('\r', end='') if line: - print line, + print(line, end='') sys.stdout.flush() @@ -134,7 +136,7 @@ def run_test(path): # Invoke wren and run the test. proc = Popen([WREN_APP, path], stdout=PIPE, stderr=PIPE) (out, err) = proc.communicate() - (out, err) = out.replace('\r\n', '\n'), err.replace('\r\n', '\n') + (out, err) = out.decode("utf-8").replace('\r\n', '\n'), err.decode("utf-8").replace('\r\n', '\n') fails = [] @@ -193,6 +195,8 @@ def run_test(path): del out_lines[-1] for line in out_lines: + if sys.version_info < (3, 0): + line = line.encode('utf-8') if expect_index >= len(expect_output): fails.append('Got output "{0}" when none was expected.'.format(line)) elif expect_output[expect_index][0] != line: @@ -214,23 +218,23 @@ def run_test(path): else: failed += 1 print_line(color.RED + 'FAIL' + color.DEFAULT + ': ' + path) - print + print('\n') for fail in fails: - print ' ', color.PINK + fail + color.DEFAULT - print + print(' ' + color.PINK + fail + color.DEFAULT) + print('\n') walk(TEST_DIR, run_test) print_line() if failed == 0: - print 'All ' + color.GREEN + str(passed) + color.DEFAULT + ' tests passed.' + print('All ' + color.GREEN + str(passed) + color.DEFAULT + ' tests passed.') else: - print (color.GREEN + str(passed) + color.DEFAULT + ' tests passed. ' + + print(color.GREEN + str(passed) + color.DEFAULT + ' tests passed. ' + color.RED + str(failed) + color.DEFAULT + ' tests failed.') for key in sorted(skipped.keys()): - print ('Skipped ' + color.YELLOW + str(skipped[key]) + color.DEFAULT + + print('Skipped ' + color.YELLOW + str(skipped[key]) + color.DEFAULT + ' tests: ' + key) if failed != 0: - sys.exit(1) \ No newline at end of file + sys.exit(1)