[OrderedDict([('enum', 'TestEnum'), ('data', ['value1', 'value2'])]), OrderedDict([('type', 'Base'), ('data', OrderedDict([('enum1', 'TestEnum'), ('name', 'str')]))]), OrderedDict([('type', 'Branch1'), ('data', OrderedDict([('name', 'str')]))]), OrderedDict([('type', 'Branch2'), ('data', OrderedDict([('value', 'int')]))]), OrderedDict([('union', 'TestUnion'), ('base', 'Base'), ('discriminator', 'enum1'), ('data', OrderedDict([('value1', 'Branch1'), ('value2', 'Branch2')]))])] [{'enum_name': 'TestEnum', 'enum_values': ['value1', 'value2']}] [OrderedDict([('type', 'Base'), ('data', OrderedDict([('enum1', 'TestEnum'), ('name', 'str')]))]), OrderedDict([('type', 'Branch1'), ('data', OrderedDict([('name', 'str')]))]), OrderedDict([('type', 'Branch2'), ('data', OrderedDict([('value', 'int')]))])]