"""Support for simplified access to data on nodes of type omni.graph.test.TestAllDataTypesPy

This node is meant to exercise data access for all available data types, including all legal combinations of tuples, arrays,
and bundle members. The test section here is intentionally omitted so that the regression test script can programmatically
generate tests for all known types, reducing the change of unintentional omissions. This node definition is a duplicate of
OgnTestAllDataTypes.ogn, except the implementation language is Python.
"""

import carb
import numpy
import sys
import traceback
import usdrt

import carb
import omni.graph.core as og
import omni.graph.core._omni_graph_core as _og
import omni.graph.tools.ogn as ogn



class OgnTestAllDataTypesPyDatabase(og.Database):
    """Helper class providing simplified access to data on nodes of type omni.graph.test.TestAllDataTypesPy

    Class Members:
        node: Node being evaluated

    Attribute Value Properties:
        Inputs:
            inputs.a_bool
            inputs.a_bool_array
            inputs.a_bundle
            inputs.a_colord_3
            inputs.a_colord_3_array
            inputs.a_colord_4
            inputs.a_colord_4_array
            inputs.a_colorf_3
            inputs.a_colorf_3_array
            inputs.a_colorf_4
            inputs.a_colorf_4_array
            inputs.a_colorh_3
            inputs.a_colorh_3_array
            inputs.a_colorh_4
            inputs.a_colorh_4_array
            inputs.a_double
            inputs.a_double_2
            inputs.a_double_2_array
            inputs.a_double_3
            inputs.a_double_3_array
            inputs.a_double_4
            inputs.a_double_4_array
            inputs.a_double_array
            inputs.a_execution
            inputs.a_float
            inputs.a_float_2
            inputs.a_float_2_array
            inputs.a_float_3
            inputs.a_float_3_array
            inputs.a_float_4
            inputs.a_float_4_array
            inputs.a_float_array
            inputs.a_frame_4
            inputs.a_frame_4_array
            inputs.a_half
            inputs.a_half_2
            inputs.a_half_2_array
            inputs.a_half_3
            inputs.a_half_3_array
            inputs.a_half_4
            inputs.a_half_4_array
            inputs.a_half_array
            inputs.a_int
            inputs.a_int64
            inputs.a_int64_array
            inputs.a_int_2
            inputs.a_int_2_array
            inputs.a_int_3
            inputs.a_int_3_array
            inputs.a_int_4
            inputs.a_int_4_array
            inputs.a_int_array
            inputs.a_matrixd_2
            inputs.a_matrixd_2_array
            inputs.a_matrixd_3
            inputs.a_matrixd_3_array
            inputs.a_matrixd_4
            inputs.a_matrixd_4_array
            inputs.a_normald_3
            inputs.a_normald_3_array
            inputs.a_normalf_3
            inputs.a_normalf_3_array
            inputs.a_normalh_3
            inputs.a_normalh_3_array
            inputs.a_objectId
            inputs.a_objectId_array
            inputs.a_path
            inputs.a_pointd_3
            inputs.a_pointd_3_array
            inputs.a_pointf_3
            inputs.a_pointf_3_array
            inputs.a_pointh_3
            inputs.a_pointh_3_array
            inputs.a_quatd_4
            inputs.a_quatd_4_array
            inputs.a_quatf_4
            inputs.a_quatf_4_array
            inputs.a_quath_4
            inputs.a_quath_4_array
            inputs.a_string
            inputs.a_target
            inputs.a_texcoordd_2
            inputs.a_texcoordd_2_array
            inputs.a_texcoordd_3
            inputs.a_texcoordd_3_array
            inputs.a_texcoordf_2
            inputs.a_texcoordf_2_array
            inputs.a_texcoordf_3
            inputs.a_texcoordf_3_array
            inputs.a_texcoordh_2
            inputs.a_texcoordh_2_array
            inputs.a_texcoordh_3
            inputs.a_texcoordh_3_array
            inputs.a_timecode
            inputs.a_timecode_array
            inputs.a_token
            inputs.a_token_array
            inputs.a_uchar
            inputs.a_uchar_array
            inputs.a_uint
            inputs.a_uint64
            inputs.a_uint64_array
            inputs.a_uint_array
            inputs.a_vectord_3
            inputs.a_vectord_3_array
            inputs.a_vectorf_3
            inputs.a_vectorf_3_array
            inputs.a_vectorh_3
            inputs.a_vectorh_3_array
            inputs.doNotCompute
        Outputs:
            outputs.a_bool
            outputs.a_bool_array
            outputs.a_bundle
            outputs.a_colord_3
            outputs.a_colord_3_array
            outputs.a_colord_4
            outputs.a_colord_4_array
            outputs.a_colorf_3
            outputs.a_colorf_3_array
            outputs.a_colorf_4
            outputs.a_colorf_4_array
            outputs.a_colorh_3
            outputs.a_colorh_3_array
            outputs.a_colorh_4
            outputs.a_colorh_4_array
            outputs.a_double
            outputs.a_double_2
            outputs.a_double_2_array
            outputs.a_double_3
            outputs.a_double_3_array
            outputs.a_double_4
            outputs.a_double_4_array
            outputs.a_double_array
            outputs.a_execution
            outputs.a_float
            outputs.a_float_2
            outputs.a_float_2_array
            outputs.a_float_3
            outputs.a_float_3_array
            outputs.a_float_4
            outputs.a_float_4_array
            outputs.a_float_array
            outputs.a_frame_4
            outputs.a_frame_4_array
            outputs.a_half
            outputs.a_half_2
            outputs.a_half_2_array
            outputs.a_half_3
            outputs.a_half_3_array
            outputs.a_half_4
            outputs.a_half_4_array
            outputs.a_half_array
            outputs.a_int
            outputs.a_int64
            outputs.a_int64_array
            outputs.a_int_2
            outputs.a_int_2_array
            outputs.a_int_3
            outputs.a_int_3_array
            outputs.a_int_4
            outputs.a_int_4_array
            outputs.a_int_array
            outputs.a_matrixd_2
            outputs.a_matrixd_2_array
            outputs.a_matrixd_3
            outputs.a_matrixd_3_array
            outputs.a_matrixd_4
            outputs.a_matrixd_4_array
            outputs.a_normald_3
            outputs.a_normald_3_array
            outputs.a_normalf_3
            outputs.a_normalf_3_array
            outputs.a_normalh_3
            outputs.a_normalh_3_array
            outputs.a_objectId
            outputs.a_objectId_array
            outputs.a_path
            outputs.a_pointd_3
            outputs.a_pointd_3_array
            outputs.a_pointf_3
            outputs.a_pointf_3_array
            outputs.a_pointh_3
            outputs.a_pointh_3_array
            outputs.a_quatd_4
            outputs.a_quatd_4_array
            outputs.a_quatf_4
            outputs.a_quatf_4_array
            outputs.a_quath_4
            outputs.a_quath_4_array
            outputs.a_string
            outputs.a_target
            outputs.a_texcoordd_2
            outputs.a_texcoordd_2_array
            outputs.a_texcoordd_3
            outputs.a_texcoordd_3_array
            outputs.a_texcoordf_2
            outputs.a_texcoordf_2_array
            outputs.a_texcoordf_3
            outputs.a_texcoordf_3_array
            outputs.a_texcoordh_2
            outputs.a_texcoordh_2_array
            outputs.a_texcoordh_3
            outputs.a_texcoordh_3_array
            outputs.a_timecode
            outputs.a_timecode_array
            outputs.a_token
            outputs.a_token_array
            outputs.a_uchar
            outputs.a_uchar_array
            outputs.a_uint
            outputs.a_uint64
            outputs.a_uint64_array
            outputs.a_uint_array
            outputs.a_vectord_3
            outputs.a_vectord_3_array
            outputs.a_vectorf_3
            outputs.a_vectorf_3_array
            outputs.a_vectorh_3
            outputs.a_vectorh_3_array
        State:
            state.a_bool
            state.a_bool_array
            state.a_bundle
            state.a_colord_3
            state.a_colord_3_array
            state.a_colord_4
            state.a_colord_4_array
            state.a_colorf_3
            state.a_colorf_3_array
            state.a_colorf_4
            state.a_colorf_4_array
            state.a_colorh_3
            state.a_colorh_3_array
            state.a_colorh_4
            state.a_colorh_4_array
            state.a_double
            state.a_double_2
            state.a_double_2_array
            state.a_double_3
            state.a_double_3_array
            state.a_double_4
            state.a_double_4_array
            state.a_double_array
            state.a_execution
            state.a_firstEvaluation
            state.a_float
            state.a_float_2
            state.a_float_2_array
            state.a_float_3
            state.a_float_3_array
            state.a_float_4
            state.a_float_4_array
            state.a_float_array
            state.a_frame_4
            state.a_frame_4_array
            state.a_half
            state.a_half_2
            state.a_half_2_array
            state.a_half_3
            state.a_half_3_array
            state.a_half_4
            state.a_half_4_array
            state.a_half_array
            state.a_int
            state.a_int64
            state.a_int64_array
            state.a_int_2
            state.a_int_2_array
            state.a_int_3
            state.a_int_3_array
            state.a_int_4
            state.a_int_4_array
            state.a_int_array
            state.a_matrixd_2
            state.a_matrixd_2_array
            state.a_matrixd_3
            state.a_matrixd_3_array
            state.a_matrixd_4
            state.a_matrixd_4_array
            state.a_normald_3
            state.a_normald_3_array
            state.a_normalf_3
            state.a_normalf_3_array
            state.a_normalh_3
            state.a_normalh_3_array
            state.a_objectId
            state.a_objectId_array
            state.a_path
            state.a_pointd_3
            state.a_pointd_3_array
            state.a_pointf_3
            state.a_pointf_3_array
            state.a_pointh_3
            state.a_pointh_3_array
            state.a_quatd_4
            state.a_quatd_4_array
            state.a_quatf_4
            state.a_quatf_4_array
            state.a_quath_4
            state.a_quath_4_array
            state.a_string
            state.a_stringEmpty
            state.a_target
            state.a_texcoordd_2
            state.a_texcoordd_2_array
            state.a_texcoordd_3
            state.a_texcoordd_3_array
            state.a_texcoordf_2
            state.a_texcoordf_2_array
            state.a_texcoordf_3
            state.a_texcoordf_3_array
            state.a_texcoordh_2
            state.a_texcoordh_2_array
            state.a_texcoordh_3
            state.a_texcoordh_3_array
            state.a_timecode
            state.a_timecode_array
            state.a_token
            state.a_token_array
            state.a_uchar
            state.a_uchar_array
            state.a_uint
            state.a_uint64
            state.a_uint64_array
            state.a_uint_array
            state.a_vectord_3
            state.a_vectord_3_array
            state.a_vectorf_3
            state.a_vectorf_3_array
            state.a_vectorh_3
            state.a_vectorh_3_array
    """

    # Imprint the generator and target ABI versions in the file for JIT generation
    GENERATOR_VERSION = (1, 41, 3)
    TARGET_VERSION = (2, 139, 12)

    # This is an internal object that provides per-class storage of a per-node data dictionary
    PER_NODE_DATA = {}

    # This is an internal object that describes unchanging attributes in a generic way
    # The values in this list are in no particular order, as a per-attribute tuple
    #     Name, Type, ExtendedTypeIndex, UiName, Description, Metadata,
    #     Is_Required, DefaultValue, Is_Deprecated, DeprecationMsg
    # You should not need to access any of this data directly, use the defined database interfaces
    INTERFACE = og.Database._get_interface([
        ('inputs:a_bool', 'bool', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: 'false'}, True, False, False, ''),
        ('inputs:a_bool_array', 'bool[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[false, true]'}, True, [False, True], False, ''),
        ('inputs:a_bundle', 'bundle', 0, None, 'Input Attribute', {}, False, None, False, ''),
        ('inputs:a_colord_3', 'color3d', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0]'}, True, [1.0, 2.0, 3.0], False, ''),
        ('inputs:a_colord_3_array', 'color3d[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]]'}, True, [[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], False, ''),
        ('inputs:a_colord_4', 'color4d', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0, 4.0]'}, True, [1.0, 2.0, 3.0, 4.0], False, ''),
        ('inputs:a_colord_4_array', 'color4d[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0, 4.0], [11.0, 12.0, 13.0, 14.0]]'}, True, [[1.0, 2.0, 3.0, 4.0], [11.0, 12.0, 13.0, 14.0]], False, ''),
        ('inputs:a_colorf_3', 'color3f', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0]'}, True, [1.0, 2.0, 3.0], False, ''),
        ('inputs:a_colorf_3_array', 'color3f[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]]'}, True, [[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], False, ''),
        ('inputs:a_colorf_4', 'color4f', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0, 4.0]'}, True, [1.0, 2.0, 3.0, 4.0], False, ''),
        ('inputs:a_colorf_4_array', 'color4f[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0, 4.0], [11.0, 12.0, 13.0, 14.0]]'}, True, [[1.0, 2.0, 3.0, 4.0], [11.0, 12.0, 13.0, 14.0]], False, ''),
        ('inputs:a_colorh_3', 'color3h', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0]'}, True, [1.0, 2.0, 3.0], False, ''),
        ('inputs:a_colorh_3_array', 'color3h[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]]'}, True, [[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], False, ''),
        ('inputs:a_colorh_4', 'color4h', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0, 4.0]'}, True, [1.0, 2.0, 3.0, 4.0], False, ''),
        ('inputs:a_colorh_4_array', 'color4h[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0, 4.0], [11.0, 12.0, 13.0, 14.0]]'}, True, [[1.0, 2.0, 3.0, 4.0], [11.0, 12.0, 13.0, 14.0]], False, ''),
        ('inputs:a_double', 'double', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '1.0'}, True, 1.0, False, ''),
        ('inputs:a_double_2', 'double2', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0]'}, True, [1.0, 2.0], False, ''),
        ('inputs:a_double_2_array', 'double2[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0], [11.0, 12.0]]'}, True, [[1.0, 2.0], [11.0, 12.0]], False, ''),
        ('inputs:a_double_3', 'double3', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0]'}, True, [1.0, 2.0, 3.0], False, ''),
        ('inputs:a_double_3_array', 'double3[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]]'}, True, [[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], False, ''),
        ('inputs:a_double_4', 'double4', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0, 4.0]'}, True, [1.0, 2.0, 3.0, 4.0], False, ''),
        ('inputs:a_double_4_array', 'double4[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0, 4.0], [11.0, 12.0, 13.0, 14.0]]'}, True, [[1.0, 2.0, 3.0, 4.0], [11.0, 12.0, 13.0, 14.0]], False, ''),
        ('inputs:a_double_array', 'double[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0]'}, True, [1.0, 2.0], False, ''),
        ('inputs:a_execution', 'execution', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '1'}, True, 1, False, ''),
        ('inputs:a_float', 'float', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '1.0'}, True, 1.0, False, ''),
        ('inputs:a_float_2', 'float2', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0]'}, True, [1.0, 2.0], False, ''),
        ('inputs:a_float_2_array', 'float2[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0], [11.0, 12.0]]'}, True, [[1.0, 2.0], [11.0, 12.0]], False, ''),
        ('inputs:a_float_3', 'float3', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0]'}, True, [1.0, 2.0, 3.0], False, ''),
        ('inputs:a_float_3_array', 'float3[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]]'}, True, [[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], False, ''),
        ('inputs:a_float_4', 'float4', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0, 4.0]'}, True, [1.0, 2.0, 3.0, 4.0], False, ''),
        ('inputs:a_float_4_array', 'float4[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0, 4.0], [11.0, 12.0, 13.0, 14.0]]'}, True, [[1.0, 2.0, 3.0, 4.0], [11.0, 12.0, 13.0, 14.0]], False, ''),
        ('inputs:a_float_array', 'float[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0]'}, True, [1.0, 2.0], False, ''),
        ('inputs:a_frame_4', 'frame4d', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0, 4.0], [5.0, 6.0, 7.0, 8.0], [9.0, 10.0, 11.0, 12.0], [13.0, 14.0, 15.0, 16.0]]'}, True, [[1.0, 2.0, 3.0, 4.0], [5.0, 6.0, 7.0, 8.0], [9.0, 10.0, 11.0, 12.0], [13.0, 14.0, 15.0, 16.0]], False, ''),
        ('inputs:a_frame_4_array', 'frame4d[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[[1.0, 2.0, 3.0, 4.0], [5.0, 6.0, 7.0, 8.0], [9.0, 10.0, 11.0, 12.0], [13.0, 14.0, 15.0, 16.0]], [[11.0, 12.0, 13.0, 14.0], [15.0, 16.0, 17.0, 18.0], [19.0, 20.0, 21.0, 22.0], [23.0, 24.0, 25.0, 26.0]]]'}, True, [[[1.0, 2.0, 3.0, 4.0], [5.0, 6.0, 7.0, 8.0], [9.0, 10.0, 11.0, 12.0], [13.0, 14.0, 15.0, 16.0]], [[11.0, 12.0, 13.0, 14.0], [15.0, 16.0, 17.0, 18.0], [19.0, 20.0, 21.0, 22.0], [23.0, 24.0, 25.0, 26.0]]], False, ''),
        ('inputs:a_half', 'half', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '1.0'}, True, 1.0, False, ''),
        ('inputs:a_half_2', 'half2', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0]'}, True, [1.0, 2.0], False, ''),
        ('inputs:a_half_2_array', 'half2[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0], [11.0, 12.0]]'}, True, [[1.0, 2.0], [11.0, 12.0]], False, ''),
        ('inputs:a_half_3', 'half3', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0]'}, True, [1.0, 2.0, 3.0], False, ''),
        ('inputs:a_half_3_array', 'half3[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]]'}, True, [[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], False, ''),
        ('inputs:a_half_4', 'half4', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0, 4.0]'}, True, [1.0, 2.0, 3.0, 4.0], False, ''),
        ('inputs:a_half_4_array', 'half4[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0, 4.0], [11.0, 12.0, 13.0, 14.0]]'}, True, [[1.0, 2.0, 3.0, 4.0], [11.0, 12.0, 13.0, 14.0]], False, ''),
        ('inputs:a_half_array', 'half[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0]'}, True, [1.0, 2.0], False, ''),
        ('inputs:a_int', 'int', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '1'}, True, 1, False, ''),
        ('inputs:a_int64', 'int64', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '12345'}, True, 12345, False, ''),
        ('inputs:a_int64_array', 'int64[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[12345, 23456]'}, True, [12345, 23456], False, ''),
        ('inputs:a_int_2', 'int2', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1, 2]'}, True, [1, 2], False, ''),
        ('inputs:a_int_2_array', 'int2[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1, 2], [3, 4]]'}, True, [[1, 2], [3, 4]], False, ''),
        ('inputs:a_int_3', 'int3', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1, 2, 3]'}, True, [1, 2, 3], False, ''),
        ('inputs:a_int_3_array', 'int3[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1, 2, 3], [4, 5, 6]]'}, True, [[1, 2, 3], [4, 5, 6]], False, ''),
        ('inputs:a_int_4', 'int4', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1, 2, 3, 4]'}, True, [1, 2, 3, 4], False, ''),
        ('inputs:a_int_4_array', 'int4[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1, 2, 3, 4], [5, 6, 7, 8]]'}, True, [[1, 2, 3, 4], [5, 6, 7, 8]], False, ''),
        ('inputs:a_int_array', 'int[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1, 2]'}, True, [1, 2], False, ''),
        ('inputs:a_matrixd_2', 'matrix2d', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0], [3.0, 4.0]]'}, True, [[1.0, 2.0], [3.0, 4.0]], False, ''),
        ('inputs:a_matrixd_2_array', 'matrix2d[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[[1.0, 2.0], [3.0, 4.0]], [[11.0, 12.0], [13.0, 14.0]]]'}, True, [[[1.0, 2.0], [3.0, 4.0]], [[11.0, 12.0], [13.0, 14.0]]], False, ''),
        ('inputs:a_matrixd_3', 'matrix3d', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]]'}, True, [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]], False, ''),
        ('inputs:a_matrixd_3_array', 'matrix3d[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]], [[11.0, 12.0, 13.0], [14.0, 15.0, 16.0], [17.0, 18.0, 19.0]]]'}, True, [[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]], [[11.0, 12.0, 13.0], [14.0, 15.0, 16.0], [17.0, 18.0, 19.0]]], False, ''),
        ('inputs:a_matrixd_4', 'matrix4d', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0, 4.0], [5.0, 6.0, 7.0, 8.0], [9.0, 10.0, 11.0, 12.0], [13.0, 14.0, 15.0, 16.0]]'}, True, [[1.0, 2.0, 3.0, 4.0], [5.0, 6.0, 7.0, 8.0], [9.0, 10.0, 11.0, 12.0], [13.0, 14.0, 15.0, 16.0]], False, ''),
        ('inputs:a_matrixd_4_array', 'matrix4d[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[[1.0, 2.0, 3.0, 4.0], [5.0, 6.0, 7.0, 8.0], [9.0, 10.0, 11.0, 12.0], [13.0, 14.0, 15.0, 16.0]], [[11.0, 12.0, 13.0, 14.0], [15.0, 16.0, 17.0, 18.0], [19.0, 20.0, 21.0, 22.0], [23.0, 24.0, 25.0, 26.0]]]'}, True, [[[1.0, 2.0, 3.0, 4.0], [5.0, 6.0, 7.0, 8.0], [9.0, 10.0, 11.0, 12.0], [13.0, 14.0, 15.0, 16.0]], [[11.0, 12.0, 13.0, 14.0], [15.0, 16.0, 17.0, 18.0], [19.0, 20.0, 21.0, 22.0], [23.0, 24.0, 25.0, 26.0]]], False, ''),
        ('inputs:a_normald_3', 'normal3d', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0]'}, True, [1.0, 2.0, 3.0], False, ''),
        ('inputs:a_normald_3_array', 'normal3d[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]]'}, True, [[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], False, ''),
        ('inputs:a_normalf_3', 'normal3f', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0]'}, True, [1.0, 2.0, 3.0], False, ''),
        ('inputs:a_normalf_3_array', 'normal3f[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]]'}, True, [[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], False, ''),
        ('inputs:a_normalh_3', 'normal3h', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0]'}, True, [1.0, 2.0, 3.0], False, ''),
        ('inputs:a_normalh_3_array', 'normal3h[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]]'}, True, [[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], False, ''),
        ('inputs:a_objectId', 'objectId', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '1'}, True, 1, False, ''),
        ('inputs:a_objectId_array', 'objectId[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1, 2]'}, True, [1, 2], False, ''),
        ('inputs:a_path', 'path', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '"/Input"'}, True, "/Input", False, ''),
        ('inputs:a_pointd_3', 'point3d', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0]'}, True, [1.0, 2.0, 3.0], False, ''),
        ('inputs:a_pointd_3_array', 'point3d[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]]'}, True, [[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], False, ''),
        ('inputs:a_pointf_3', 'point3f', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0]'}, True, [1.0, 2.0, 3.0], False, ''),
        ('inputs:a_pointf_3_array', 'point3f[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]]'}, True, [[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], False, ''),
        ('inputs:a_pointh_3', 'point3h', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0]'}, True, [1.0, 2.0, 3.0], False, ''),
        ('inputs:a_pointh_3_array', 'point3h[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]]'}, True, [[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], False, ''),
        ('inputs:a_quatd_4', 'quatd', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0, 4.0]'}, True, [1.0, 2.0, 3.0, 4.0], False, ''),
        ('inputs:a_quatd_4_array', 'quatd[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0, 4.0], [11.0, 12.0, 13.0, 14.0]]'}, True, [[1.0, 2.0, 3.0, 4.0], [11.0, 12.0, 13.0, 14.0]], False, ''),
        ('inputs:a_quatf_4', 'quatf', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0, 4.0]'}, True, [1.0, 2.0, 3.0, 4.0], False, ''),
        ('inputs:a_quatf_4_array', 'quatf[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0, 4.0], [11.0, 12.0, 13.0, 14.0]]'}, True, [[1.0, 2.0, 3.0, 4.0], [11.0, 12.0, 13.0, 14.0]], False, ''),
        ('inputs:a_quath_4', 'quath', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0, 4.0]'}, True, [1.0, 2.0, 3.0, 4.0], False, ''),
        ('inputs:a_quath_4_array', 'quath[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0, 4.0], [11.0, 12.0, 13.0, 14.0]]'}, True, [[1.0, 2.0, 3.0, 4.0], [11.0, 12.0, 13.0, 14.0]], False, ''),
        ('inputs:a_string', 'string', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '"Rey"'}, True, "Rey", False, ''),
        ('inputs:a_target', 'target', 0, None, 'Input Attribute', {ogn.MetadataKeys.ALLOW_MULTI_INPUTS: '1'}, True, [], False, ''),
        ('inputs:a_texcoordd_2', 'texCoord2d', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0]'}, True, [1.0, 2.0], False, ''),
        ('inputs:a_texcoordd_2_array', 'texCoord2d[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0], [11.0, 12.0]]'}, True, [[1.0, 2.0], [11.0, 12.0]], False, ''),
        ('inputs:a_texcoordd_3', 'texCoord3d', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0]'}, True, [1.0, 2.0, 3.0], False, ''),
        ('inputs:a_texcoordd_3_array', 'texCoord3d[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]]'}, True, [[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], False, ''),
        ('inputs:a_texcoordf_2', 'texCoord2f', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0]'}, True, [1.0, 2.0], False, ''),
        ('inputs:a_texcoordf_2_array', 'texCoord2f[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0], [11.0, 12.0]]'}, True, [[1.0, 2.0], [11.0, 12.0]], False, ''),
        ('inputs:a_texcoordf_3', 'texCoord3f', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0]'}, True, [1.0, 2.0, 3.0], False, ''),
        ('inputs:a_texcoordf_3_array', 'texCoord3f[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]]'}, True, [[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], False, ''),
        ('inputs:a_texcoordh_2', 'texCoord2h', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0]'}, True, [1.0, 2.0], False, ''),
        ('inputs:a_texcoordh_2_array', 'texCoord2h[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0], [11.0, 12.0]]'}, True, [[1.0, 2.0], [11.0, 12.0]], False, ''),
        ('inputs:a_texcoordh_3', 'texCoord3h', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0]'}, True, [1.0, 2.0, 3.0], False, ''),
        ('inputs:a_texcoordh_3_array', 'texCoord3h[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]]'}, True, [[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], False, ''),
        ('inputs:a_timecode', 'timecode', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '1.0'}, True, 1.0, False, ''),
        ('inputs:a_timecode_array', 'timecode[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0]'}, True, [1.0, 2.0], False, ''),
        ('inputs:a_token', 'token', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '"Sith"'}, True, "Sith", False, ''),
        ('inputs:a_token_array', 'token[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '["Kylo", "Ren"]'}, True, ['Kylo', 'Ren'], False, ''),
        ('inputs:a_uchar', 'uchar', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '1'}, True, 1, False, ''),
        ('inputs:a_uchar_array', 'uchar[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1, 2]'}, True, [1, 2], False, ''),
        ('inputs:a_uint', 'uint', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '1'}, True, 1, False, ''),
        ('inputs:a_uint64', 'uint64', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '1'}, True, 1, False, ''),
        ('inputs:a_uint64_array', 'uint64[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1, 2]'}, True, [1, 2], False, ''),
        ('inputs:a_uint_array', 'uint[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1, 2]'}, True, [1, 2], False, ''),
        ('inputs:a_vectord_3', 'vector3d', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0]'}, True, [1.0, 2.0, 3.0], False, ''),
        ('inputs:a_vectord_3_array', 'vector3d[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]]'}, True, [[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], False, ''),
        ('inputs:a_vectorf_3', 'vector3f', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0]'}, True, [1.0, 2.0, 3.0], False, ''),
        ('inputs:a_vectorf_3_array', 'vector3f[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]]'}, True, [[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], False, ''),
        ('inputs:a_vectorh_3', 'vector3h', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[1.0, 2.0, 3.0]'}, True, [1.0, 2.0, 3.0], False, ''),
        ('inputs:a_vectorh_3_array', 'vector3h[]', 0, None, 'Input Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]]'}, True, [[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], False, ''),
        ('inputs:doNotCompute', 'bool', 0, None, 'Prevent the compute from running', {ogn.MetadataKeys.DEFAULT: 'true'}, True, True, False, ''),
        ('outputs:a_bool', 'bool', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: 'true'}, True, True, False, ''),
        ('outputs:a_bool_array', 'bool[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[true, false]'}, True, [True, False], False, ''),
        ('outputs:a_bundle', 'bundle', 0, None, 'Computed Attribute', {}, True, None, False, ''),
        ('outputs:a_colord_3', 'color3d', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('outputs:a_colord_3_array', 'color3d[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('outputs:a_colord_4', 'color4d', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5, 4.5]'}, True, [1.5, 2.5, 3.5, 4.5], False, ''),
        ('outputs:a_colord_4_array', 'color4d[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]], False, ''),
        ('outputs:a_colorf_3', 'color3f', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('outputs:a_colorf_3_array', 'color3f[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('outputs:a_colorf_4', 'color4f', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5, 4.5]'}, True, [1.5, 2.5, 3.5, 4.5], False, ''),
        ('outputs:a_colorf_4_array', 'color4f[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]], False, ''),
        ('outputs:a_colorh_3', 'color3h', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('outputs:a_colorh_3_array', 'color3h[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('outputs:a_colorh_4', 'color4h', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5, 4.5]'}, True, [1.5, 2.5, 3.5, 4.5], False, ''),
        ('outputs:a_colorh_4_array', 'color4h[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]], False, ''),
        ('outputs:a_double', 'double', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '1.5'}, True, 1.5, False, ''),
        ('outputs:a_double_2', 'double2', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5]'}, True, [1.5, 2.5], False, ''),
        ('outputs:a_double_2_array', 'double2[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5], [11.5, 12.5]]'}, True, [[1.5, 2.5], [11.5, 12.5]], False, ''),
        ('outputs:a_double_3', 'double3', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('outputs:a_double_3_array', 'double3[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('outputs:a_double_4', 'double4', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5, 4.5]'}, True, [1.5, 2.5, 3.5, 4.5], False, ''),
        ('outputs:a_double_4_array', 'double4[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]], False, ''),
        ('outputs:a_double_array', 'double[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5]'}, True, [1.5, 2.5], False, ''),
        ('outputs:a_execution', 'execution', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '2'}, True, 2, False, ''),
        ('outputs:a_float', 'float', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '1.5'}, True, 1.5, False, ''),
        ('outputs:a_float_2', 'float2', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5]'}, True, [1.5, 2.5], False, ''),
        ('outputs:a_float_2_array', 'float2[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5], [11.5, 12.5]]'}, True, [[1.5, 2.5], [11.5, 12.5]], False, ''),
        ('outputs:a_float_3', 'float3', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('outputs:a_float_3_array', 'float3[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('outputs:a_float_4', 'float4', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5, 4.5]'}, True, [1.5, 2.5, 3.5, 4.5], False, ''),
        ('outputs:a_float_4_array', 'float4[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]], False, ''),
        ('outputs:a_float_array', 'float[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5]'}, True, [1.5, 2.5], False, ''),
        ('outputs:a_frame_4', 'frame4d', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [5.5, 6.5, 7.5, 8.5], [9.5, 10.5, 11.5, 12.5], [13.5, 14.5, 15.5, 16.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [5.5, 6.5, 7.5, 8.5], [9.5, 10.5, 11.5, 12.5], [13.5, 14.5, 15.5, 16.5]], False, ''),
        ('outputs:a_frame_4_array', 'frame4d[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[[1.5, 2.5, 3.5, 4.5], [5.5, 6.5, 7.5, 8.5], [9.5, 10.5, 11.5, 12.5], [13.5, 14.5, 15.5, 16.5]], [[11.5, 12.5, 13.5, 14.5], [15.5, 16.5, 17.5, 18.5], [19.5, 20.5, 21.5, 22.5], [23.5, 24.5, 25.5, 26.5]]]'}, True, [[[1.5, 2.5, 3.5, 4.5], [5.5, 6.5, 7.5, 8.5], [9.5, 10.5, 11.5, 12.5], [13.5, 14.5, 15.5, 16.5]], [[11.5, 12.5, 13.5, 14.5], [15.5, 16.5, 17.5, 18.5], [19.5, 20.5, 21.5, 22.5], [23.5, 24.5, 25.5, 26.5]]], False, ''),
        ('outputs:a_half', 'half', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '1.5'}, True, 1.5, False, ''),
        ('outputs:a_half_2', 'half2', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5]'}, True, [1.5, 2.5], False, ''),
        ('outputs:a_half_2_array', 'half2[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5], [11.5, 12.5]]'}, True, [[1.5, 2.5], [11.5, 12.5]], False, ''),
        ('outputs:a_half_3', 'half3', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('outputs:a_half_3_array', 'half3[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('outputs:a_half_4', 'half4', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5, 4.5]'}, True, [1.5, 2.5, 3.5, 4.5], False, ''),
        ('outputs:a_half_4_array', 'half4[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]], False, ''),
        ('outputs:a_half_array', 'half[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5]'}, True, [1.5, 2.5], False, ''),
        ('outputs:a_int', 'int', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '1'}, True, 1, False, ''),
        ('outputs:a_int64', 'int64', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '12345'}, True, 12345, False, ''),
        ('outputs:a_int64_array', 'int64[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[12345, 23456]'}, True, [12345, 23456], False, ''),
        ('outputs:a_int_2', 'int2', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1, 2]'}, True, [1, 2], False, ''),
        ('outputs:a_int_2_array', 'int2[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1, 2], [3, 4]]'}, True, [[1, 2], [3, 4]], False, ''),
        ('outputs:a_int_3', 'int3', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1, 2, 3]'}, True, [1, 2, 3], False, ''),
        ('outputs:a_int_3_array', 'int3[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1, 2, 3], [4, 5, 6]]'}, True, [[1, 2, 3], [4, 5, 6]], False, ''),
        ('outputs:a_int_4', 'int4', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1, 2, 3, 4]'}, True, [1, 2, 3, 4], False, ''),
        ('outputs:a_int_4_array', 'int4[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1, 2, 3, 4], [5, 6, 7, 8]]'}, True, [[1, 2, 3, 4], [5, 6, 7, 8]], False, ''),
        ('outputs:a_int_array', 'int[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1, 2]'}, True, [1, 2], False, ''),
        ('outputs:a_matrixd_2', 'matrix2d', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5], [3.5, 4.5]]'}, True, [[1.5, 2.5], [3.5, 4.5]], False, ''),
        ('outputs:a_matrixd_2_array', 'matrix2d[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[[1.5, 2.5], [3.5, 4.5]], [[11.5, 12.5], [13.5, 14.5]]]'}, True, [[[1.5, 2.5], [3.5, 4.5]], [[11.5, 12.5], [13.5, 14.5]]], False, ''),
        ('outputs:a_matrixd_3', 'matrix3d', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [4.5, 5.5, 6.5], [7.5, 8.5, 9.5]]'}, True, [[1.5, 2.5, 3.5], [4.5, 5.5, 6.5], [7.5, 8.5, 9.5]], False, ''),
        ('outputs:a_matrixd_3_array', 'matrix3d[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[[1.5, 2.5, 3.5], [4.5, 5.5, 6.5], [7.5, 8.5, 9.5]], [[11.5, 12.5, 13.5], [14.5, 15.5, 16.5], [17.5, 18.5, 19.5]]]'}, True, [[[1.5, 2.5, 3.5], [4.5, 5.5, 6.5], [7.5, 8.5, 9.5]], [[11.5, 12.5, 13.5], [14.5, 15.5, 16.5], [17.5, 18.5, 19.5]]], False, ''),
        ('outputs:a_matrixd_4', 'matrix4d', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [5.5, 6.5, 7.5, 8.5], [9.5, 10.5, 11.5, 12.5], [13.5, 14.5, 15.5, 16.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [5.5, 6.5, 7.5, 8.5], [9.5, 10.5, 11.5, 12.5], [13.5, 14.5, 15.5, 16.5]], False, ''),
        ('outputs:a_matrixd_4_array', 'matrix4d[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[[1.5, 2.5, 3.5, 4.5], [5.5, 6.5, 7.5, 8.5], [9.5, 10.5, 11.5, 12.5], [13.5, 14.5, 15.5, 16.5]], [[11.5, 12.5, 13.5, 14.5], [15.5, 16.5, 17.5, 18.5], [19.5, 20.5, 21.5, 22.5], [23.5, 24.5, 25.5, 26.5]]]'}, True, [[[1.5, 2.5, 3.5, 4.5], [5.5, 6.5, 7.5, 8.5], [9.5, 10.5, 11.5, 12.5], [13.5, 14.5, 15.5, 16.5]], [[11.5, 12.5, 13.5, 14.5], [15.5, 16.5, 17.5, 18.5], [19.5, 20.5, 21.5, 22.5], [23.5, 24.5, 25.5, 26.5]]], False, ''),
        ('outputs:a_normald_3', 'normal3d', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('outputs:a_normald_3_array', 'normal3d[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('outputs:a_normalf_3', 'normal3f', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('outputs:a_normalf_3_array', 'normal3f[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('outputs:a_normalh_3', 'normal3h', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('outputs:a_normalh_3_array', 'normal3h[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('outputs:a_objectId', 'objectId', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '2'}, True, 2, False, ''),
        ('outputs:a_objectId_array', 'objectId[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[2, 3]'}, True, [2, 3], False, ''),
        ('outputs:a_path', 'path', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '"/Output"'}, True, "/Output", False, ''),
        ('outputs:a_pointd_3', 'point3d', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('outputs:a_pointd_3_array', 'point3d[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('outputs:a_pointf_3', 'point3f', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('outputs:a_pointf_3_array', 'point3f[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('outputs:a_pointh_3', 'point3h', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('outputs:a_pointh_3_array', 'point3h[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('outputs:a_quatd_4', 'quatd', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5, 4.5]'}, True, [1.5, 2.5, 3.5, 4.5], False, ''),
        ('outputs:a_quatd_4_array', 'quatd[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]], False, ''),
        ('outputs:a_quatf_4', 'quatf', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5, 4.5]'}, True, [1.5, 2.5, 3.5, 4.5], False, ''),
        ('outputs:a_quatf_4_array', 'quatf[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]], False, ''),
        ('outputs:a_quath_4', 'quath', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5, 4.5]'}, True, [1.5, 2.5, 3.5, 4.5], False, ''),
        ('outputs:a_quath_4_array', 'quath[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]], False, ''),
        ('outputs:a_string', 'string', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '"Snoke"'}, True, "Snoke", False, ''),
        ('outputs:a_target', 'target', 0, None, 'Computed Attribute', {}, True, [], False, ''),
        ('outputs:a_texcoordd_2', 'texCoord2d', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5]'}, True, [1.5, 2.5], False, ''),
        ('outputs:a_texcoordd_2_array', 'texCoord2d[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5], [11.5, 12.5]]'}, True, [[1.5, 2.5], [11.5, 12.5]], False, ''),
        ('outputs:a_texcoordd_3', 'texCoord3d', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('outputs:a_texcoordd_3_array', 'texCoord3d[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('outputs:a_texcoordf_2', 'texCoord2f', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5]'}, True, [1.5, 2.5], False, ''),
        ('outputs:a_texcoordf_2_array', 'texCoord2f[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5], [11.5, 12.5]]'}, True, [[1.5, 2.5], [11.5, 12.5]], False, ''),
        ('outputs:a_texcoordf_3', 'texCoord3f', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('outputs:a_texcoordf_3_array', 'texCoord3f[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('outputs:a_texcoordh_2', 'texCoord2h', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5]'}, True, [1.5, 2.5], False, ''),
        ('outputs:a_texcoordh_2_array', 'texCoord2h[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5], [11.5, 12.5]]'}, True, [[1.5, 2.5], [11.5, 12.5]], False, ''),
        ('outputs:a_texcoordh_3', 'texCoord3h', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('outputs:a_texcoordh_3_array', 'texCoord3h[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('outputs:a_timecode', 'timecode', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '2.5'}, True, 2.5, False, ''),
        ('outputs:a_timecode_array', 'timecode[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[2.5, 3.5]'}, True, [2.5, 3.5], False, ''),
        ('outputs:a_token', 'token', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '"Jedi"'}, True, "Jedi", False, ''),
        ('outputs:a_token_array', 'token[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '["Luke", "Skywalker"]'}, True, ['Luke', 'Skywalker'], False, ''),
        ('outputs:a_uchar', 'uchar', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '2'}, True, 2, False, ''),
        ('outputs:a_uchar_array', 'uchar[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[2, 3]'}, True, [2, 3], False, ''),
        ('outputs:a_uint', 'uint', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '2'}, True, 2, False, ''),
        ('outputs:a_uint64', 'uint64', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '2'}, True, 2, False, ''),
        ('outputs:a_uint64_array', 'uint64[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[2, 3]'}, True, [2, 3], False, ''),
        ('outputs:a_uint_array', 'uint[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[2, 3]'}, True, [2, 3], False, ''),
        ('outputs:a_vectord_3', 'vector3d', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('outputs:a_vectord_3_array', 'vector3d[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('outputs:a_vectorf_3', 'vector3f', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('outputs:a_vectorf_3_array', 'vector3f[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('outputs:a_vectorh_3', 'vector3h', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('outputs:a_vectorh_3_array', 'vector3h[]', 0, None, 'Computed Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('state:a_bool', 'bool', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: 'true'}, True, True, False, ''),
        ('state:a_bool_array', 'bool[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[true, false]'}, True, [True, False], False, ''),
        ('state:a_bundle', 'bundle', 0, None, 'State Attribute', {}, True, None, False, ''),
        ('state:a_colord_3', 'color3d', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('state:a_colord_3_array', 'color3d[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('state:a_colord_4', 'color4d', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5, 4.5]'}, True, [1.5, 2.5, 3.5, 4.5], False, ''),
        ('state:a_colord_4_array', 'color4d[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]], False, ''),
        ('state:a_colorf_3', 'color3f', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('state:a_colorf_3_array', 'color3f[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('state:a_colorf_4', 'color4f', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5, 4.5]'}, True, [1.5, 2.5, 3.5, 4.5], False, ''),
        ('state:a_colorf_4_array', 'color4f[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]], False, ''),
        ('state:a_colorh_3', 'color3h', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('state:a_colorh_3_array', 'color3h[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('state:a_colorh_4', 'color4h', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5, 4.5]'}, True, [1.5, 2.5, 3.5, 4.5], False, ''),
        ('state:a_colorh_4_array', 'color4h[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]], False, ''),
        ('state:a_double', 'double', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '1.5'}, True, 1.5, False, ''),
        ('state:a_double_2', 'double2', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5]'}, True, [1.5, 2.5], False, ''),
        ('state:a_double_2_array', 'double2[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5], [11.5, 12.5]]'}, True, [[1.5, 2.5], [11.5, 12.5]], False, ''),
        ('state:a_double_3', 'double3', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('state:a_double_3_array', 'double3[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('state:a_double_4', 'double4', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5, 4.5]'}, True, [1.5, 2.5, 3.5, 4.5], False, ''),
        ('state:a_double_4_array', 'double4[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]], False, ''),
        ('state:a_double_array', 'double[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5]'}, True, [1.5, 2.5], False, ''),
        ('state:a_execution', 'execution', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '2'}, True, 2, False, ''),
        ('state:a_firstEvaluation', 'bool', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: 'true'}, True, True, False, ''),
        ('state:a_float', 'float', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '1.5'}, True, 1.5, False, ''),
        ('state:a_float_2', 'float2', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5]'}, True, [1.5, 2.5], False, ''),
        ('state:a_float_2_array', 'float2[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5], [11.5, 12.5]]'}, True, [[1.5, 2.5], [11.5, 12.5]], False, ''),
        ('state:a_float_3', 'float3', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('state:a_float_3_array', 'float3[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('state:a_float_4', 'float4', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5, 4.5]'}, True, [1.5, 2.5, 3.5, 4.5], False, ''),
        ('state:a_float_4_array', 'float4[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]], False, ''),
        ('state:a_float_array', 'float[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5]'}, True, [1.5, 2.5], False, ''),
        ('state:a_frame_4', 'frame4d', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [5.5, 6.5, 7.5, 8.5], [9.5, 10.5, 11.5, 12.5], [13.5, 14.5, 15.5, 16.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [5.5, 6.5, 7.5, 8.5], [9.5, 10.5, 11.5, 12.5], [13.5, 14.5, 15.5, 16.5]], False, ''),
        ('state:a_frame_4_array', 'frame4d[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[[1.5, 2.5, 3.5, 4.5], [5.5, 6.5, 7.5, 8.5], [9.5, 10.5, 11.5, 12.5], [13.5, 14.5, 15.5, 16.5]], [[11.5, 12.5, 13.5, 14.5], [15.5, 16.5, 17.5, 18.5], [19.5, 20.5, 21.5, 22.5], [23.5, 24.5, 25.5, 26.5]]]'}, True, [[[1.5, 2.5, 3.5, 4.5], [5.5, 6.5, 7.5, 8.5], [9.5, 10.5, 11.5, 12.5], [13.5, 14.5, 15.5, 16.5]], [[11.5, 12.5, 13.5, 14.5], [15.5, 16.5, 17.5, 18.5], [19.5, 20.5, 21.5, 22.5], [23.5, 24.5, 25.5, 26.5]]], False, ''),
        ('state:a_half', 'half', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '1.5'}, True, 1.5, False, ''),
        ('state:a_half_2', 'half2', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5]'}, True, [1.5, 2.5], False, ''),
        ('state:a_half_2_array', 'half2[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5], [11.5, 12.5]]'}, True, [[1.5, 2.5], [11.5, 12.5]], False, ''),
        ('state:a_half_3', 'half3', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('state:a_half_3_array', 'half3[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('state:a_half_4', 'half4', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5, 4.5]'}, True, [1.5, 2.5, 3.5, 4.5], False, ''),
        ('state:a_half_4_array', 'half4[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]], False, ''),
        ('state:a_half_array', 'half[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5]'}, True, [1.5, 2.5], False, ''),
        ('state:a_int', 'int', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '1'}, True, 1, False, ''),
        ('state:a_int64', 'int64', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '12345'}, True, 12345, False, ''),
        ('state:a_int64_array', 'int64[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[12345, 23456]'}, True, [12345, 23456], False, ''),
        ('state:a_int_2', 'int2', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1, 2]'}, True, [1, 2], False, ''),
        ('state:a_int_2_array', 'int2[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1, 2], [3, 4]]'}, True, [[1, 2], [3, 4]], False, ''),
        ('state:a_int_3', 'int3', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1, 2, 3]'}, True, [1, 2, 3], False, ''),
        ('state:a_int_3_array', 'int3[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1, 2, 3], [4, 5, 6]]'}, True, [[1, 2, 3], [4, 5, 6]], False, ''),
        ('state:a_int_4', 'int4', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1, 2, 3, 4]'}, True, [1, 2, 3, 4], False, ''),
        ('state:a_int_4_array', 'int4[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1, 2, 3, 4], [5, 6, 7, 8]]'}, True, [[1, 2, 3, 4], [5, 6, 7, 8]], False, ''),
        ('state:a_int_array', 'int[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1, 2]'}, True, [1, 2], False, ''),
        ('state:a_matrixd_2', 'matrix2d', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5], [3.5, 4.5]]'}, True, [[1.5, 2.5], [3.5, 4.5]], False, ''),
        ('state:a_matrixd_2_array', 'matrix2d[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[[1.5, 2.5], [3.5, 4.5]], [[11.5, 12.5], [13.5, 14.5]]]'}, True, [[[1.5, 2.5], [3.5, 4.5]], [[11.5, 12.5], [13.5, 14.5]]], False, ''),
        ('state:a_matrixd_3', 'matrix3d', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [4.5, 5.5, 6.5], [7.5, 8.5, 9.5]]'}, True, [[1.5, 2.5, 3.5], [4.5, 5.5, 6.5], [7.5, 8.5, 9.5]], False, ''),
        ('state:a_matrixd_3_array', 'matrix3d[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[[1.5, 2.5, 3.5], [4.5, 5.5, 6.5], [7.5, 8.5, 9.5]], [[11.5, 12.5, 13.5], [14.5, 15.5, 16.5], [17.5, 18.5, 19.5]]]'}, True, [[[1.5, 2.5, 3.5], [4.5, 5.5, 6.5], [7.5, 8.5, 9.5]], [[11.5, 12.5, 13.5], [14.5, 15.5, 16.5], [17.5, 18.5, 19.5]]], False, ''),
        ('state:a_matrixd_4', 'matrix4d', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [5.5, 6.5, 7.5, 8.5], [9.5, 10.5, 11.5, 12.5], [13.5, 14.5, 15.5, 16.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [5.5, 6.5, 7.5, 8.5], [9.5, 10.5, 11.5, 12.5], [13.5, 14.5, 15.5, 16.5]], False, ''),
        ('state:a_matrixd_4_array', 'matrix4d[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[[1.5, 2.5, 3.5, 4.5], [5.5, 6.5, 7.5, 8.5], [9.5, 10.5, 11.5, 12.5], [13.5, 14.5, 15.5, 16.5]], [[11.5, 12.5, 13.5, 14.5], [15.5, 16.5, 17.5, 18.5], [19.5, 20.5, 21.5, 22.5], [23.5, 24.5, 25.5, 26.5]]]'}, True, [[[1.5, 2.5, 3.5, 4.5], [5.5, 6.5, 7.5, 8.5], [9.5, 10.5, 11.5, 12.5], [13.5, 14.5, 15.5, 16.5]], [[11.5, 12.5, 13.5, 14.5], [15.5, 16.5, 17.5, 18.5], [19.5, 20.5, 21.5, 22.5], [23.5, 24.5, 25.5, 26.5]]], False, ''),
        ('state:a_normald_3', 'normal3d', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('state:a_normald_3_array', 'normal3d[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('state:a_normalf_3', 'normal3f', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('state:a_normalf_3_array', 'normal3f[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('state:a_normalh_3', 'normal3h', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('state:a_normalh_3_array', 'normal3h[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('state:a_objectId', 'objectId', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '2'}, True, 2, False, ''),
        ('state:a_objectId_array', 'objectId[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[2, 3]'}, True, [2, 3], False, ''),
        ('state:a_path', 'path', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '"/State"'}, True, "/State", False, ''),
        ('state:a_pointd_3', 'point3d', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('state:a_pointd_3_array', 'point3d[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('state:a_pointf_3', 'point3f', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('state:a_pointf_3_array', 'point3f[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('state:a_pointh_3', 'point3h', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('state:a_pointh_3_array', 'point3h[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('state:a_quatd_4', 'quatd', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5, 4.5]'}, True, [1.5, 2.5, 3.5, 4.5], False, ''),
        ('state:a_quatd_4_array', 'quatd[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]], False, ''),
        ('state:a_quatf_4', 'quatf', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5, 4.5]'}, True, [1.5, 2.5, 3.5, 4.5], False, ''),
        ('state:a_quatf_4_array', 'quatf[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]], False, ''),
        ('state:a_quath_4', 'quath', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5, 4.5]'}, True, [1.5, 2.5, 3.5, 4.5], False, ''),
        ('state:a_quath_4_array', 'quath[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]]'}, True, [[1.5, 2.5, 3.5, 4.5], [11.5, 12.5, 13.5, 14.5]], False, ''),
        ('state:a_string', 'string', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '"Snoke"'}, True, "Snoke", False, ''),
        ('state:a_stringEmpty', 'string', 0, None, 'State Attribute', {}, True, None, False, ''),
        ('state:a_target', 'target', 0, None, 'State Attribute', {}, True, [], False, ''),
        ('state:a_texcoordd_2', 'texCoord2d', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5]'}, True, [1.5, 2.5], False, ''),
        ('state:a_texcoordd_2_array', 'texCoord2d[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5], [11.5, 12.5]]'}, True, [[1.5, 2.5], [11.5, 12.5]], False, ''),
        ('state:a_texcoordd_3', 'texCoord3d', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('state:a_texcoordd_3_array', 'texCoord3d[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('state:a_texcoordf_2', 'texCoord2f', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5]'}, True, [1.5, 2.5], False, ''),
        ('state:a_texcoordf_2_array', 'texCoord2f[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5], [11.5, 12.5]]'}, True, [[1.5, 2.5], [11.5, 12.5]], False, ''),
        ('state:a_texcoordf_3', 'texCoord3f', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('state:a_texcoordf_3_array', 'texCoord3f[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('state:a_texcoordh_2', 'texCoord2h', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5]'}, True, [1.5, 2.5], False, ''),
        ('state:a_texcoordh_2_array', 'texCoord2h[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5], [11.5, 12.5]]'}, True, [[1.5, 2.5], [11.5, 12.5]], False, ''),
        ('state:a_texcoordh_3', 'texCoord3h', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('state:a_texcoordh_3_array', 'texCoord3h[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('state:a_timecode', 'timecode', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '2.5'}, True, 2.5, False, ''),
        ('state:a_timecode_array', 'timecode[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[2.5, 3.5]'}, True, [2.5, 3.5], False, ''),
        ('state:a_token', 'token', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '"Jedi"'}, True, "Jedi", False, ''),
        ('state:a_token_array', 'token[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '["Luke", "Skywalker"]'}, True, ['Luke', 'Skywalker'], False, ''),
        ('state:a_uchar', 'uchar', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '2'}, True, 2, False, ''),
        ('state:a_uchar_array', 'uchar[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[2, 3]'}, True, [2, 3], False, ''),
        ('state:a_uint', 'uint', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '2'}, True, 2, False, ''),
        ('state:a_uint64', 'uint64', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '2'}, True, 2, False, ''),
        ('state:a_uint64_array', 'uint64[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[2, 3]'}, True, [2, 3], False, ''),
        ('state:a_uint_array', 'uint[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[2, 3]'}, True, [2, 3], False, ''),
        ('state:a_vectord_3', 'vector3d', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('state:a_vectord_3_array', 'vector3d[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('state:a_vectorf_3', 'vector3f', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('state:a_vectorf_3_array', 'vector3f[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
        ('state:a_vectorh_3', 'vector3h', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[1.5, 2.5, 3.5]'}, True, [1.5, 2.5, 3.5], False, ''),
        ('state:a_vectorh_3_array', 'vector3h[]', 0, None, 'State Attribute', {ogn.MetadataKeys.DEFAULT: '[[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]]'}, True, [[1.5, 2.5, 3.5], [11.5, 12.5, 13.5]], False, ''),
    ])

    @classmethod
    def _populate_role_data(cls):
        """Populate a role structure with the non-default roles on this node type"""
        role_data = super()._populate_role_data()
        role_data.inputs.a_bundle = og.AttributeRole.BUNDLE
        role_data.inputs.a_colord_3 = og.AttributeRole.COLOR
        role_data.inputs.a_colord_3_array = og.AttributeRole.COLOR
        role_data.inputs.a_colord_4 = og.AttributeRole.COLOR
        role_data.inputs.a_colord_4_array = og.AttributeRole.COLOR
        role_data.inputs.a_colorf_3 = og.AttributeRole.COLOR
        role_data.inputs.a_colorf_3_array = og.AttributeRole.COLOR
        role_data.inputs.a_colorf_4 = og.AttributeRole.COLOR
        role_data.inputs.a_colorf_4_array = og.AttributeRole.COLOR
        role_data.inputs.a_colorh_3 = og.AttributeRole.COLOR
        role_data.inputs.a_colorh_3_array = og.AttributeRole.COLOR
        role_data.inputs.a_colorh_4 = og.AttributeRole.COLOR
        role_data.inputs.a_colorh_4_array = og.AttributeRole.COLOR
        role_data.inputs.a_execution = og.AttributeRole.EXECUTION
        role_data.inputs.a_frame_4 = og.AttributeRole.FRAME
        role_data.inputs.a_frame_4_array = og.AttributeRole.FRAME
        role_data.inputs.a_matrixd_2 = og.AttributeRole.MATRIX
        role_data.inputs.a_matrixd_2_array = og.AttributeRole.MATRIX
        role_data.inputs.a_matrixd_3 = og.AttributeRole.MATRIX
        role_data.inputs.a_matrixd_3_array = og.AttributeRole.MATRIX
        role_data.inputs.a_matrixd_4 = og.AttributeRole.MATRIX
        role_data.inputs.a_matrixd_4_array = og.AttributeRole.MATRIX
        role_data.inputs.a_normald_3 = og.AttributeRole.NORMAL
        role_data.inputs.a_normald_3_array = og.AttributeRole.NORMAL
        role_data.inputs.a_normalf_3 = og.AttributeRole.NORMAL
        role_data.inputs.a_normalf_3_array = og.AttributeRole.NORMAL
        role_data.inputs.a_normalh_3 = og.AttributeRole.NORMAL
        role_data.inputs.a_normalh_3_array = og.AttributeRole.NORMAL
        role_data.inputs.a_objectId = og.AttributeRole.OBJECT_ID
        role_data.inputs.a_objectId_array = og.AttributeRole.OBJECT_ID
        role_data.inputs.a_path = og.AttributeRole.PATH
        role_data.inputs.a_pointd_3 = og.AttributeRole.POSITION
        role_data.inputs.a_pointd_3_array = og.AttributeRole.POSITION
        role_data.inputs.a_pointf_3 = og.AttributeRole.POSITION
        role_data.inputs.a_pointf_3_array = og.AttributeRole.POSITION
        role_data.inputs.a_pointh_3 = og.AttributeRole.POSITION
        role_data.inputs.a_pointh_3_array = og.AttributeRole.POSITION
        role_data.inputs.a_quatd_4 = og.AttributeRole.QUATERNION
        role_data.inputs.a_quatd_4_array = og.AttributeRole.QUATERNION
        role_data.inputs.a_quatf_4 = og.AttributeRole.QUATERNION
        role_data.inputs.a_quatf_4_array = og.AttributeRole.QUATERNION
        role_data.inputs.a_quath_4 = og.AttributeRole.QUATERNION
        role_data.inputs.a_quath_4_array = og.AttributeRole.QUATERNION
        role_data.inputs.a_string = og.AttributeRole.TEXT
        role_data.inputs.a_target = og.AttributeRole.TARGET
        role_data.inputs.a_texcoordd_2 = og.AttributeRole.TEXCOORD
        role_data.inputs.a_texcoordd_2_array = og.AttributeRole.TEXCOORD
        role_data.inputs.a_texcoordd_3 = og.AttributeRole.TEXCOORD
        role_data.inputs.a_texcoordd_3_array = og.AttributeRole.TEXCOORD
        role_data.inputs.a_texcoordf_2 = og.AttributeRole.TEXCOORD
        role_data.inputs.a_texcoordf_2_array = og.AttributeRole.TEXCOORD
        role_data.inputs.a_texcoordf_3 = og.AttributeRole.TEXCOORD
        role_data.inputs.a_texcoordf_3_array = og.AttributeRole.TEXCOORD
        role_data.inputs.a_texcoordh_2 = og.AttributeRole.TEXCOORD
        role_data.inputs.a_texcoordh_2_array = og.AttributeRole.TEXCOORD
        role_data.inputs.a_texcoordh_3 = og.AttributeRole.TEXCOORD
        role_data.inputs.a_texcoordh_3_array = og.AttributeRole.TEXCOORD
        role_data.inputs.a_timecode = og.AttributeRole.TIMECODE
        role_data.inputs.a_timecode_array = og.AttributeRole.TIMECODE
        role_data.inputs.a_vectord_3 = og.AttributeRole.VECTOR
        role_data.inputs.a_vectord_3_array = og.AttributeRole.VECTOR
        role_data.inputs.a_vectorf_3 = og.AttributeRole.VECTOR
        role_data.inputs.a_vectorf_3_array = og.AttributeRole.VECTOR
        role_data.inputs.a_vectorh_3 = og.AttributeRole.VECTOR
        role_data.inputs.a_vectorh_3_array = og.AttributeRole.VECTOR
        role_data.outputs.a_bundle = og.AttributeRole.BUNDLE
        role_data.outputs.a_colord_3 = og.AttributeRole.COLOR
        role_data.outputs.a_colord_3_array = og.AttributeRole.COLOR
        role_data.outputs.a_colord_4 = og.AttributeRole.COLOR
        role_data.outputs.a_colord_4_array = og.AttributeRole.COLOR
        role_data.outputs.a_colorf_3 = og.AttributeRole.COLOR
        role_data.outputs.a_colorf_3_array = og.AttributeRole.COLOR
        role_data.outputs.a_colorf_4 = og.AttributeRole.COLOR
        role_data.outputs.a_colorf_4_array = og.AttributeRole.COLOR
        role_data.outputs.a_colorh_3 = og.AttributeRole.COLOR
        role_data.outputs.a_colorh_3_array = og.AttributeRole.COLOR
        role_data.outputs.a_colorh_4 = og.AttributeRole.COLOR
        role_data.outputs.a_colorh_4_array = og.AttributeRole.COLOR
        role_data.outputs.a_execution = og.AttributeRole.EXECUTION
        role_data.outputs.a_frame_4 = og.AttributeRole.FRAME
        role_data.outputs.a_frame_4_array = og.AttributeRole.FRAME
        role_data.outputs.a_matrixd_2 = og.AttributeRole.MATRIX
        role_data.outputs.a_matrixd_2_array = og.AttributeRole.MATRIX
        role_data.outputs.a_matrixd_3 = og.AttributeRole.MATRIX
        role_data.outputs.a_matrixd_3_array = og.AttributeRole.MATRIX
        role_data.outputs.a_matrixd_4 = og.AttributeRole.MATRIX
        role_data.outputs.a_matrixd_4_array = og.AttributeRole.MATRIX
        role_data.outputs.a_normald_3 = og.AttributeRole.NORMAL
        role_data.outputs.a_normald_3_array = og.AttributeRole.NORMAL
        role_data.outputs.a_normalf_3 = og.AttributeRole.NORMAL
        role_data.outputs.a_normalf_3_array = og.AttributeRole.NORMAL
        role_data.outputs.a_normalh_3 = og.AttributeRole.NORMAL
        role_data.outputs.a_normalh_3_array = og.AttributeRole.NORMAL
        role_data.outputs.a_objectId = og.AttributeRole.OBJECT_ID
        role_data.outputs.a_objectId_array = og.AttributeRole.OBJECT_ID
        role_data.outputs.a_path = og.AttributeRole.PATH
        role_data.outputs.a_pointd_3 = og.AttributeRole.POSITION
        role_data.outputs.a_pointd_3_array = og.AttributeRole.POSITION
        role_data.outputs.a_pointf_3 = og.AttributeRole.POSITION
        role_data.outputs.a_pointf_3_array = og.AttributeRole.POSITION
        role_data.outputs.a_pointh_3 = og.AttributeRole.POSITION
        role_data.outputs.a_pointh_3_array = og.AttributeRole.POSITION
        role_data.outputs.a_quatd_4 = og.AttributeRole.QUATERNION
        role_data.outputs.a_quatd_4_array = og.AttributeRole.QUATERNION
        role_data.outputs.a_quatf_4 = og.AttributeRole.QUATERNION
        role_data.outputs.a_quatf_4_array = og.AttributeRole.QUATERNION
        role_data.outputs.a_quath_4 = og.AttributeRole.QUATERNION
        role_data.outputs.a_quath_4_array = og.AttributeRole.QUATERNION
        role_data.outputs.a_string = og.AttributeRole.TEXT
        role_data.outputs.a_target = og.AttributeRole.TARGET
        role_data.outputs.a_texcoordd_2 = og.AttributeRole.TEXCOORD
        role_data.outputs.a_texcoordd_2_array = og.AttributeRole.TEXCOORD
        role_data.outputs.a_texcoordd_3 = og.AttributeRole.TEXCOORD
        role_data.outputs.a_texcoordd_3_array = og.AttributeRole.TEXCOORD
        role_data.outputs.a_texcoordf_2 = og.AttributeRole.TEXCOORD
        role_data.outputs.a_texcoordf_2_array = og.AttributeRole.TEXCOORD
        role_data.outputs.a_texcoordf_3 = og.AttributeRole.TEXCOORD
        role_data.outputs.a_texcoordf_3_array = og.AttributeRole.TEXCOORD
        role_data.outputs.a_texcoordh_2 = og.AttributeRole.TEXCOORD
        role_data.outputs.a_texcoordh_2_array = og.AttributeRole.TEXCOORD
        role_data.outputs.a_texcoordh_3 = og.AttributeRole.TEXCOORD
        role_data.outputs.a_texcoordh_3_array = og.AttributeRole.TEXCOORD
        role_data.outputs.a_timecode = og.AttributeRole.TIMECODE
        role_data.outputs.a_timecode_array = og.AttributeRole.TIMECODE
        role_data.outputs.a_vectord_3 = og.AttributeRole.VECTOR
        role_data.outputs.a_vectord_3_array = og.AttributeRole.VECTOR
        role_data.outputs.a_vectorf_3 = og.AttributeRole.VECTOR
        role_data.outputs.a_vectorf_3_array = og.AttributeRole.VECTOR
        role_data.outputs.a_vectorh_3 = og.AttributeRole.VECTOR
        role_data.outputs.a_vectorh_3_array = og.AttributeRole.VECTOR
        role_data.state.a_bundle = og.AttributeRole.BUNDLE
        role_data.state.a_colord_3 = og.AttributeRole.COLOR
        role_data.state.a_colord_3_array = og.AttributeRole.COLOR
        role_data.state.a_colord_4 = og.AttributeRole.COLOR
        role_data.state.a_colord_4_array = og.AttributeRole.COLOR
        role_data.state.a_colorf_3 = og.AttributeRole.COLOR
        role_data.state.a_colorf_3_array = og.AttributeRole.COLOR
        role_data.state.a_colorf_4 = og.AttributeRole.COLOR
        role_data.state.a_colorf_4_array = og.AttributeRole.COLOR
        role_data.state.a_colorh_3 = og.AttributeRole.COLOR
        role_data.state.a_colorh_3_array = og.AttributeRole.COLOR
        role_data.state.a_colorh_4 = og.AttributeRole.COLOR
        role_data.state.a_colorh_4_array = og.AttributeRole.COLOR
        role_data.state.a_execution = og.AttributeRole.EXECUTION
        role_data.state.a_frame_4 = og.AttributeRole.FRAME
        role_data.state.a_frame_4_array = og.AttributeRole.FRAME
        role_data.state.a_matrixd_2 = og.AttributeRole.MATRIX
        role_data.state.a_matrixd_2_array = og.AttributeRole.MATRIX
        role_data.state.a_matrixd_3 = og.AttributeRole.MATRIX
        role_data.state.a_matrixd_3_array = og.AttributeRole.MATRIX
        role_data.state.a_matrixd_4 = og.AttributeRole.MATRIX
        role_data.state.a_matrixd_4_array = og.AttributeRole.MATRIX
        role_data.state.a_normald_3 = og.AttributeRole.NORMAL
        role_data.state.a_normald_3_array = og.AttributeRole.NORMAL
        role_data.state.a_normalf_3 = og.AttributeRole.NORMAL
        role_data.state.a_normalf_3_array = og.AttributeRole.NORMAL
        role_data.state.a_normalh_3 = og.AttributeRole.NORMAL
        role_data.state.a_normalh_3_array = og.AttributeRole.NORMAL
        role_data.state.a_objectId = og.AttributeRole.OBJECT_ID
        role_data.state.a_objectId_array = og.AttributeRole.OBJECT_ID
        role_data.state.a_path = og.AttributeRole.PATH
        role_data.state.a_pointd_3 = og.AttributeRole.POSITION
        role_data.state.a_pointd_3_array = og.AttributeRole.POSITION
        role_data.state.a_pointf_3 = og.AttributeRole.POSITION
        role_data.state.a_pointf_3_array = og.AttributeRole.POSITION
        role_data.state.a_pointh_3 = og.AttributeRole.POSITION
        role_data.state.a_pointh_3_array = og.AttributeRole.POSITION
        role_data.state.a_quatd_4 = og.AttributeRole.QUATERNION
        role_data.state.a_quatd_4_array = og.AttributeRole.QUATERNION
        role_data.state.a_quatf_4 = og.AttributeRole.QUATERNION
        role_data.state.a_quatf_4_array = og.AttributeRole.QUATERNION
        role_data.state.a_quath_4 = og.AttributeRole.QUATERNION
        role_data.state.a_quath_4_array = og.AttributeRole.QUATERNION
        role_data.state.a_string = og.AttributeRole.TEXT
        role_data.state.a_stringEmpty = og.AttributeRole.TEXT
        role_data.state.a_target = og.AttributeRole.TARGET
        role_data.state.a_texcoordd_2 = og.AttributeRole.TEXCOORD
        role_data.state.a_texcoordd_2_array = og.AttributeRole.TEXCOORD
        role_data.state.a_texcoordd_3 = og.AttributeRole.TEXCOORD
        role_data.state.a_texcoordd_3_array = og.AttributeRole.TEXCOORD
        role_data.state.a_texcoordf_2 = og.AttributeRole.TEXCOORD
        role_data.state.a_texcoordf_2_array = og.AttributeRole.TEXCOORD
        role_data.state.a_texcoordf_3 = og.AttributeRole.TEXCOORD
        role_data.state.a_texcoordf_3_array = og.AttributeRole.TEXCOORD
        role_data.state.a_texcoordh_2 = og.AttributeRole.TEXCOORD
        role_data.state.a_texcoordh_2_array = og.AttributeRole.TEXCOORD
        role_data.state.a_texcoordh_3 = og.AttributeRole.TEXCOORD
        role_data.state.a_texcoordh_3_array = og.AttributeRole.TEXCOORD
        role_data.state.a_timecode = og.AttributeRole.TIMECODE
        role_data.state.a_timecode_array = og.AttributeRole.TIMECODE
        role_data.state.a_vectord_3 = og.AttributeRole.VECTOR
        role_data.state.a_vectord_3_array = og.AttributeRole.VECTOR
        role_data.state.a_vectorf_3 = og.AttributeRole.VECTOR
        role_data.state.a_vectorf_3_array = og.AttributeRole.VECTOR
        role_data.state.a_vectorh_3 = og.AttributeRole.VECTOR
        role_data.state.a_vectorh_3_array = og.AttributeRole.VECTOR
        return role_data

    class ValuesForInputs(og.DynamicAttributeAccess):
        LOCAL_PROPERTY_NAMES = {"a_bool", "a_colord_3", "a_colord_4", "a_colorf_3", "a_colorf_4", "a_colorh_3", "a_colorh_4", "a_double", "a_double_2", "a_double_3", "a_double_4", "a_execution", "a_float", "a_float_2", "a_float_3", "a_float_4", "a_frame_4", "a_half", "a_half_2", "a_half_3", "a_half_4", "a_int", "a_int64", "a_int_2", "a_int_3", "a_int_4", "a_matrixd_2", "a_matrixd_3", "a_matrixd_4", "a_normald_3", "a_normalf_3", "a_normalh_3", "a_objectId", "a_path", "a_pointd_3", "a_pointf_3", "a_pointh_3", "a_quatd_4", "a_quatf_4", "a_quath_4", "a_string", "a_texcoordd_2", "a_texcoordd_3", "a_texcoordf_2", "a_texcoordf_3", "a_texcoordh_2", "a_texcoordh_3", "a_timecode", "a_token", "a_uchar", "a_uint", "a_uint64", "a_vectord_3", "a_vectorf_3", "a_vectorh_3", "doNotCompute", "_setting_locked", "_batchedReadAttributes", "_batchedReadValues"}
        """Helper class that creates natural hierarchical access to input attributes"""
        def __init__(self, node: og.Node, attributes, dynamic_attributes: og.DynamicAttributeInterface):
            """Initialize simplified access for the attribute data"""
            context = node.get_graph().get_default_graph_context()
            super().__init__(context, node, attributes, dynamic_attributes)
            self.__bundles = og.BundleContainer(context, node, attributes, [], read_only=True, gpu_ptr_kinds={})
            self._batchedReadAttributes = [self._attributes.a_bool, self._attributes.a_colord_3, self._attributes.a_colord_4, self._attributes.a_colorf_3, self._attributes.a_colorf_4, self._attributes.a_colorh_3, self._attributes.a_colorh_4, self._attributes.a_double, self._attributes.a_double_2, self._attributes.a_double_3, self._attributes.a_double_4, self._attributes.a_execution, self._attributes.a_float, self._attributes.a_float_2, self._attributes.a_float_3, self._attributes.a_float_4, self._attributes.a_frame_4, self._attributes.a_half, self._attributes.a_half_2, self._attributes.a_half_3, self._attributes.a_half_4, self._attributes.a_int, self._attributes.a_int64, self._attributes.a_int_2, self._attributes.a_int_3, self._attributes.a_int_4, self._attributes.a_matrixd_2, self._attributes.a_matrixd_3, self._attributes.a_matrixd_4, self._attributes.a_normald_3, self._attributes.a_normalf_3, self._attributes.a_normalh_3, self._attributes.a_objectId, self._attributes.a_path, self._attributes.a_pointd_3, self._attributes.a_pointf_3, self._attributes.a_pointh_3, self._attributes.a_quatd_4, self._attributes.a_quatf_4, self._attributes.a_quath_4, self._attributes.a_string, self._attributes.a_texcoordd_2, self._attributes.a_texcoordd_3, self._attributes.a_texcoordf_2, self._attributes.a_texcoordf_3, self._attributes.a_texcoordh_2, self._attributes.a_texcoordh_3, self._attributes.a_timecode, self._attributes.a_token, self._attributes.a_uchar, self._attributes.a_uint, self._attributes.a_uint64, self._attributes.a_vectord_3, self._attributes.a_vectorf_3, self._attributes.a_vectorh_3, self._attributes.doNotCompute]
            self._batchedReadValues = [False, [1.0, 2.0, 3.0], [1.0, 2.0, 3.0, 4.0], [1.0, 2.0, 3.0], [1.0, 2.0, 3.0, 4.0], [1.0, 2.0, 3.0], [1.0, 2.0, 3.0, 4.0], 1.0, [1.0, 2.0], [1.0, 2.0, 3.0], [1.0, 2.0, 3.0, 4.0], 1, 1.0, [1.0, 2.0], [1.0, 2.0, 3.0], [1.0, 2.0, 3.0, 4.0], [[1.0, 2.0, 3.0, 4.0], [5.0, 6.0, 7.0, 8.0], [9.0, 10.0, 11.0, 12.0], [13.0, 14.0, 15.0, 16.0]], 1.0, [1.0, 2.0], [1.0, 2.0, 3.0], [1.0, 2.0, 3.0, 4.0], 1, 12345, [1, 2], [1, 2, 3], [1, 2, 3, 4], [[1.0, 2.0], [3.0, 4.0]], [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]], [[1.0, 2.0, 3.0, 4.0], [5.0, 6.0, 7.0, 8.0], [9.0, 10.0, 11.0, 12.0], [13.0, 14.0, 15.0, 16.0]], [1.0, 2.0, 3.0], [1.0, 2.0, 3.0], [1.0, 2.0, 3.0], 1, "/Input", [1.0, 2.0, 3.0], [1.0, 2.0, 3.0], [1.0, 2.0, 3.0], [1.0, 2.0, 3.0, 4.0], [1.0, 2.0, 3.0, 4.0], [1.0, 2.0, 3.0, 4.0], "Rey", [1.0, 2.0], [1.0, 2.0, 3.0], [1.0, 2.0], [1.0, 2.0, 3.0], [1.0, 2.0], [1.0, 2.0, 3.0], 1.0, "Sith", 1, 1, 1, [1.0, 2.0, 3.0], [1.0, 2.0, 3.0], [1.0, 2.0, 3.0], True]

        @property
        def a_bool_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_bool_array)
            return data_view.get()

        @a_bool_array.setter
        def a_bool_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_bool_array)
            data_view = og.AttributeValueHelper(self._attributes.a_bool_array)
            data_view.set(value)
            self.a_bool_array_size = data_view.get_array_size()

        @property
        def a_bundle(self) -> og.BundleContents:
            """Get the bundle wrapper class for the attribute inputs.a_bundle"""
            return self.__bundles.a_bundle

        @property
        def a_colord_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colord_3_array)
            return data_view.get()

        @a_colord_3_array.setter
        def a_colord_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_colord_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_colord_3_array)
            data_view.set(value)
            self.a_colord_3_array_size = data_view.get_array_size()

        @property
        def a_colord_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colord_4_array)
            return data_view.get()

        @a_colord_4_array.setter
        def a_colord_4_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_colord_4_array)
            data_view = og.AttributeValueHelper(self._attributes.a_colord_4_array)
            data_view.set(value)
            self.a_colord_4_array_size = data_view.get_array_size()

        @property
        def a_colorf_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colorf_3_array)
            return data_view.get()

        @a_colorf_3_array.setter
        def a_colorf_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_colorf_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_colorf_3_array)
            data_view.set(value)
            self.a_colorf_3_array_size = data_view.get_array_size()

        @property
        def a_colorf_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colorf_4_array)
            return data_view.get()

        @a_colorf_4_array.setter
        def a_colorf_4_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_colorf_4_array)
            data_view = og.AttributeValueHelper(self._attributes.a_colorf_4_array)
            data_view.set(value)
            self.a_colorf_4_array_size = data_view.get_array_size()

        @property
        def a_colorh_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colorh_3_array)
            return data_view.get()

        @a_colorh_3_array.setter
        def a_colorh_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_colorh_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_colorh_3_array)
            data_view.set(value)
            self.a_colorh_3_array_size = data_view.get_array_size()

        @property
        def a_colorh_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colorh_4_array)
            return data_view.get()

        @a_colorh_4_array.setter
        def a_colorh_4_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_colorh_4_array)
            data_view = og.AttributeValueHelper(self._attributes.a_colorh_4_array)
            data_view.set(value)
            self.a_colorh_4_array_size = data_view.get_array_size()

        @property
        def a_double_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_double_2_array)
            return data_view.get()

        @a_double_2_array.setter
        def a_double_2_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_double_2_array)
            data_view = og.AttributeValueHelper(self._attributes.a_double_2_array)
            data_view.set(value)
            self.a_double_2_array_size = data_view.get_array_size()

        @property
        def a_double_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_double_3_array)
            return data_view.get()

        @a_double_3_array.setter
        def a_double_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_double_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_double_3_array)
            data_view.set(value)
            self.a_double_3_array_size = data_view.get_array_size()

        @property
        def a_double_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_double_4_array)
            return data_view.get()

        @a_double_4_array.setter
        def a_double_4_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_double_4_array)
            data_view = og.AttributeValueHelper(self._attributes.a_double_4_array)
            data_view.set(value)
            self.a_double_4_array_size = data_view.get_array_size()

        @property
        def a_double_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_double_array)
            return data_view.get()

        @a_double_array.setter
        def a_double_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_double_array)
            data_view = og.AttributeValueHelper(self._attributes.a_double_array)
            data_view.set(value)
            self.a_double_array_size = data_view.get_array_size()

        @property
        def a_float_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_float_2_array)
            return data_view.get()

        @a_float_2_array.setter
        def a_float_2_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_float_2_array)
            data_view = og.AttributeValueHelper(self._attributes.a_float_2_array)
            data_view.set(value)
            self.a_float_2_array_size = data_view.get_array_size()

        @property
        def a_float_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_float_3_array)
            return data_view.get()

        @a_float_3_array.setter
        def a_float_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_float_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_float_3_array)
            data_view.set(value)
            self.a_float_3_array_size = data_view.get_array_size()

        @property
        def a_float_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_float_4_array)
            return data_view.get()

        @a_float_4_array.setter
        def a_float_4_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_float_4_array)
            data_view = og.AttributeValueHelper(self._attributes.a_float_4_array)
            data_view.set(value)
            self.a_float_4_array_size = data_view.get_array_size()

        @property
        def a_float_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_float_array)
            return data_view.get()

        @a_float_array.setter
        def a_float_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_float_array)
            data_view = og.AttributeValueHelper(self._attributes.a_float_array)
            data_view.set(value)
            self.a_float_array_size = data_view.get_array_size()

        @property
        def a_frame_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_frame_4_array)
            return data_view.get()

        @a_frame_4_array.setter
        def a_frame_4_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_frame_4_array)
            data_view = og.AttributeValueHelper(self._attributes.a_frame_4_array)
            data_view.set(value)
            self.a_frame_4_array_size = data_view.get_array_size()

        @property
        def a_half_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_half_2_array)
            return data_view.get()

        @a_half_2_array.setter
        def a_half_2_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_half_2_array)
            data_view = og.AttributeValueHelper(self._attributes.a_half_2_array)
            data_view.set(value)
            self.a_half_2_array_size = data_view.get_array_size()

        @property
        def a_half_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_half_3_array)
            return data_view.get()

        @a_half_3_array.setter
        def a_half_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_half_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_half_3_array)
            data_view.set(value)
            self.a_half_3_array_size = data_view.get_array_size()

        @property
        def a_half_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_half_4_array)
            return data_view.get()

        @a_half_4_array.setter
        def a_half_4_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_half_4_array)
            data_view = og.AttributeValueHelper(self._attributes.a_half_4_array)
            data_view.set(value)
            self.a_half_4_array_size = data_view.get_array_size()

        @property
        def a_half_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_half_array)
            return data_view.get()

        @a_half_array.setter
        def a_half_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_half_array)
            data_view = og.AttributeValueHelper(self._attributes.a_half_array)
            data_view.set(value)
            self.a_half_array_size = data_view.get_array_size()

        @property
        def a_int64_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int64_array)
            return data_view.get()

        @a_int64_array.setter
        def a_int64_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_int64_array)
            data_view = og.AttributeValueHelper(self._attributes.a_int64_array)
            data_view.set(value)
            self.a_int64_array_size = data_view.get_array_size()

        @property
        def a_int_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int_2_array)
            return data_view.get()

        @a_int_2_array.setter
        def a_int_2_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_int_2_array)
            data_view = og.AttributeValueHelper(self._attributes.a_int_2_array)
            data_view.set(value)
            self.a_int_2_array_size = data_view.get_array_size()

        @property
        def a_int_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int_3_array)
            return data_view.get()

        @a_int_3_array.setter
        def a_int_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_int_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_int_3_array)
            data_view.set(value)
            self.a_int_3_array_size = data_view.get_array_size()

        @property
        def a_int_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int_4_array)
            return data_view.get()

        @a_int_4_array.setter
        def a_int_4_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_int_4_array)
            data_view = og.AttributeValueHelper(self._attributes.a_int_4_array)
            data_view.set(value)
            self.a_int_4_array_size = data_view.get_array_size()

        @property
        def a_int_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int_array)
            return data_view.get()

        @a_int_array.setter
        def a_int_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_int_array)
            data_view = og.AttributeValueHelper(self._attributes.a_int_array)
            data_view.set(value)
            self.a_int_array_size = data_view.get_array_size()

        @property
        def a_matrixd_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_2_array)
            return data_view.get()

        @a_matrixd_2_array.setter
        def a_matrixd_2_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_matrixd_2_array)
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_2_array)
            data_view.set(value)
            self.a_matrixd_2_array_size = data_view.get_array_size()

        @property
        def a_matrixd_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_3_array)
            return data_view.get()

        @a_matrixd_3_array.setter
        def a_matrixd_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_matrixd_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_3_array)
            data_view.set(value)
            self.a_matrixd_3_array_size = data_view.get_array_size()

        @property
        def a_matrixd_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_4_array)
            return data_view.get()

        @a_matrixd_4_array.setter
        def a_matrixd_4_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_matrixd_4_array)
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_4_array)
            data_view.set(value)
            self.a_matrixd_4_array_size = data_view.get_array_size()

        @property
        def a_normald_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_normald_3_array)
            return data_view.get()

        @a_normald_3_array.setter
        def a_normald_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_normald_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_normald_3_array)
            data_view.set(value)
            self.a_normald_3_array_size = data_view.get_array_size()

        @property
        def a_normalf_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_normalf_3_array)
            return data_view.get()

        @a_normalf_3_array.setter
        def a_normalf_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_normalf_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_normalf_3_array)
            data_view.set(value)
            self.a_normalf_3_array_size = data_view.get_array_size()

        @property
        def a_normalh_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_normalh_3_array)
            return data_view.get()

        @a_normalh_3_array.setter
        def a_normalh_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_normalh_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_normalh_3_array)
            data_view.set(value)
            self.a_normalh_3_array_size = data_view.get_array_size()

        @property
        def a_objectId_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_objectId_array)
            return data_view.get()

        @a_objectId_array.setter
        def a_objectId_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_objectId_array)
            data_view = og.AttributeValueHelper(self._attributes.a_objectId_array)
            data_view.set(value)
            self.a_objectId_array_size = data_view.get_array_size()

        @property
        def a_pointd_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_pointd_3_array)
            return data_view.get()

        @a_pointd_3_array.setter
        def a_pointd_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_pointd_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_pointd_3_array)
            data_view.set(value)
            self.a_pointd_3_array_size = data_view.get_array_size()

        @property
        def a_pointf_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_pointf_3_array)
            return data_view.get()

        @a_pointf_3_array.setter
        def a_pointf_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_pointf_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_pointf_3_array)
            data_view.set(value)
            self.a_pointf_3_array_size = data_view.get_array_size()

        @property
        def a_pointh_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_pointh_3_array)
            return data_view.get()

        @a_pointh_3_array.setter
        def a_pointh_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_pointh_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_pointh_3_array)
            data_view.set(value)
            self.a_pointh_3_array_size = data_view.get_array_size()

        @property
        def a_quatd_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_quatd_4_array)
            return data_view.get()

        @a_quatd_4_array.setter
        def a_quatd_4_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_quatd_4_array)
            data_view = og.AttributeValueHelper(self._attributes.a_quatd_4_array)
            data_view.set(value)
            self.a_quatd_4_array_size = data_view.get_array_size()

        @property
        def a_quatf_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_quatf_4_array)
            return data_view.get()

        @a_quatf_4_array.setter
        def a_quatf_4_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_quatf_4_array)
            data_view = og.AttributeValueHelper(self._attributes.a_quatf_4_array)
            data_view.set(value)
            self.a_quatf_4_array_size = data_view.get_array_size()

        @property
        def a_quath_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_quath_4_array)
            return data_view.get()

        @a_quath_4_array.setter
        def a_quath_4_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_quath_4_array)
            data_view = og.AttributeValueHelper(self._attributes.a_quath_4_array)
            data_view.set(value)
            self.a_quath_4_array_size = data_view.get_array_size()

        @property
        def a_target(self):
            data_view = og.AttributeValueHelper(self._attributes.a_target)
            return data_view.get()

        @a_target.setter
        def a_target(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_target)
            data_view = og.AttributeValueHelper(self._attributes.a_target)
            data_view.set(value)
            self.a_target_size = data_view.get_array_size()

        @property
        def a_texcoordd_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordd_2_array)
            return data_view.get()

        @a_texcoordd_2_array.setter
        def a_texcoordd_2_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_texcoordd_2_array)
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordd_2_array)
            data_view.set(value)
            self.a_texcoordd_2_array_size = data_view.get_array_size()

        @property
        def a_texcoordd_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordd_3_array)
            return data_view.get()

        @a_texcoordd_3_array.setter
        def a_texcoordd_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_texcoordd_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordd_3_array)
            data_view.set(value)
            self.a_texcoordd_3_array_size = data_view.get_array_size()

        @property
        def a_texcoordf_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordf_2_array)
            return data_view.get()

        @a_texcoordf_2_array.setter
        def a_texcoordf_2_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_texcoordf_2_array)
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordf_2_array)
            data_view.set(value)
            self.a_texcoordf_2_array_size = data_view.get_array_size()

        @property
        def a_texcoordf_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordf_3_array)
            return data_view.get()

        @a_texcoordf_3_array.setter
        def a_texcoordf_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_texcoordf_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordf_3_array)
            data_view.set(value)
            self.a_texcoordf_3_array_size = data_view.get_array_size()

        @property
        def a_texcoordh_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordh_2_array)
            return data_view.get()

        @a_texcoordh_2_array.setter
        def a_texcoordh_2_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_texcoordh_2_array)
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordh_2_array)
            data_view.set(value)
            self.a_texcoordh_2_array_size = data_view.get_array_size()

        @property
        def a_texcoordh_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordh_3_array)
            return data_view.get()

        @a_texcoordh_3_array.setter
        def a_texcoordh_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_texcoordh_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordh_3_array)
            data_view.set(value)
            self.a_texcoordh_3_array_size = data_view.get_array_size()

        @property
        def a_timecode_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_timecode_array)
            return data_view.get()

        @a_timecode_array.setter
        def a_timecode_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_timecode_array)
            data_view = og.AttributeValueHelper(self._attributes.a_timecode_array)
            data_view.set(value)
            self.a_timecode_array_size = data_view.get_array_size()

        @property
        def a_token_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_token_array)
            return data_view.get()

        @a_token_array.setter
        def a_token_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_token_array)
            data_view = og.AttributeValueHelper(self._attributes.a_token_array)
            data_view.set(value)
            self.a_token_array_size = data_view.get_array_size()

        @property
        def a_uchar_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_uchar_array)
            return data_view.get()

        @a_uchar_array.setter
        def a_uchar_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_uchar_array)
            data_view = og.AttributeValueHelper(self._attributes.a_uchar_array)
            data_view.set(value)
            self.a_uchar_array_size = data_view.get_array_size()

        @property
        def a_uint64_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_uint64_array)
            return data_view.get()

        @a_uint64_array.setter
        def a_uint64_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_uint64_array)
            data_view = og.AttributeValueHelper(self._attributes.a_uint64_array)
            data_view.set(value)
            self.a_uint64_array_size = data_view.get_array_size()

        @property
        def a_uint_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_uint_array)
            return data_view.get()

        @a_uint_array.setter
        def a_uint_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_uint_array)
            data_view = og.AttributeValueHelper(self._attributes.a_uint_array)
            data_view.set(value)
            self.a_uint_array_size = data_view.get_array_size()

        @property
        def a_vectord_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_vectord_3_array)
            return data_view.get()

        @a_vectord_3_array.setter
        def a_vectord_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_vectord_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_vectord_3_array)
            data_view.set(value)
            self.a_vectord_3_array_size = data_view.get_array_size()

        @property
        def a_vectorf_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_vectorf_3_array)
            return data_view.get()

        @a_vectorf_3_array.setter
        def a_vectorf_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_vectorf_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_vectorf_3_array)
            data_view.set(value)
            self.a_vectorf_3_array_size = data_view.get_array_size()

        @property
        def a_vectorh_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_vectorh_3_array)
            return data_view.get()

        @a_vectorh_3_array.setter
        def a_vectorh_3_array(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.a_vectorh_3_array)
            data_view = og.AttributeValueHelper(self._attributes.a_vectorh_3_array)
            data_view.set(value)
            self.a_vectorh_3_array_size = data_view.get_array_size()

        @property
        def a_bool(self):
            return self._batchedReadValues[0]

        @a_bool.setter
        def a_bool(self, value):
            self._batchedReadValues[0] = value

        @property
        def a_colord_3(self):
            return self._batchedReadValues[1]

        @a_colord_3.setter
        def a_colord_3(self, value):
            self._batchedReadValues[1] = value

        @property
        def a_colord_4(self):
            return self._batchedReadValues[2]

        @a_colord_4.setter
        def a_colord_4(self, value):
            self._batchedReadValues[2] = value

        @property
        def a_colorf_3(self):
            return self._batchedReadValues[3]

        @a_colorf_3.setter
        def a_colorf_3(self, value):
            self._batchedReadValues[3] = value

        @property
        def a_colorf_4(self):
            return self._batchedReadValues[4]

        @a_colorf_4.setter
        def a_colorf_4(self, value):
            self._batchedReadValues[4] = value

        @property
        def a_colorh_3(self):
            return self._batchedReadValues[5]

        @a_colorh_3.setter
        def a_colorh_3(self, value):
            self._batchedReadValues[5] = value

        @property
        def a_colorh_4(self):
            return self._batchedReadValues[6]

        @a_colorh_4.setter
        def a_colorh_4(self, value):
            self._batchedReadValues[6] = value

        @property
        def a_double(self):
            return self._batchedReadValues[7]

        @a_double.setter
        def a_double(self, value):
            self._batchedReadValues[7] = value

        @property
        def a_double_2(self):
            return self._batchedReadValues[8]

        @a_double_2.setter
        def a_double_2(self, value):
            self._batchedReadValues[8] = value

        @property
        def a_double_3(self):
            return self._batchedReadValues[9]

        @a_double_3.setter
        def a_double_3(self, value):
            self._batchedReadValues[9] = value

        @property
        def a_double_4(self):
            return self._batchedReadValues[10]

        @a_double_4.setter
        def a_double_4(self, value):
            self._batchedReadValues[10] = value

        @property
        def a_execution(self):
            return self._batchedReadValues[11]

        @a_execution.setter
        def a_execution(self, value):
            self._batchedReadValues[11] = value

        @property
        def a_float(self):
            return self._batchedReadValues[12]

        @a_float.setter
        def a_float(self, value):
            self._batchedReadValues[12] = value

        @property
        def a_float_2(self):
            return self._batchedReadValues[13]

        @a_float_2.setter
        def a_float_2(self, value):
            self._batchedReadValues[13] = value

        @property
        def a_float_3(self):
            return self._batchedReadValues[14]

        @a_float_3.setter
        def a_float_3(self, value):
            self._batchedReadValues[14] = value

        @property
        def a_float_4(self):
            return self._batchedReadValues[15]

        @a_float_4.setter
        def a_float_4(self, value):
            self._batchedReadValues[15] = value

        @property
        def a_frame_4(self):
            return self._batchedReadValues[16]

        @a_frame_4.setter
        def a_frame_4(self, value):
            self._batchedReadValues[16] = value

        @property
        def a_half(self):
            return self._batchedReadValues[17]

        @a_half.setter
        def a_half(self, value):
            self._batchedReadValues[17] = value

        @property
        def a_half_2(self):
            return self._batchedReadValues[18]

        @a_half_2.setter
        def a_half_2(self, value):
            self._batchedReadValues[18] = value

        @property
        def a_half_3(self):
            return self._batchedReadValues[19]

        @a_half_3.setter
        def a_half_3(self, value):
            self._batchedReadValues[19] = value

        @property
        def a_half_4(self):
            return self._batchedReadValues[20]

        @a_half_4.setter
        def a_half_4(self, value):
            self._batchedReadValues[20] = value

        @property
        def a_int(self):
            return self._batchedReadValues[21]

        @a_int.setter
        def a_int(self, value):
            self._batchedReadValues[21] = value

        @property
        def a_int64(self):
            return self._batchedReadValues[22]

        @a_int64.setter
        def a_int64(self, value):
            self._batchedReadValues[22] = value

        @property
        def a_int_2(self):
            return self._batchedReadValues[23]

        @a_int_2.setter
        def a_int_2(self, value):
            self._batchedReadValues[23] = value

        @property
        def a_int_3(self):
            return self._batchedReadValues[24]

        @a_int_3.setter
        def a_int_3(self, value):
            self._batchedReadValues[24] = value

        @property
        def a_int_4(self):
            return self._batchedReadValues[25]

        @a_int_4.setter
        def a_int_4(self, value):
            self._batchedReadValues[25] = value

        @property
        def a_matrixd_2(self):
            return self._batchedReadValues[26]

        @a_matrixd_2.setter
        def a_matrixd_2(self, value):
            self._batchedReadValues[26] = value

        @property
        def a_matrixd_3(self):
            return self._batchedReadValues[27]

        @a_matrixd_3.setter
        def a_matrixd_3(self, value):
            self._batchedReadValues[27] = value

        @property
        def a_matrixd_4(self):
            return self._batchedReadValues[28]

        @a_matrixd_4.setter
        def a_matrixd_4(self, value):
            self._batchedReadValues[28] = value

        @property
        def a_normald_3(self):
            return self._batchedReadValues[29]

        @a_normald_3.setter
        def a_normald_3(self, value):
            self._batchedReadValues[29] = value

        @property
        def a_normalf_3(self):
            return self._batchedReadValues[30]

        @a_normalf_3.setter
        def a_normalf_3(self, value):
            self._batchedReadValues[30] = value

        @property
        def a_normalh_3(self):
            return self._batchedReadValues[31]

        @a_normalh_3.setter
        def a_normalh_3(self, value):
            self._batchedReadValues[31] = value

        @property
        def a_objectId(self):
            return self._batchedReadValues[32]

        @a_objectId.setter
        def a_objectId(self, value):
            self._batchedReadValues[32] = value

        @property
        def a_path(self):
            return self._batchedReadValues[33]

        @a_path.setter
        def a_path(self, value):
            self._batchedReadValues[33] = value

        @property
        def a_pointd_3(self):
            return self._batchedReadValues[34]

        @a_pointd_3.setter
        def a_pointd_3(self, value):
            self._batchedReadValues[34] = value

        @property
        def a_pointf_3(self):
            return self._batchedReadValues[35]

        @a_pointf_3.setter
        def a_pointf_3(self, value):
            self._batchedReadValues[35] = value

        @property
        def a_pointh_3(self):
            return self._batchedReadValues[36]

        @a_pointh_3.setter
        def a_pointh_3(self, value):
            self._batchedReadValues[36] = value

        @property
        def a_quatd_4(self):
            return self._batchedReadValues[37]

        @a_quatd_4.setter
        def a_quatd_4(self, value):
            self._batchedReadValues[37] = value

        @property
        def a_quatf_4(self):
            return self._batchedReadValues[38]

        @a_quatf_4.setter
        def a_quatf_4(self, value):
            self._batchedReadValues[38] = value

        @property
        def a_quath_4(self):
            return self._batchedReadValues[39]

        @a_quath_4.setter
        def a_quath_4(self, value):
            self._batchedReadValues[39] = value

        @property
        def a_string(self):
            return self._batchedReadValues[40]

        @a_string.setter
        def a_string(self, value):
            self._batchedReadValues[40] = value

        @property
        def a_texcoordd_2(self):
            return self._batchedReadValues[41]

        @a_texcoordd_2.setter
        def a_texcoordd_2(self, value):
            self._batchedReadValues[41] = value

        @property
        def a_texcoordd_3(self):
            return self._batchedReadValues[42]

        @a_texcoordd_3.setter
        def a_texcoordd_3(self, value):
            self._batchedReadValues[42] = value

        @property
        def a_texcoordf_2(self):
            return self._batchedReadValues[43]

        @a_texcoordf_2.setter
        def a_texcoordf_2(self, value):
            self._batchedReadValues[43] = value

        @property
        def a_texcoordf_3(self):
            return self._batchedReadValues[44]

        @a_texcoordf_3.setter
        def a_texcoordf_3(self, value):
            self._batchedReadValues[44] = value

        @property
        def a_texcoordh_2(self):
            return self._batchedReadValues[45]

        @a_texcoordh_2.setter
        def a_texcoordh_2(self, value):
            self._batchedReadValues[45] = value

        @property
        def a_texcoordh_3(self):
            return self._batchedReadValues[46]

        @a_texcoordh_3.setter
        def a_texcoordh_3(self, value):
            self._batchedReadValues[46] = value

        @property
        def a_timecode(self):
            return self._batchedReadValues[47]

        @a_timecode.setter
        def a_timecode(self, value):
            self._batchedReadValues[47] = value

        @property
        def a_token(self):
            return self._batchedReadValues[48]

        @a_token.setter
        def a_token(self, value):
            self._batchedReadValues[48] = value

        @property
        def a_uchar(self):
            return self._batchedReadValues[49]

        @a_uchar.setter
        def a_uchar(self, value):
            self._batchedReadValues[49] = value

        @property
        def a_uint(self):
            return self._batchedReadValues[50]

        @a_uint.setter
        def a_uint(self, value):
            self._batchedReadValues[50] = value

        @property
        def a_uint64(self):
            return self._batchedReadValues[51]

        @a_uint64.setter
        def a_uint64(self, value):
            self._batchedReadValues[51] = value

        @property
        def a_vectord_3(self):
            return self._batchedReadValues[52]

        @a_vectord_3.setter
        def a_vectord_3(self, value):
            self._batchedReadValues[52] = value

        @property
        def a_vectorf_3(self):
            return self._batchedReadValues[53]

        @a_vectorf_3.setter
        def a_vectorf_3(self, value):
            self._batchedReadValues[53] = value

        @property
        def a_vectorh_3(self):
            return self._batchedReadValues[54]

        @a_vectorh_3.setter
        def a_vectorh_3(self, value):
            self._batchedReadValues[54] = value

        @property
        def doNotCompute(self):
            return self._batchedReadValues[55]

        @doNotCompute.setter
        def doNotCompute(self, value):
            self._batchedReadValues[55] = value

        def __getattr__(self, item: str):
            if item in self.LOCAL_PROPERTY_NAMES:
                return object.__getattribute__(self, item)
            else:
                return super().__getattr__(item)

        def __setattr__(self, item: str, new_value):
            if item in self.LOCAL_PROPERTY_NAMES:
                object.__setattr__(self, item, new_value)
            else:
                super().__setattr__(item, new_value)

        def _prefetch(self):
            readAttributes = self._batchedReadAttributes
            newValues = _og._prefetch_input_attributes_data(readAttributes)
            if len(readAttributes) == len(newValues):
                self._batchedReadValues = newValues

    class ValuesForOutputs(og.DynamicAttributeAccess):
        LOCAL_PROPERTY_NAMES = {"a_bool", "a_colord_3", "a_colord_4", "a_colorf_3", "a_colorf_4", "a_colorh_3", "a_colorh_4", "a_double", "a_double_2", "a_double_3", "a_double_4", "a_execution", "a_float", "a_float_2", "a_float_3", "a_float_4", "a_frame_4", "a_half", "a_half_2", "a_half_3", "a_half_4", "a_int", "a_int64", "a_int_2", "a_int_3", "a_int_4", "a_matrixd_2", "a_matrixd_3", "a_matrixd_4", "a_normald_3", "a_normalf_3", "a_normalh_3", "a_objectId", "a_path", "a_pointd_3", "a_pointf_3", "a_pointh_3", "a_quatd_4", "a_quatf_4", "a_quath_4", "a_string", "a_texcoordd_2", "a_texcoordd_3", "a_texcoordf_2", "a_texcoordf_3", "a_texcoordh_2", "a_texcoordh_3", "a_timecode", "a_token", "a_uchar", "a_uint", "a_uint64", "a_vectord_3", "a_vectorf_3", "a_vectorh_3", "_batchedWriteValues"}
        """Helper class that creates natural hierarchical access to output attributes"""
        def __init__(self, node: og.Node, attributes, dynamic_attributes: og.DynamicAttributeInterface):
            """Initialize simplified access for the attribute data"""
            context = node.get_graph().get_default_graph_context()
            super().__init__(context, node, attributes, dynamic_attributes)
            self.__bundles = og.BundleContainer(context, node, attributes, [], read_only=False, gpu_ptr_kinds={})
            self.a_bool_array_size = 2
            self.a_colord_3_array_size = 2
            self.a_colord_4_array_size = 2
            self.a_colorf_3_array_size = 2
            self.a_colorf_4_array_size = 2
            self.a_colorh_3_array_size = 2
            self.a_colorh_4_array_size = 2
            self.a_double_2_array_size = 2
            self.a_double_3_array_size = 2
            self.a_double_4_array_size = 2
            self.a_double_array_size = 2
            self.a_float_2_array_size = 2
            self.a_float_3_array_size = 2
            self.a_float_4_array_size = 2
            self.a_float_array_size = 2
            self.a_frame_4_array_size = 2
            self.a_half_2_array_size = 2
            self.a_half_3_array_size = 2
            self.a_half_4_array_size = 2
            self.a_half_array_size = 2
            self.a_int64_array_size = 2
            self.a_int_2_array_size = 2
            self.a_int_3_array_size = 2
            self.a_int_4_array_size = 2
            self.a_int_array_size = 2
            self.a_matrixd_2_array_size = 2
            self.a_matrixd_3_array_size = 2
            self.a_matrixd_4_array_size = 2
            self.a_normald_3_array_size = 2
            self.a_normalf_3_array_size = 2
            self.a_normalh_3_array_size = 2
            self.a_objectId_array_size = 2
            self.a_path_size = 7
            self.a_pointd_3_array_size = 2
            self.a_pointf_3_array_size = 2
            self.a_pointh_3_array_size = 2
            self.a_quatd_4_array_size = 2
            self.a_quatf_4_array_size = 2
            self.a_quath_4_array_size = 2
            self.a_string_size = 5
            self.a_target_size = None
            self.a_texcoordd_2_array_size = 2
            self.a_texcoordd_3_array_size = 2
            self.a_texcoordf_2_array_size = 2
            self.a_texcoordf_3_array_size = 2
            self.a_texcoordh_2_array_size = 2
            self.a_texcoordh_3_array_size = 2
            self.a_timecode_array_size = 2
            self.a_token_array_size = 2
            self.a_uchar_array_size = 2
            self.a_uint64_array_size = 2
            self.a_uint_array_size = 2
            self.a_vectord_3_array_size = 2
            self.a_vectorf_3_array_size = 2
            self.a_vectorh_3_array_size = 2
            self._batchedWriteValues = { }

        @property
        def a_bool_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_bool_array)
            return data_view.get(reserved_element_count=self.a_bool_array_size)

        @a_bool_array.setter
        def a_bool_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_bool_array)
            data_view.set(value)
            self.a_bool_array_size = data_view.get_array_size()

        @property
        def a_bundle(self) -> og.BundleContents:
            """Get the bundle wrapper class for the attribute outputs.a_bundle"""
            return self.__bundles.a_bundle

        @a_bundle.setter
        def a_bundle(self, bundle: og.BundleContents):
            """Overwrite the bundle attribute outputs.a_bundle with a new bundle"""
            if not isinstance(bundle, og.BundleContents):
                carb.log_error("Only bundle attributes can be assigned to another bundle attribute")
            self.__bundles.a_bundle.bundle = bundle

        @property
        def a_colord_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colord_3_array)
            return data_view.get(reserved_element_count=self.a_colord_3_array_size)

        @a_colord_3_array.setter
        def a_colord_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_colord_3_array)
            data_view.set(value)
            self.a_colord_3_array_size = data_view.get_array_size()

        @property
        def a_colord_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colord_4_array)
            return data_view.get(reserved_element_count=self.a_colord_4_array_size)

        @a_colord_4_array.setter
        def a_colord_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_colord_4_array)
            data_view.set(value)
            self.a_colord_4_array_size = data_view.get_array_size()

        @property
        def a_colorf_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colorf_3_array)
            return data_view.get(reserved_element_count=self.a_colorf_3_array_size)

        @a_colorf_3_array.setter
        def a_colorf_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_colorf_3_array)
            data_view.set(value)
            self.a_colorf_3_array_size = data_view.get_array_size()

        @property
        def a_colorf_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colorf_4_array)
            return data_view.get(reserved_element_count=self.a_colorf_4_array_size)

        @a_colorf_4_array.setter
        def a_colorf_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_colorf_4_array)
            data_view.set(value)
            self.a_colorf_4_array_size = data_view.get_array_size()

        @property
        def a_colorh_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colorh_3_array)
            return data_view.get(reserved_element_count=self.a_colorh_3_array_size)

        @a_colorh_3_array.setter
        def a_colorh_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_colorh_3_array)
            data_view.set(value)
            self.a_colorh_3_array_size = data_view.get_array_size()

        @property
        def a_colorh_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colorh_4_array)
            return data_view.get(reserved_element_count=self.a_colorh_4_array_size)

        @a_colorh_4_array.setter
        def a_colorh_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_colorh_4_array)
            data_view.set(value)
            self.a_colorh_4_array_size = data_view.get_array_size()

        @property
        def a_double_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_double_2_array)
            return data_view.get(reserved_element_count=self.a_double_2_array_size)

        @a_double_2_array.setter
        def a_double_2_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_double_2_array)
            data_view.set(value)
            self.a_double_2_array_size = data_view.get_array_size()

        @property
        def a_double_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_double_3_array)
            return data_view.get(reserved_element_count=self.a_double_3_array_size)

        @a_double_3_array.setter
        def a_double_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_double_3_array)
            data_view.set(value)
            self.a_double_3_array_size = data_view.get_array_size()

        @property
        def a_double_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_double_4_array)
            return data_view.get(reserved_element_count=self.a_double_4_array_size)

        @a_double_4_array.setter
        def a_double_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_double_4_array)
            data_view.set(value)
            self.a_double_4_array_size = data_view.get_array_size()

        @property
        def a_double_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_double_array)
            return data_view.get(reserved_element_count=self.a_double_array_size)

        @a_double_array.setter
        def a_double_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_double_array)
            data_view.set(value)
            self.a_double_array_size = data_view.get_array_size()

        @property
        def a_float_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_float_2_array)
            return data_view.get(reserved_element_count=self.a_float_2_array_size)

        @a_float_2_array.setter
        def a_float_2_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_float_2_array)
            data_view.set(value)
            self.a_float_2_array_size = data_view.get_array_size()

        @property
        def a_float_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_float_3_array)
            return data_view.get(reserved_element_count=self.a_float_3_array_size)

        @a_float_3_array.setter
        def a_float_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_float_3_array)
            data_view.set(value)
            self.a_float_3_array_size = data_view.get_array_size()

        @property
        def a_float_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_float_4_array)
            return data_view.get(reserved_element_count=self.a_float_4_array_size)

        @a_float_4_array.setter
        def a_float_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_float_4_array)
            data_view.set(value)
            self.a_float_4_array_size = data_view.get_array_size()

        @property
        def a_float_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_float_array)
            return data_view.get(reserved_element_count=self.a_float_array_size)

        @a_float_array.setter
        def a_float_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_float_array)
            data_view.set(value)
            self.a_float_array_size = data_view.get_array_size()

        @property
        def a_frame_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_frame_4_array)
            return data_view.get(reserved_element_count=self.a_frame_4_array_size)

        @a_frame_4_array.setter
        def a_frame_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_frame_4_array)
            data_view.set(value)
            self.a_frame_4_array_size = data_view.get_array_size()

        @property
        def a_half_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_half_2_array)
            return data_view.get(reserved_element_count=self.a_half_2_array_size)

        @a_half_2_array.setter
        def a_half_2_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_half_2_array)
            data_view.set(value)
            self.a_half_2_array_size = data_view.get_array_size()

        @property
        def a_half_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_half_3_array)
            return data_view.get(reserved_element_count=self.a_half_3_array_size)

        @a_half_3_array.setter
        def a_half_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_half_3_array)
            data_view.set(value)
            self.a_half_3_array_size = data_view.get_array_size()

        @property
        def a_half_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_half_4_array)
            return data_view.get(reserved_element_count=self.a_half_4_array_size)

        @a_half_4_array.setter
        def a_half_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_half_4_array)
            data_view.set(value)
            self.a_half_4_array_size = data_view.get_array_size()

        @property
        def a_half_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_half_array)
            return data_view.get(reserved_element_count=self.a_half_array_size)

        @a_half_array.setter
        def a_half_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_half_array)
            data_view.set(value)
            self.a_half_array_size = data_view.get_array_size()

        @property
        def a_int64_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int64_array)
            return data_view.get(reserved_element_count=self.a_int64_array_size)

        @a_int64_array.setter
        def a_int64_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_int64_array)
            data_view.set(value)
            self.a_int64_array_size = data_view.get_array_size()

        @property
        def a_int_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int_2_array)
            return data_view.get(reserved_element_count=self.a_int_2_array_size)

        @a_int_2_array.setter
        def a_int_2_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_int_2_array)
            data_view.set(value)
            self.a_int_2_array_size = data_view.get_array_size()

        @property
        def a_int_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int_3_array)
            return data_view.get(reserved_element_count=self.a_int_3_array_size)

        @a_int_3_array.setter
        def a_int_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_int_3_array)
            data_view.set(value)
            self.a_int_3_array_size = data_view.get_array_size()

        @property
        def a_int_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int_4_array)
            return data_view.get(reserved_element_count=self.a_int_4_array_size)

        @a_int_4_array.setter
        def a_int_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_int_4_array)
            data_view.set(value)
            self.a_int_4_array_size = data_view.get_array_size()

        @property
        def a_int_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int_array)
            return data_view.get(reserved_element_count=self.a_int_array_size)

        @a_int_array.setter
        def a_int_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_int_array)
            data_view.set(value)
            self.a_int_array_size = data_view.get_array_size()

        @property
        def a_matrixd_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_2_array)
            return data_view.get(reserved_element_count=self.a_matrixd_2_array_size)

        @a_matrixd_2_array.setter
        def a_matrixd_2_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_2_array)
            data_view.set(value)
            self.a_matrixd_2_array_size = data_view.get_array_size()

        @property
        def a_matrixd_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_3_array)
            return data_view.get(reserved_element_count=self.a_matrixd_3_array_size)

        @a_matrixd_3_array.setter
        def a_matrixd_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_3_array)
            data_view.set(value)
            self.a_matrixd_3_array_size = data_view.get_array_size()

        @property
        def a_matrixd_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_4_array)
            return data_view.get(reserved_element_count=self.a_matrixd_4_array_size)

        @a_matrixd_4_array.setter
        def a_matrixd_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_4_array)
            data_view.set(value)
            self.a_matrixd_4_array_size = data_view.get_array_size()

        @property
        def a_normald_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_normald_3_array)
            return data_view.get(reserved_element_count=self.a_normald_3_array_size)

        @a_normald_3_array.setter
        def a_normald_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_normald_3_array)
            data_view.set(value)
            self.a_normald_3_array_size = data_view.get_array_size()

        @property
        def a_normalf_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_normalf_3_array)
            return data_view.get(reserved_element_count=self.a_normalf_3_array_size)

        @a_normalf_3_array.setter
        def a_normalf_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_normalf_3_array)
            data_view.set(value)
            self.a_normalf_3_array_size = data_view.get_array_size()

        @property
        def a_normalh_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_normalh_3_array)
            return data_view.get(reserved_element_count=self.a_normalh_3_array_size)

        @a_normalh_3_array.setter
        def a_normalh_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_normalh_3_array)
            data_view.set(value)
            self.a_normalh_3_array_size = data_view.get_array_size()

        @property
        def a_objectId_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_objectId_array)
            return data_view.get(reserved_element_count=self.a_objectId_array_size)

        @a_objectId_array.setter
        def a_objectId_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_objectId_array)
            data_view.set(value)
            self.a_objectId_array_size = data_view.get_array_size()

        @property
        def a_pointd_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_pointd_3_array)
            return data_view.get(reserved_element_count=self.a_pointd_3_array_size)

        @a_pointd_3_array.setter
        def a_pointd_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_pointd_3_array)
            data_view.set(value)
            self.a_pointd_3_array_size = data_view.get_array_size()

        @property
        def a_pointf_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_pointf_3_array)
            return data_view.get(reserved_element_count=self.a_pointf_3_array_size)

        @a_pointf_3_array.setter
        def a_pointf_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_pointf_3_array)
            data_view.set(value)
            self.a_pointf_3_array_size = data_view.get_array_size()

        @property
        def a_pointh_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_pointh_3_array)
            return data_view.get(reserved_element_count=self.a_pointh_3_array_size)

        @a_pointh_3_array.setter
        def a_pointh_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_pointh_3_array)
            data_view.set(value)
            self.a_pointh_3_array_size = data_view.get_array_size()

        @property
        def a_quatd_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_quatd_4_array)
            return data_view.get(reserved_element_count=self.a_quatd_4_array_size)

        @a_quatd_4_array.setter
        def a_quatd_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_quatd_4_array)
            data_view.set(value)
            self.a_quatd_4_array_size = data_view.get_array_size()

        @property
        def a_quatf_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_quatf_4_array)
            return data_view.get(reserved_element_count=self.a_quatf_4_array_size)

        @a_quatf_4_array.setter
        def a_quatf_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_quatf_4_array)
            data_view.set(value)
            self.a_quatf_4_array_size = data_view.get_array_size()

        @property
        def a_quath_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_quath_4_array)
            return data_view.get(reserved_element_count=self.a_quath_4_array_size)

        @a_quath_4_array.setter
        def a_quath_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_quath_4_array)
            data_view.set(value)
            self.a_quath_4_array_size = data_view.get_array_size()

        @property
        def a_target(self):
            data_view = og.AttributeValueHelper(self._attributes.a_target)
            return data_view.get(reserved_element_count=self.a_target_size)

        @a_target.setter
        def a_target(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_target)
            data_view.set(value)
            self.a_target_size = data_view.get_array_size()

        @property
        def a_texcoordd_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordd_2_array)
            return data_view.get(reserved_element_count=self.a_texcoordd_2_array_size)

        @a_texcoordd_2_array.setter
        def a_texcoordd_2_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordd_2_array)
            data_view.set(value)
            self.a_texcoordd_2_array_size = data_view.get_array_size()

        @property
        def a_texcoordd_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordd_3_array)
            return data_view.get(reserved_element_count=self.a_texcoordd_3_array_size)

        @a_texcoordd_3_array.setter
        def a_texcoordd_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordd_3_array)
            data_view.set(value)
            self.a_texcoordd_3_array_size = data_view.get_array_size()

        @property
        def a_texcoordf_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordf_2_array)
            return data_view.get(reserved_element_count=self.a_texcoordf_2_array_size)

        @a_texcoordf_2_array.setter
        def a_texcoordf_2_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordf_2_array)
            data_view.set(value)
            self.a_texcoordf_2_array_size = data_view.get_array_size()

        @property
        def a_texcoordf_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordf_3_array)
            return data_view.get(reserved_element_count=self.a_texcoordf_3_array_size)

        @a_texcoordf_3_array.setter
        def a_texcoordf_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordf_3_array)
            data_view.set(value)
            self.a_texcoordf_3_array_size = data_view.get_array_size()

        @property
        def a_texcoordh_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordh_2_array)
            return data_view.get(reserved_element_count=self.a_texcoordh_2_array_size)

        @a_texcoordh_2_array.setter
        def a_texcoordh_2_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordh_2_array)
            data_view.set(value)
            self.a_texcoordh_2_array_size = data_view.get_array_size()

        @property
        def a_texcoordh_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordh_3_array)
            return data_view.get(reserved_element_count=self.a_texcoordh_3_array_size)

        @a_texcoordh_3_array.setter
        def a_texcoordh_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordh_3_array)
            data_view.set(value)
            self.a_texcoordh_3_array_size = data_view.get_array_size()

        @property
        def a_timecode_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_timecode_array)
            return data_view.get(reserved_element_count=self.a_timecode_array_size)

        @a_timecode_array.setter
        def a_timecode_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_timecode_array)
            data_view.set(value)
            self.a_timecode_array_size = data_view.get_array_size()

        @property
        def a_token_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_token_array)
            return data_view.get(reserved_element_count=self.a_token_array_size)

        @a_token_array.setter
        def a_token_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_token_array)
            data_view.set(value)
            self.a_token_array_size = data_view.get_array_size()

        @property
        def a_uchar_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_uchar_array)
            return data_view.get(reserved_element_count=self.a_uchar_array_size)

        @a_uchar_array.setter
        def a_uchar_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_uchar_array)
            data_view.set(value)
            self.a_uchar_array_size = data_view.get_array_size()

        @property
        def a_uint64_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_uint64_array)
            return data_view.get(reserved_element_count=self.a_uint64_array_size)

        @a_uint64_array.setter
        def a_uint64_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_uint64_array)
            data_view.set(value)
            self.a_uint64_array_size = data_view.get_array_size()

        @property
        def a_uint_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_uint_array)
            return data_view.get(reserved_element_count=self.a_uint_array_size)

        @a_uint_array.setter
        def a_uint_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_uint_array)
            data_view.set(value)
            self.a_uint_array_size = data_view.get_array_size()

        @property
        def a_vectord_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_vectord_3_array)
            return data_view.get(reserved_element_count=self.a_vectord_3_array_size)

        @a_vectord_3_array.setter
        def a_vectord_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_vectord_3_array)
            data_view.set(value)
            self.a_vectord_3_array_size = data_view.get_array_size()

        @property
        def a_vectorf_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_vectorf_3_array)
            return data_view.get(reserved_element_count=self.a_vectorf_3_array_size)

        @a_vectorf_3_array.setter
        def a_vectorf_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_vectorf_3_array)
            data_view.set(value)
            self.a_vectorf_3_array_size = data_view.get_array_size()

        @property
        def a_vectorh_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_vectorh_3_array)
            return data_view.get(reserved_element_count=self.a_vectorh_3_array_size)

        @a_vectorh_3_array.setter
        def a_vectorh_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_vectorh_3_array)
            data_view.set(value)
            self.a_vectorh_3_array_size = data_view.get_array_size()

        @property
        def a_bool(self):
            value = self._batchedWriteValues.get(self._attributes.a_bool)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_bool)
                return data_view.get()

        @a_bool.setter
        def a_bool(self, value):
            self._batchedWriteValues[self._attributes.a_bool] = value

        @property
        def a_colord_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_colord_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_colord_3)
                return data_view.get()

        @a_colord_3.setter
        def a_colord_3(self, value):
            self._batchedWriteValues[self._attributes.a_colord_3] = value

        @property
        def a_colord_4(self):
            value = self._batchedWriteValues.get(self._attributes.a_colord_4)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_colord_4)
                return data_view.get()

        @a_colord_4.setter
        def a_colord_4(self, value):
            self._batchedWriteValues[self._attributes.a_colord_4] = value

        @property
        def a_colorf_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_colorf_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_colorf_3)
                return data_view.get()

        @a_colorf_3.setter
        def a_colorf_3(self, value):
            self._batchedWriteValues[self._attributes.a_colorf_3] = value

        @property
        def a_colorf_4(self):
            value = self._batchedWriteValues.get(self._attributes.a_colorf_4)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_colorf_4)
                return data_view.get()

        @a_colorf_4.setter
        def a_colorf_4(self, value):
            self._batchedWriteValues[self._attributes.a_colorf_4] = value

        @property
        def a_colorh_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_colorh_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_colorh_3)
                return data_view.get()

        @a_colorh_3.setter
        def a_colorh_3(self, value):
            self._batchedWriteValues[self._attributes.a_colorh_3] = value

        @property
        def a_colorh_4(self):
            value = self._batchedWriteValues.get(self._attributes.a_colorh_4)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_colorh_4)
                return data_view.get()

        @a_colorh_4.setter
        def a_colorh_4(self, value):
            self._batchedWriteValues[self._attributes.a_colorh_4] = value

        @property
        def a_double(self):
            value = self._batchedWriteValues.get(self._attributes.a_double)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_double)
                return data_view.get()

        @a_double.setter
        def a_double(self, value):
            self._batchedWriteValues[self._attributes.a_double] = value

        @property
        def a_double_2(self):
            value = self._batchedWriteValues.get(self._attributes.a_double_2)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_double_2)
                return data_view.get()

        @a_double_2.setter
        def a_double_2(self, value):
            self._batchedWriteValues[self._attributes.a_double_2] = value

        @property
        def a_double_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_double_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_double_3)
                return data_view.get()

        @a_double_3.setter
        def a_double_3(self, value):
            self._batchedWriteValues[self._attributes.a_double_3] = value

        @property
        def a_double_4(self):
            value = self._batchedWriteValues.get(self._attributes.a_double_4)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_double_4)
                return data_view.get()

        @a_double_4.setter
        def a_double_4(self, value):
            self._batchedWriteValues[self._attributes.a_double_4] = value

        @property
        def a_execution(self):
            value = self._batchedWriteValues.get(self._attributes.a_execution)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_execution)
                return data_view.get()

        @a_execution.setter
        def a_execution(self, value):
            self._batchedWriteValues[self._attributes.a_execution] = value

        @property
        def a_float(self):
            value = self._batchedWriteValues.get(self._attributes.a_float)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_float)
                return data_view.get()

        @a_float.setter
        def a_float(self, value):
            self._batchedWriteValues[self._attributes.a_float] = value

        @property
        def a_float_2(self):
            value = self._batchedWriteValues.get(self._attributes.a_float_2)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_float_2)
                return data_view.get()

        @a_float_2.setter
        def a_float_2(self, value):
            self._batchedWriteValues[self._attributes.a_float_2] = value

        @property
        def a_float_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_float_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_float_3)
                return data_view.get()

        @a_float_3.setter
        def a_float_3(self, value):
            self._batchedWriteValues[self._attributes.a_float_3] = value

        @property
        def a_float_4(self):
            value = self._batchedWriteValues.get(self._attributes.a_float_4)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_float_4)
                return data_view.get()

        @a_float_4.setter
        def a_float_4(self, value):
            self._batchedWriteValues[self._attributes.a_float_4] = value

        @property
        def a_frame_4(self):
            value = self._batchedWriteValues.get(self._attributes.a_frame_4)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_frame_4)
                return data_view.get()

        @a_frame_4.setter
        def a_frame_4(self, value):
            self._batchedWriteValues[self._attributes.a_frame_4] = value

        @property
        def a_half(self):
            value = self._batchedWriteValues.get(self._attributes.a_half)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_half)
                return data_view.get()

        @a_half.setter
        def a_half(self, value):
            self._batchedWriteValues[self._attributes.a_half] = value

        @property
        def a_half_2(self):
            value = self._batchedWriteValues.get(self._attributes.a_half_2)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_half_2)
                return data_view.get()

        @a_half_2.setter
        def a_half_2(self, value):
            self._batchedWriteValues[self._attributes.a_half_2] = value

        @property
        def a_half_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_half_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_half_3)
                return data_view.get()

        @a_half_3.setter
        def a_half_3(self, value):
            self._batchedWriteValues[self._attributes.a_half_3] = value

        @property
        def a_half_4(self):
            value = self._batchedWriteValues.get(self._attributes.a_half_4)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_half_4)
                return data_view.get()

        @a_half_4.setter
        def a_half_4(self, value):
            self._batchedWriteValues[self._attributes.a_half_4] = value

        @property
        def a_int(self):
            value = self._batchedWriteValues.get(self._attributes.a_int)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_int)
                return data_view.get()

        @a_int.setter
        def a_int(self, value):
            self._batchedWriteValues[self._attributes.a_int] = value

        @property
        def a_int64(self):
            value = self._batchedWriteValues.get(self._attributes.a_int64)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_int64)
                return data_view.get()

        @a_int64.setter
        def a_int64(self, value):
            self._batchedWriteValues[self._attributes.a_int64] = value

        @property
        def a_int_2(self):
            value = self._batchedWriteValues.get(self._attributes.a_int_2)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_int_2)
                return data_view.get()

        @a_int_2.setter
        def a_int_2(self, value):
            self._batchedWriteValues[self._attributes.a_int_2] = value

        @property
        def a_int_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_int_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_int_3)
                return data_view.get()

        @a_int_3.setter
        def a_int_3(self, value):
            self._batchedWriteValues[self._attributes.a_int_3] = value

        @property
        def a_int_4(self):
            value = self._batchedWriteValues.get(self._attributes.a_int_4)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_int_4)
                return data_view.get()

        @a_int_4.setter
        def a_int_4(self, value):
            self._batchedWriteValues[self._attributes.a_int_4] = value

        @property
        def a_matrixd_2(self):
            value = self._batchedWriteValues.get(self._attributes.a_matrixd_2)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_matrixd_2)
                return data_view.get()

        @a_matrixd_2.setter
        def a_matrixd_2(self, value):
            self._batchedWriteValues[self._attributes.a_matrixd_2] = value

        @property
        def a_matrixd_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_matrixd_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_matrixd_3)
                return data_view.get()

        @a_matrixd_3.setter
        def a_matrixd_3(self, value):
            self._batchedWriteValues[self._attributes.a_matrixd_3] = value

        @property
        def a_matrixd_4(self):
            value = self._batchedWriteValues.get(self._attributes.a_matrixd_4)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_matrixd_4)
                return data_view.get()

        @a_matrixd_4.setter
        def a_matrixd_4(self, value):
            self._batchedWriteValues[self._attributes.a_matrixd_4] = value

        @property
        def a_normald_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_normald_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_normald_3)
                return data_view.get()

        @a_normald_3.setter
        def a_normald_3(self, value):
            self._batchedWriteValues[self._attributes.a_normald_3] = value

        @property
        def a_normalf_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_normalf_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_normalf_3)
                return data_view.get()

        @a_normalf_3.setter
        def a_normalf_3(self, value):
            self._batchedWriteValues[self._attributes.a_normalf_3] = value

        @property
        def a_normalh_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_normalh_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_normalh_3)
                return data_view.get()

        @a_normalh_3.setter
        def a_normalh_3(self, value):
            self._batchedWriteValues[self._attributes.a_normalh_3] = value

        @property
        def a_objectId(self):
            value = self._batchedWriteValues.get(self._attributes.a_objectId)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_objectId)
                return data_view.get()

        @a_objectId.setter
        def a_objectId(self, value):
            self._batchedWriteValues[self._attributes.a_objectId] = value

        @property
        def a_path(self):
            value = self._batchedWriteValues.get(self._attributes.a_path)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_path)
                return data_view.get()

        @a_path.setter
        def a_path(self, value):
            self._batchedWriteValues[self._attributes.a_path] = value

        @property
        def a_pointd_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_pointd_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_pointd_3)
                return data_view.get()

        @a_pointd_3.setter
        def a_pointd_3(self, value):
            self._batchedWriteValues[self._attributes.a_pointd_3] = value

        @property
        def a_pointf_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_pointf_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_pointf_3)
                return data_view.get()

        @a_pointf_3.setter
        def a_pointf_3(self, value):
            self._batchedWriteValues[self._attributes.a_pointf_3] = value

        @property
        def a_pointh_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_pointh_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_pointh_3)
                return data_view.get()

        @a_pointh_3.setter
        def a_pointh_3(self, value):
            self._batchedWriteValues[self._attributes.a_pointh_3] = value

        @property
        def a_quatd_4(self):
            value = self._batchedWriteValues.get(self._attributes.a_quatd_4)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_quatd_4)
                return data_view.get()

        @a_quatd_4.setter
        def a_quatd_4(self, value):
            self._batchedWriteValues[self._attributes.a_quatd_4] = value

        @property
        def a_quatf_4(self):
            value = self._batchedWriteValues.get(self._attributes.a_quatf_4)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_quatf_4)
                return data_view.get()

        @a_quatf_4.setter
        def a_quatf_4(self, value):
            self._batchedWriteValues[self._attributes.a_quatf_4] = value

        @property
        def a_quath_4(self):
            value = self._batchedWriteValues.get(self._attributes.a_quath_4)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_quath_4)
                return data_view.get()

        @a_quath_4.setter
        def a_quath_4(self, value):
            self._batchedWriteValues[self._attributes.a_quath_4] = value

        @property
        def a_string(self):
            value = self._batchedWriteValues.get(self._attributes.a_string)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_string)
                return data_view.get()

        @a_string.setter
        def a_string(self, value):
            self._batchedWriteValues[self._attributes.a_string] = value

        @property
        def a_texcoordd_2(self):
            value = self._batchedWriteValues.get(self._attributes.a_texcoordd_2)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_texcoordd_2)
                return data_view.get()

        @a_texcoordd_2.setter
        def a_texcoordd_2(self, value):
            self._batchedWriteValues[self._attributes.a_texcoordd_2] = value

        @property
        def a_texcoordd_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_texcoordd_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_texcoordd_3)
                return data_view.get()

        @a_texcoordd_3.setter
        def a_texcoordd_3(self, value):
            self._batchedWriteValues[self._attributes.a_texcoordd_3] = value

        @property
        def a_texcoordf_2(self):
            value = self._batchedWriteValues.get(self._attributes.a_texcoordf_2)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_texcoordf_2)
                return data_view.get()

        @a_texcoordf_2.setter
        def a_texcoordf_2(self, value):
            self._batchedWriteValues[self._attributes.a_texcoordf_2] = value

        @property
        def a_texcoordf_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_texcoordf_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_texcoordf_3)
                return data_view.get()

        @a_texcoordf_3.setter
        def a_texcoordf_3(self, value):
            self._batchedWriteValues[self._attributes.a_texcoordf_3] = value

        @property
        def a_texcoordh_2(self):
            value = self._batchedWriteValues.get(self._attributes.a_texcoordh_2)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_texcoordh_2)
                return data_view.get()

        @a_texcoordh_2.setter
        def a_texcoordh_2(self, value):
            self._batchedWriteValues[self._attributes.a_texcoordh_2] = value

        @property
        def a_texcoordh_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_texcoordh_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_texcoordh_3)
                return data_view.get()

        @a_texcoordh_3.setter
        def a_texcoordh_3(self, value):
            self._batchedWriteValues[self._attributes.a_texcoordh_3] = value

        @property
        def a_timecode(self):
            value = self._batchedWriteValues.get(self._attributes.a_timecode)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_timecode)
                return data_view.get()

        @a_timecode.setter
        def a_timecode(self, value):
            self._batchedWriteValues[self._attributes.a_timecode] = value

        @property
        def a_token(self):
            value = self._batchedWriteValues.get(self._attributes.a_token)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_token)
                return data_view.get()

        @a_token.setter
        def a_token(self, value):
            self._batchedWriteValues[self._attributes.a_token] = value

        @property
        def a_uchar(self):
            value = self._batchedWriteValues.get(self._attributes.a_uchar)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_uchar)
                return data_view.get()

        @a_uchar.setter
        def a_uchar(self, value):
            self._batchedWriteValues[self._attributes.a_uchar] = value

        @property
        def a_uint(self):
            value = self._batchedWriteValues.get(self._attributes.a_uint)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_uint)
                return data_view.get()

        @a_uint.setter
        def a_uint(self, value):
            self._batchedWriteValues[self._attributes.a_uint] = value

        @property
        def a_uint64(self):
            value = self._batchedWriteValues.get(self._attributes.a_uint64)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_uint64)
                return data_view.get()

        @a_uint64.setter
        def a_uint64(self, value):
            self._batchedWriteValues[self._attributes.a_uint64] = value

        @property
        def a_vectord_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_vectord_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_vectord_3)
                return data_view.get()

        @a_vectord_3.setter
        def a_vectord_3(self, value):
            self._batchedWriteValues[self._attributes.a_vectord_3] = value

        @property
        def a_vectorf_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_vectorf_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_vectorf_3)
                return data_view.get()

        @a_vectorf_3.setter
        def a_vectorf_3(self, value):
            self._batchedWriteValues[self._attributes.a_vectorf_3] = value

        @property
        def a_vectorh_3(self):
            value = self._batchedWriteValues.get(self._attributes.a_vectorh_3)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.a_vectorh_3)
                return data_view.get()

        @a_vectorh_3.setter
        def a_vectorh_3(self, value):
            self._batchedWriteValues[self._attributes.a_vectorh_3] = value

        def __getattr__(self, item: str):
            if item in self.LOCAL_PROPERTY_NAMES:
                return object.__getattribute__(self, item)
            else:
                return super().__getattr__(item)

        def __setattr__(self, item: str, new_value):
            if item in self.LOCAL_PROPERTY_NAMES:
                object.__setattr__(self, item, new_value)
            else:
                super().__setattr__(item, new_value)

        def _commit(self):
            _og._commit_output_attributes_data(self._batchedWriteValues)
            self._batchedWriteValues = { }

    class ValuesForState(og.DynamicAttributeAccess):
        """Helper class that creates natural hierarchical access to state attributes"""
        def __init__(self, node: og.Node, attributes, dynamic_attributes: og.DynamicAttributeInterface):
            """Initialize simplified access for the attribute data"""
            context = node.get_graph().get_default_graph_context()
            super().__init__(context, node, attributes, dynamic_attributes)
            self.__bundles = og.BundleContainer(context, node, attributes, [], read_only=False, gpu_ptr_kinds={})
            self.a_bool_array_size = 2
            self.a_colord_3_array_size = 2
            self.a_colord_4_array_size = 2
            self.a_colorf_3_array_size = 2
            self.a_colorf_4_array_size = 2
            self.a_colorh_3_array_size = 2
            self.a_colorh_4_array_size = 2
            self.a_double_2_array_size = 2
            self.a_double_3_array_size = 2
            self.a_double_4_array_size = 2
            self.a_double_array_size = 2
            self.a_float_2_array_size = 2
            self.a_float_3_array_size = 2
            self.a_float_4_array_size = 2
            self.a_float_array_size = 2
            self.a_frame_4_array_size = 2
            self.a_half_2_array_size = 2
            self.a_half_3_array_size = 2
            self.a_half_4_array_size = 2
            self.a_half_array_size = 2
            self.a_int64_array_size = 2
            self.a_int_2_array_size = 2
            self.a_int_3_array_size = 2
            self.a_int_4_array_size = 2
            self.a_int_array_size = 2
            self.a_matrixd_2_array_size = 2
            self.a_matrixd_3_array_size = 2
            self.a_matrixd_4_array_size = 2
            self.a_normald_3_array_size = 2
            self.a_normalf_3_array_size = 2
            self.a_normalh_3_array_size = 2
            self.a_objectId_array_size = 2
            self.a_path_size = 6
            self.a_pointd_3_array_size = 2
            self.a_pointf_3_array_size = 2
            self.a_pointh_3_array_size = 2
            self.a_quatd_4_array_size = 2
            self.a_quatf_4_array_size = 2
            self.a_quath_4_array_size = 2
            self.a_string_size = 5
            self.a_stringEmpty_size = None
            self.a_target_size = None
            self.a_texcoordd_2_array_size = 2
            self.a_texcoordd_3_array_size = 2
            self.a_texcoordf_2_array_size = 2
            self.a_texcoordf_3_array_size = 2
            self.a_texcoordh_2_array_size = 2
            self.a_texcoordh_3_array_size = 2
            self.a_timecode_array_size = 2
            self.a_token_array_size = 2
            self.a_uchar_array_size = 2
            self.a_uint64_array_size = 2
            self.a_uint_array_size = 2
            self.a_vectord_3_array_size = 2
            self.a_vectorf_3_array_size = 2
            self.a_vectorh_3_array_size = 2

        @property
        def a_bool(self):
            data_view = og.AttributeValueHelper(self._attributes.a_bool)
            return data_view.get()

        @a_bool.setter
        def a_bool(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_bool)
            data_view.set(value)

        @property
        def a_bool_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_bool_array)
            self.a_bool_array_size = data_view.get_array_size()
            return data_view.get()

        @a_bool_array.setter
        def a_bool_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_bool_array)
            data_view.set(value)
            self.a_bool_array_size = data_view.get_array_size()

        @property
        def a_bundle(self) -> og.BundleContents:
            """Get the bundle wrapper class for the attribute state.a_bundle"""
            return self.__bundles.a_bundle

        @a_bundle.setter
        def a_bundle(self, bundle: og.BundleContents):
            """Overwrite the bundle attribute state.a_bundle with a new bundle"""
            if not isinstance(bundle, og.BundleContents):
                carb.log_error("Only bundle attributes can be assigned to another bundle attribute")
            self.__bundles.a_bundle.bundle = bundle

        @property
        def a_colord_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colord_3)
            return data_view.get()

        @a_colord_3.setter
        def a_colord_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_colord_3)
            data_view.set(value)

        @property
        def a_colord_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colord_3_array)
            self.a_colord_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_colord_3_array.setter
        def a_colord_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_colord_3_array)
            data_view.set(value)
            self.a_colord_3_array_size = data_view.get_array_size()

        @property
        def a_colord_4(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colord_4)
            return data_view.get()

        @a_colord_4.setter
        def a_colord_4(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_colord_4)
            data_view.set(value)

        @property
        def a_colord_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colord_4_array)
            self.a_colord_4_array_size = data_view.get_array_size()
            return data_view.get()

        @a_colord_4_array.setter
        def a_colord_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_colord_4_array)
            data_view.set(value)
            self.a_colord_4_array_size = data_view.get_array_size()

        @property
        def a_colorf_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colorf_3)
            return data_view.get()

        @a_colorf_3.setter
        def a_colorf_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_colorf_3)
            data_view.set(value)

        @property
        def a_colorf_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colorf_3_array)
            self.a_colorf_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_colorf_3_array.setter
        def a_colorf_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_colorf_3_array)
            data_view.set(value)
            self.a_colorf_3_array_size = data_view.get_array_size()

        @property
        def a_colorf_4(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colorf_4)
            return data_view.get()

        @a_colorf_4.setter
        def a_colorf_4(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_colorf_4)
            data_view.set(value)

        @property
        def a_colorf_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colorf_4_array)
            self.a_colorf_4_array_size = data_view.get_array_size()
            return data_view.get()

        @a_colorf_4_array.setter
        def a_colorf_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_colorf_4_array)
            data_view.set(value)
            self.a_colorf_4_array_size = data_view.get_array_size()

        @property
        def a_colorh_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colorh_3)
            return data_view.get()

        @a_colorh_3.setter
        def a_colorh_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_colorh_3)
            data_view.set(value)

        @property
        def a_colorh_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colorh_3_array)
            self.a_colorh_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_colorh_3_array.setter
        def a_colorh_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_colorh_3_array)
            data_view.set(value)
            self.a_colorh_3_array_size = data_view.get_array_size()

        @property
        def a_colorh_4(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colorh_4)
            return data_view.get()

        @a_colorh_4.setter
        def a_colorh_4(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_colorh_4)
            data_view.set(value)

        @property
        def a_colorh_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_colorh_4_array)
            self.a_colorh_4_array_size = data_view.get_array_size()
            return data_view.get()

        @a_colorh_4_array.setter
        def a_colorh_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_colorh_4_array)
            data_view.set(value)
            self.a_colorh_4_array_size = data_view.get_array_size()

        @property
        def a_double(self):
            data_view = og.AttributeValueHelper(self._attributes.a_double)
            return data_view.get()

        @a_double.setter
        def a_double(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_double)
            data_view.set(value)

        @property
        def a_double_2(self):
            data_view = og.AttributeValueHelper(self._attributes.a_double_2)
            return data_view.get()

        @a_double_2.setter
        def a_double_2(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_double_2)
            data_view.set(value)

        @property
        def a_double_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_double_2_array)
            self.a_double_2_array_size = data_view.get_array_size()
            return data_view.get()

        @a_double_2_array.setter
        def a_double_2_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_double_2_array)
            data_view.set(value)
            self.a_double_2_array_size = data_view.get_array_size()

        @property
        def a_double_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_double_3)
            return data_view.get()

        @a_double_3.setter
        def a_double_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_double_3)
            data_view.set(value)

        @property
        def a_double_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_double_3_array)
            self.a_double_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_double_3_array.setter
        def a_double_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_double_3_array)
            data_view.set(value)
            self.a_double_3_array_size = data_view.get_array_size()

        @property
        def a_double_4(self):
            data_view = og.AttributeValueHelper(self._attributes.a_double_4)
            return data_view.get()

        @a_double_4.setter
        def a_double_4(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_double_4)
            data_view.set(value)

        @property
        def a_double_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_double_4_array)
            self.a_double_4_array_size = data_view.get_array_size()
            return data_view.get()

        @a_double_4_array.setter
        def a_double_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_double_4_array)
            data_view.set(value)
            self.a_double_4_array_size = data_view.get_array_size()

        @property
        def a_double_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_double_array)
            self.a_double_array_size = data_view.get_array_size()
            return data_view.get()

        @a_double_array.setter
        def a_double_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_double_array)
            data_view.set(value)
            self.a_double_array_size = data_view.get_array_size()

        @property
        def a_execution(self):
            data_view = og.AttributeValueHelper(self._attributes.a_execution)
            return data_view.get()

        @a_execution.setter
        def a_execution(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_execution)
            data_view.set(value)

        @property
        def a_firstEvaluation(self):
            data_view = og.AttributeValueHelper(self._attributes.a_firstEvaluation)
            return data_view.get()

        @a_firstEvaluation.setter
        def a_firstEvaluation(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_firstEvaluation)
            data_view.set(value)

        @property
        def a_float(self):
            data_view = og.AttributeValueHelper(self._attributes.a_float)
            return data_view.get()

        @a_float.setter
        def a_float(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_float)
            data_view.set(value)

        @property
        def a_float_2(self):
            data_view = og.AttributeValueHelper(self._attributes.a_float_2)
            return data_view.get()

        @a_float_2.setter
        def a_float_2(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_float_2)
            data_view.set(value)

        @property
        def a_float_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_float_2_array)
            self.a_float_2_array_size = data_view.get_array_size()
            return data_view.get()

        @a_float_2_array.setter
        def a_float_2_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_float_2_array)
            data_view.set(value)
            self.a_float_2_array_size = data_view.get_array_size()

        @property
        def a_float_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_float_3)
            return data_view.get()

        @a_float_3.setter
        def a_float_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_float_3)
            data_view.set(value)

        @property
        def a_float_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_float_3_array)
            self.a_float_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_float_3_array.setter
        def a_float_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_float_3_array)
            data_view.set(value)
            self.a_float_3_array_size = data_view.get_array_size()

        @property
        def a_float_4(self):
            data_view = og.AttributeValueHelper(self._attributes.a_float_4)
            return data_view.get()

        @a_float_4.setter
        def a_float_4(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_float_4)
            data_view.set(value)

        @property
        def a_float_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_float_4_array)
            self.a_float_4_array_size = data_view.get_array_size()
            return data_view.get()

        @a_float_4_array.setter
        def a_float_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_float_4_array)
            data_view.set(value)
            self.a_float_4_array_size = data_view.get_array_size()

        @property
        def a_float_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_float_array)
            self.a_float_array_size = data_view.get_array_size()
            return data_view.get()

        @a_float_array.setter
        def a_float_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_float_array)
            data_view.set(value)
            self.a_float_array_size = data_view.get_array_size()

        @property
        def a_frame_4(self):
            data_view = og.AttributeValueHelper(self._attributes.a_frame_4)
            return data_view.get()

        @a_frame_4.setter
        def a_frame_4(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_frame_4)
            data_view.set(value)

        @property
        def a_frame_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_frame_4_array)
            self.a_frame_4_array_size = data_view.get_array_size()
            return data_view.get()

        @a_frame_4_array.setter
        def a_frame_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_frame_4_array)
            data_view.set(value)
            self.a_frame_4_array_size = data_view.get_array_size()

        @property
        def a_half(self):
            data_view = og.AttributeValueHelper(self._attributes.a_half)
            return data_view.get()

        @a_half.setter
        def a_half(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_half)
            data_view.set(value)

        @property
        def a_half_2(self):
            data_view = og.AttributeValueHelper(self._attributes.a_half_2)
            return data_view.get()

        @a_half_2.setter
        def a_half_2(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_half_2)
            data_view.set(value)

        @property
        def a_half_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_half_2_array)
            self.a_half_2_array_size = data_view.get_array_size()
            return data_view.get()

        @a_half_2_array.setter
        def a_half_2_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_half_2_array)
            data_view.set(value)
            self.a_half_2_array_size = data_view.get_array_size()

        @property
        def a_half_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_half_3)
            return data_view.get()

        @a_half_3.setter
        def a_half_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_half_3)
            data_view.set(value)

        @property
        def a_half_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_half_3_array)
            self.a_half_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_half_3_array.setter
        def a_half_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_half_3_array)
            data_view.set(value)
            self.a_half_3_array_size = data_view.get_array_size()

        @property
        def a_half_4(self):
            data_view = og.AttributeValueHelper(self._attributes.a_half_4)
            return data_view.get()

        @a_half_4.setter
        def a_half_4(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_half_4)
            data_view.set(value)

        @property
        def a_half_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_half_4_array)
            self.a_half_4_array_size = data_view.get_array_size()
            return data_view.get()

        @a_half_4_array.setter
        def a_half_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_half_4_array)
            data_view.set(value)
            self.a_half_4_array_size = data_view.get_array_size()

        @property
        def a_half_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_half_array)
            self.a_half_array_size = data_view.get_array_size()
            return data_view.get()

        @a_half_array.setter
        def a_half_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_half_array)
            data_view.set(value)
            self.a_half_array_size = data_view.get_array_size()

        @property
        def a_int(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int)
            return data_view.get()

        @a_int.setter
        def a_int(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_int)
            data_view.set(value)

        @property
        def a_int64(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int64)
            return data_view.get()

        @a_int64.setter
        def a_int64(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_int64)
            data_view.set(value)

        @property
        def a_int64_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int64_array)
            self.a_int64_array_size = data_view.get_array_size()
            return data_view.get()

        @a_int64_array.setter
        def a_int64_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_int64_array)
            data_view.set(value)
            self.a_int64_array_size = data_view.get_array_size()

        @property
        def a_int_2(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int_2)
            return data_view.get()

        @a_int_2.setter
        def a_int_2(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_int_2)
            data_view.set(value)

        @property
        def a_int_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int_2_array)
            self.a_int_2_array_size = data_view.get_array_size()
            return data_view.get()

        @a_int_2_array.setter
        def a_int_2_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_int_2_array)
            data_view.set(value)
            self.a_int_2_array_size = data_view.get_array_size()

        @property
        def a_int_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int_3)
            return data_view.get()

        @a_int_3.setter
        def a_int_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_int_3)
            data_view.set(value)

        @property
        def a_int_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int_3_array)
            self.a_int_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_int_3_array.setter
        def a_int_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_int_3_array)
            data_view.set(value)
            self.a_int_3_array_size = data_view.get_array_size()

        @property
        def a_int_4(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int_4)
            return data_view.get()

        @a_int_4.setter
        def a_int_4(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_int_4)
            data_view.set(value)

        @property
        def a_int_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int_4_array)
            self.a_int_4_array_size = data_view.get_array_size()
            return data_view.get()

        @a_int_4_array.setter
        def a_int_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_int_4_array)
            data_view.set(value)
            self.a_int_4_array_size = data_view.get_array_size()

        @property
        def a_int_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_int_array)
            self.a_int_array_size = data_view.get_array_size()
            return data_view.get()

        @a_int_array.setter
        def a_int_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_int_array)
            data_view.set(value)
            self.a_int_array_size = data_view.get_array_size()

        @property
        def a_matrixd_2(self):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_2)
            return data_view.get()

        @a_matrixd_2.setter
        def a_matrixd_2(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_2)
            data_view.set(value)

        @property
        def a_matrixd_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_2_array)
            self.a_matrixd_2_array_size = data_view.get_array_size()
            return data_view.get()

        @a_matrixd_2_array.setter
        def a_matrixd_2_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_2_array)
            data_view.set(value)
            self.a_matrixd_2_array_size = data_view.get_array_size()

        @property
        def a_matrixd_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_3)
            return data_view.get()

        @a_matrixd_3.setter
        def a_matrixd_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_3)
            data_view.set(value)

        @property
        def a_matrixd_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_3_array)
            self.a_matrixd_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_matrixd_3_array.setter
        def a_matrixd_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_3_array)
            data_view.set(value)
            self.a_matrixd_3_array_size = data_view.get_array_size()

        @property
        def a_matrixd_4(self):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_4)
            return data_view.get()

        @a_matrixd_4.setter
        def a_matrixd_4(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_4)
            data_view.set(value)

        @property
        def a_matrixd_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_4_array)
            self.a_matrixd_4_array_size = data_view.get_array_size()
            return data_view.get()

        @a_matrixd_4_array.setter
        def a_matrixd_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_matrixd_4_array)
            data_view.set(value)
            self.a_matrixd_4_array_size = data_view.get_array_size()

        @property
        def a_normald_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_normald_3)
            return data_view.get()

        @a_normald_3.setter
        def a_normald_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_normald_3)
            data_view.set(value)

        @property
        def a_normald_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_normald_3_array)
            self.a_normald_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_normald_3_array.setter
        def a_normald_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_normald_3_array)
            data_view.set(value)
            self.a_normald_3_array_size = data_view.get_array_size()

        @property
        def a_normalf_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_normalf_3)
            return data_view.get()

        @a_normalf_3.setter
        def a_normalf_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_normalf_3)
            data_view.set(value)

        @property
        def a_normalf_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_normalf_3_array)
            self.a_normalf_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_normalf_3_array.setter
        def a_normalf_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_normalf_3_array)
            data_view.set(value)
            self.a_normalf_3_array_size = data_view.get_array_size()

        @property
        def a_normalh_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_normalh_3)
            return data_view.get()

        @a_normalh_3.setter
        def a_normalh_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_normalh_3)
            data_view.set(value)

        @property
        def a_normalh_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_normalh_3_array)
            self.a_normalh_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_normalh_3_array.setter
        def a_normalh_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_normalh_3_array)
            data_view.set(value)
            self.a_normalh_3_array_size = data_view.get_array_size()

        @property
        def a_objectId(self):
            data_view = og.AttributeValueHelper(self._attributes.a_objectId)
            return data_view.get()

        @a_objectId.setter
        def a_objectId(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_objectId)
            data_view.set(value)

        @property
        def a_objectId_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_objectId_array)
            self.a_objectId_array_size = data_view.get_array_size()
            return data_view.get()

        @a_objectId_array.setter
        def a_objectId_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_objectId_array)
            data_view.set(value)
            self.a_objectId_array_size = data_view.get_array_size()

        @property
        def a_path(self):
            data_view = og.AttributeValueHelper(self._attributes.a_path)
            self.a_path_size = data_view.get_array_size()
            return data_view.get()

        @a_path.setter
        def a_path(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_path)
            data_view.set(value)
            self.a_path_size = data_view.get_array_size()

        @property
        def a_pointd_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_pointd_3)
            return data_view.get()

        @a_pointd_3.setter
        def a_pointd_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_pointd_3)
            data_view.set(value)

        @property
        def a_pointd_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_pointd_3_array)
            self.a_pointd_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_pointd_3_array.setter
        def a_pointd_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_pointd_3_array)
            data_view.set(value)
            self.a_pointd_3_array_size = data_view.get_array_size()

        @property
        def a_pointf_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_pointf_3)
            return data_view.get()

        @a_pointf_3.setter
        def a_pointf_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_pointf_3)
            data_view.set(value)

        @property
        def a_pointf_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_pointf_3_array)
            self.a_pointf_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_pointf_3_array.setter
        def a_pointf_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_pointf_3_array)
            data_view.set(value)
            self.a_pointf_3_array_size = data_view.get_array_size()

        @property
        def a_pointh_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_pointh_3)
            return data_view.get()

        @a_pointh_3.setter
        def a_pointh_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_pointh_3)
            data_view.set(value)

        @property
        def a_pointh_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_pointh_3_array)
            self.a_pointh_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_pointh_3_array.setter
        def a_pointh_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_pointh_3_array)
            data_view.set(value)
            self.a_pointh_3_array_size = data_view.get_array_size()

        @property
        def a_quatd_4(self):
            data_view = og.AttributeValueHelper(self._attributes.a_quatd_4)
            return data_view.get()

        @a_quatd_4.setter
        def a_quatd_4(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_quatd_4)
            data_view.set(value)

        @property
        def a_quatd_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_quatd_4_array)
            self.a_quatd_4_array_size = data_view.get_array_size()
            return data_view.get()

        @a_quatd_4_array.setter
        def a_quatd_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_quatd_4_array)
            data_view.set(value)
            self.a_quatd_4_array_size = data_view.get_array_size()

        @property
        def a_quatf_4(self):
            data_view = og.AttributeValueHelper(self._attributes.a_quatf_4)
            return data_view.get()

        @a_quatf_4.setter
        def a_quatf_4(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_quatf_4)
            data_view.set(value)

        @property
        def a_quatf_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_quatf_4_array)
            self.a_quatf_4_array_size = data_view.get_array_size()
            return data_view.get()

        @a_quatf_4_array.setter
        def a_quatf_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_quatf_4_array)
            data_view.set(value)
            self.a_quatf_4_array_size = data_view.get_array_size()

        @property
        def a_quath_4(self):
            data_view = og.AttributeValueHelper(self._attributes.a_quath_4)
            return data_view.get()

        @a_quath_4.setter
        def a_quath_4(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_quath_4)
            data_view.set(value)

        @property
        def a_quath_4_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_quath_4_array)
            self.a_quath_4_array_size = data_view.get_array_size()
            return data_view.get()

        @a_quath_4_array.setter
        def a_quath_4_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_quath_4_array)
            data_view.set(value)
            self.a_quath_4_array_size = data_view.get_array_size()

        @property
        def a_string(self):
            data_view = og.AttributeValueHelper(self._attributes.a_string)
            self.a_string_size = data_view.get_array_size()
            return data_view.get()

        @a_string.setter
        def a_string(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_string)
            data_view.set(value)
            self.a_string_size = data_view.get_array_size()

        @property
        def a_stringEmpty(self):
            data_view = og.AttributeValueHelper(self._attributes.a_stringEmpty)
            self.a_stringEmpty_size = data_view.get_array_size()
            return data_view.get()

        @a_stringEmpty.setter
        def a_stringEmpty(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_stringEmpty)
            data_view.set(value)
            self.a_stringEmpty_size = data_view.get_array_size()

        @property
        def a_target(self):
            data_view = og.AttributeValueHelper(self._attributes.a_target)
            self.a_target_size = data_view.get_array_size()
            return data_view.get()

        @a_target.setter
        def a_target(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_target)
            data_view.set(value)
            self.a_target_size = data_view.get_array_size()

        @property
        def a_texcoordd_2(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordd_2)
            return data_view.get()

        @a_texcoordd_2.setter
        def a_texcoordd_2(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordd_2)
            data_view.set(value)

        @property
        def a_texcoordd_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordd_2_array)
            self.a_texcoordd_2_array_size = data_view.get_array_size()
            return data_view.get()

        @a_texcoordd_2_array.setter
        def a_texcoordd_2_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordd_2_array)
            data_view.set(value)
            self.a_texcoordd_2_array_size = data_view.get_array_size()

        @property
        def a_texcoordd_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordd_3)
            return data_view.get()

        @a_texcoordd_3.setter
        def a_texcoordd_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordd_3)
            data_view.set(value)

        @property
        def a_texcoordd_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordd_3_array)
            self.a_texcoordd_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_texcoordd_3_array.setter
        def a_texcoordd_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordd_3_array)
            data_view.set(value)
            self.a_texcoordd_3_array_size = data_view.get_array_size()

        @property
        def a_texcoordf_2(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordf_2)
            return data_view.get()

        @a_texcoordf_2.setter
        def a_texcoordf_2(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordf_2)
            data_view.set(value)

        @property
        def a_texcoordf_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordf_2_array)
            self.a_texcoordf_2_array_size = data_view.get_array_size()
            return data_view.get()

        @a_texcoordf_2_array.setter
        def a_texcoordf_2_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordf_2_array)
            data_view.set(value)
            self.a_texcoordf_2_array_size = data_view.get_array_size()

        @property
        def a_texcoordf_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordf_3)
            return data_view.get()

        @a_texcoordf_3.setter
        def a_texcoordf_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordf_3)
            data_view.set(value)

        @property
        def a_texcoordf_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordf_3_array)
            self.a_texcoordf_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_texcoordf_3_array.setter
        def a_texcoordf_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordf_3_array)
            data_view.set(value)
            self.a_texcoordf_3_array_size = data_view.get_array_size()

        @property
        def a_texcoordh_2(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordh_2)
            return data_view.get()

        @a_texcoordh_2.setter
        def a_texcoordh_2(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordh_2)
            data_view.set(value)

        @property
        def a_texcoordh_2_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordh_2_array)
            self.a_texcoordh_2_array_size = data_view.get_array_size()
            return data_view.get()

        @a_texcoordh_2_array.setter
        def a_texcoordh_2_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordh_2_array)
            data_view.set(value)
            self.a_texcoordh_2_array_size = data_view.get_array_size()

        @property
        def a_texcoordh_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordh_3)
            return data_view.get()

        @a_texcoordh_3.setter
        def a_texcoordh_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordh_3)
            data_view.set(value)

        @property
        def a_texcoordh_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordh_3_array)
            self.a_texcoordh_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_texcoordh_3_array.setter
        def a_texcoordh_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_texcoordh_3_array)
            data_view.set(value)
            self.a_texcoordh_3_array_size = data_view.get_array_size()

        @property
        def a_timecode(self):
            data_view = og.AttributeValueHelper(self._attributes.a_timecode)
            return data_view.get()

        @a_timecode.setter
        def a_timecode(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_timecode)
            data_view.set(value)

        @property
        def a_timecode_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_timecode_array)
            self.a_timecode_array_size = data_view.get_array_size()
            return data_view.get()

        @a_timecode_array.setter
        def a_timecode_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_timecode_array)
            data_view.set(value)
            self.a_timecode_array_size = data_view.get_array_size()

        @property
        def a_token(self):
            data_view = og.AttributeValueHelper(self._attributes.a_token)
            return data_view.get()

        @a_token.setter
        def a_token(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_token)
            data_view.set(value)

        @property
        def a_token_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_token_array)
            self.a_token_array_size = data_view.get_array_size()
            return data_view.get()

        @a_token_array.setter
        def a_token_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_token_array)
            data_view.set(value)
            self.a_token_array_size = data_view.get_array_size()

        @property
        def a_uchar(self):
            data_view = og.AttributeValueHelper(self._attributes.a_uchar)
            return data_view.get()

        @a_uchar.setter
        def a_uchar(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_uchar)
            data_view.set(value)

        @property
        def a_uchar_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_uchar_array)
            self.a_uchar_array_size = data_view.get_array_size()
            return data_view.get()

        @a_uchar_array.setter
        def a_uchar_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_uchar_array)
            data_view.set(value)
            self.a_uchar_array_size = data_view.get_array_size()

        @property
        def a_uint(self):
            data_view = og.AttributeValueHelper(self._attributes.a_uint)
            return data_view.get()

        @a_uint.setter
        def a_uint(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_uint)
            data_view.set(value)

        @property
        def a_uint64(self):
            data_view = og.AttributeValueHelper(self._attributes.a_uint64)
            return data_view.get()

        @a_uint64.setter
        def a_uint64(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_uint64)
            data_view.set(value)

        @property
        def a_uint64_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_uint64_array)
            self.a_uint64_array_size = data_view.get_array_size()
            return data_view.get()

        @a_uint64_array.setter
        def a_uint64_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_uint64_array)
            data_view.set(value)
            self.a_uint64_array_size = data_view.get_array_size()

        @property
        def a_uint_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_uint_array)
            self.a_uint_array_size = data_view.get_array_size()
            return data_view.get()

        @a_uint_array.setter
        def a_uint_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_uint_array)
            data_view.set(value)
            self.a_uint_array_size = data_view.get_array_size()

        @property
        def a_vectord_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_vectord_3)
            return data_view.get()

        @a_vectord_3.setter
        def a_vectord_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_vectord_3)
            data_view.set(value)

        @property
        def a_vectord_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_vectord_3_array)
            self.a_vectord_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_vectord_3_array.setter
        def a_vectord_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_vectord_3_array)
            data_view.set(value)
            self.a_vectord_3_array_size = data_view.get_array_size()

        @property
        def a_vectorf_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_vectorf_3)
            return data_view.get()

        @a_vectorf_3.setter
        def a_vectorf_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_vectorf_3)
            data_view.set(value)

        @property
        def a_vectorf_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_vectorf_3_array)
            self.a_vectorf_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_vectorf_3_array.setter
        def a_vectorf_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_vectorf_3_array)
            data_view.set(value)
            self.a_vectorf_3_array_size = data_view.get_array_size()

        @property
        def a_vectorh_3(self):
            data_view = og.AttributeValueHelper(self._attributes.a_vectorh_3)
            return data_view.get()

        @a_vectorh_3.setter
        def a_vectorh_3(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_vectorh_3)
            data_view.set(value)

        @property
        def a_vectorh_3_array(self):
            data_view = og.AttributeValueHelper(self._attributes.a_vectorh_3_array)
            self.a_vectorh_3_array_size = data_view.get_array_size()
            return data_view.get()

        @a_vectorh_3_array.setter
        def a_vectorh_3_array(self, value):
            data_view = og.AttributeValueHelper(self._attributes.a_vectorh_3_array)
            data_view.set(value)
            self.a_vectorh_3_array_size = data_view.get_array_size()

    def __init__(self, node):
        super().__init__(node)
        dynamic_attributes = self.dynamic_attribute_data(node, og.AttributePortType.ATTRIBUTE_PORT_TYPE_INPUT)
        self.inputs = OgnTestAllDataTypesPyDatabase.ValuesForInputs(node, self.attributes.inputs, dynamic_attributes)
        dynamic_attributes = self.dynamic_attribute_data(node, og.AttributePortType.ATTRIBUTE_PORT_TYPE_OUTPUT)
        self.outputs = OgnTestAllDataTypesPyDatabase.ValuesForOutputs(node, self.attributes.outputs, dynamic_attributes)
        dynamic_attributes = self.dynamic_attribute_data(node, og.AttributePortType.ATTRIBUTE_PORT_TYPE_STATE)
        self.state = OgnTestAllDataTypesPyDatabase.ValuesForState(node, self.attributes.state, dynamic_attributes)

    class abi:
        """Class defining the ABI interface for the node type"""

        @staticmethod
        def get_node_type():
            get_node_type_function = getattr(OgnTestAllDataTypesPyDatabase.NODE_TYPE_CLASS, 'get_node_type', None)
            if callable(get_node_type_function):
                return get_node_type_function()
            return 'omni.graph.test.TestAllDataTypesPy'

        @staticmethod
        def compute(context, node):
            def database_valid():
                if not db.outputs.a_bundle.valid:
                    db.log_error('Required bundle outputs.a_bundle is invalid, compute skipped')
                    return False
                if not db.state.a_bundle.valid:
                    db.log_error('Required bundle state.a_bundle is invalid, compute skipped')
                    return False
                return True
            try:
                per_node_data = OgnTestAllDataTypesPyDatabase.PER_NODE_DATA[node.node_id()]
                db = per_node_data.get('_db')
                if db is None:
                    db = OgnTestAllDataTypesPyDatabase(node)
                    per_node_data['_db'] = db
                if not database_valid():
                    per_node_data['_db'] = None
                    return False
            except:
                db = OgnTestAllDataTypesPyDatabase(node)

            try:
                compute_function = getattr(OgnTestAllDataTypesPyDatabase.NODE_TYPE_CLASS, 'compute', None)
                if callable(compute_function) and compute_function.__code__.co_argcount > 1:
                    return compute_function(context, node)

                db.inputs._prefetch()
                db.inputs._setting_locked = True
                with og.in_compute():
                    return OgnTestAllDataTypesPyDatabase.NODE_TYPE_CLASS.compute(db)
            except Exception as error:
                stack_trace = "".join(traceback.format_tb(sys.exc_info()[2].tb_next))
                db.log_error(f'Assertion raised in compute - {error}\n{stack_trace}', add_context=False)
            finally:
                db.inputs._setting_locked = False
                db.outputs._commit()
            return False

        @staticmethod
        def initialize(context, node):
            OgnTestAllDataTypesPyDatabase._initialize_per_node_data(node)
            initialize_function = getattr(OgnTestAllDataTypesPyDatabase.NODE_TYPE_CLASS, 'initialize', None)
            if callable(initialize_function):
                initialize_function(context, node)

            per_node_data = OgnTestAllDataTypesPyDatabase.PER_NODE_DATA[node.node_id()]
            def on_connection_or_disconnection(*args):
                per_node_data['_db'] = None

            node.register_on_connected_callback(on_connection_or_disconnection)
            node.register_on_disconnected_callback(on_connection_or_disconnection)

        @staticmethod
        def release(node):
            release_function = getattr(OgnTestAllDataTypesPyDatabase.NODE_TYPE_CLASS, 'release', None)
            if callable(release_function):
                release_function(node)
            OgnTestAllDataTypesPyDatabase._release_per_node_data(node)

        @staticmethod
        def release_instance(node, target):
            OgnTestAllDataTypesPyDatabase._release_per_node_instance_data(node, target)

        @staticmethod
        def update_node_version(context, node, old_version, new_version):
            update_node_version_function = getattr(OgnTestAllDataTypesPyDatabase.NODE_TYPE_CLASS, 'update_node_version', None)
            if callable(update_node_version_function):
                return update_node_version_function(context, node, old_version, new_version)
            return False

        @staticmethod
        def initialize_type(node_type):
            initialize_type_function = getattr(OgnTestAllDataTypesPyDatabase.NODE_TYPE_CLASS, 'initialize_type', None)
            needs_initializing = True
            if callable(initialize_type_function):
                needs_initializing = initialize_type_function(node_type)
            if needs_initializing:
                node_type.set_metadata(ogn.MetadataKeys.EXTENSION, "omni.graph.test")
                node_type.set_metadata(ogn.MetadataKeys.UI_NAME, "Python Test Node: All Data Types")
                node_type.set_metadata(ogn.MetadataKeys.CATEGORIES, "internal:test")
                node_type.set_metadata(ogn.MetadataKeys.DESCRIPTION, "This node is meant to exercise data access for all available data types, including all legal combinations of tuples, arrays, and bundle members. The test section here is intentionally omitted so that the regression test script can programmatically generate tests for all known types, reducing the change of unintentional omissions. This node definition is a duplicate of OgnTestAllDataTypes.ogn, except the implementation language is Python.")
                node_type.set_metadata(ogn.MetadataKeys.EXCLUSIONS, "usd,docs")
                node_type.set_metadata(ogn.MetadataKeys.LANGUAGE, "Python")
                icon_path = carb.tokens.get_tokens_interface().resolve("${omni.graph.test}")
                icon_path = icon_path + '/' + "ogn/icons/omni.graph.test.TestAllDataTypesPy.svg"
                node_type.set_metadata(ogn.MetadataKeys.ICON_PATH, icon_path)
                OgnTestAllDataTypesPyDatabase.INTERFACE.add_to_node_type(node_type)
                node_type.set_has_state(True)

        @staticmethod
        def on_connection_type_resolve(node):
            on_connection_type_resolve_function = getattr(OgnTestAllDataTypesPyDatabase.NODE_TYPE_CLASS, 'on_connection_type_resolve', None)
            if callable(on_connection_type_resolve_function):
                on_connection_type_resolve_function(node)

    NODE_TYPE_CLASS = None

    @staticmethod
    def register(node_type_class):
        OgnTestAllDataTypesPyDatabase.NODE_TYPE_CLASS = node_type_class
        og.register_node_type(OgnTestAllDataTypesPyDatabase.abi, 1)

    @staticmethod
    def deregister():
        og.deregister_node_type("omni.graph.test.TestAllDataTypesPy")
