Python 2.5 support: avoid namedtuple, using simplejson if json doesn't exist

This commit is contained in:
Tony Garnock-Jones 2012-03-06 21:35:49 -05:00
parent b69a89b574
commit 5fdbe25295
2 changed files with 29 additions and 15 deletions

View File

@ -5,7 +5,6 @@ copyright_stmt = '(* Copyright (C) 2012 Tony Garnock-Jones. All rights reserved.
import sys
import xml.dom.minidom
from collections import namedtuple
###########################################################################
# XML utils
@ -82,27 +81,39 @@ class DatalikeMixin:
def match_clause(self):
return ' | ' + self.pattern() + ' ->'
class Class(DatalikeMixin,
namedtuple('Class', 'index name fields methods'.split())):
class Class(DatalikeMixin):
def __init__(self, index, name, fields, methods):
self.index = index
self.name = name
self.fields = fields
self.methods = methods
@property
def full_name(self):
return self.name + '-properties'
class Method(DatalikeMixin,
namedtuple('Method', ['class_name',
'class_index',
'has_content',
'deprecated',
'index',
'name',
'synchronous',
'responses',
'fields'])):
class Method(DatalikeMixin):
def __init__(self, class_name, class_index, has_content, deprecated,
index, name, synchronous, responses, fields):
self.class_name = class_name
self.class_index = class_index
self.has_content = has_content
self.deprecated = deprecated
self.index = index
self.name = name
self.synchronous = synchronous
self.responses = responses
self.fields = fields
@property
def full_name(self):
return self.class_name + '-' + self.name
Field = namedtuple('Field', 'name type reserved'.split())
class Field:
def __init__(self, name, type, reserved):
self.name = name
self.type = type
self.reserved = reserved
def load_fields(e):
return [Field(attr(f, 'name'),

View File

@ -4,7 +4,10 @@ from __future__ import with_statement
copyright_stmt = '(* Copyright (C) 2012 Tony Garnock-Jones. All rights reserved. *)'
import sys
import json
try:
import json
except:
import simplejson as json
def mlify(s):
s = s.replace('-', '_')