diff --git a/amqp_codegen.py b/amqp_codegen.py index ebea199..06befa8 100644 --- a/amqp_codegen.py +++ b/amqp_codegen.py @@ -37,7 +37,6 @@ copyright_stmt = '''(* Copyright 2012 Tony Garnock-Jones ' -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'), diff --git a/codegen.py b/codegen.py index 4e545ed..ed34827 100644 --- a/codegen.py +++ b/codegen.py @@ -18,7 +18,10 @@ from __future__ import with_statement import sys -import json +try: + import json +except: + import simplejson as json def mlify(s): s = s.replace('-', '_')