ref: db5208b41f8a505f68ddbccb34dca206df9ca77e
parent: 00a2e4e1192513885f9a6e2e77bb78d2bcb1f53c
author: Bryan Bishop <[email protected]>
date: Sun Jan 27 12:13:18 EST 2013
make gbz80disasm work with python2.6 again There was an incompatible change to the json module api between py26 and py27, causing gbz80disasm to not work with py26. The fix is to simply alias the new loads method to the old read function. A possibly better plan might be to not support py26 at all.
--- a/extras/crystal.py
+++ b/extras/crystal.py
@@ -13,6 +13,7 @@
# for capwords
import string
+# for python2.6
if not hasattr(json, "dumps"):
json.dumps = json.write
--- a/extras/gbz80disasm.py
+++ b/extras/gbz80disasm.py
@@ -4,10 +4,12 @@
import sys
from copy import copy, deepcopy
from ctypes import c_int8
-import json
import random
+import json
-spacing = "\t"
+# New versions of json don't have read anymore.
+if not hasattr(json, "read"):
+ json.read = json.loads
from romstr import RomStr
@@ -19,6 +21,8 @@
file_handler.close()
return rom
+spacing = "\t"
+
temp_opt_table = [
[ "ADC A", 0x8f, 0 ],
[ "ADC B", 0x88, 0 ],
@@ -557,7 +561,7 @@
def load_labels(filename="labels.json"):
global all_labels
if os.path.exists(filename):
- all_labels = json.loads(open(filename, "r").read())
+ all_labels = json.read(open(filename, "r").read())
else:
print "You must run crystal.scan_for_predefined_labels() to create \"labels.json\". Trying..."
import crystal