user: Explain KeyConfigurations(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # KeyConfigurations(bpy_struct)

base class — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct")

*class* bpy.types.KeyConfigurations(*bpy_struct*)
:   Collection of KeyConfigs

    active
    :   Active key configuration (preset)

        Type:
        :   [`KeyConfig`](bpy.types.KeyConfig.html#bpy.types.KeyConfig "bpy.types.KeyConfig")

    addon
    :   Key configuration that can be extended by add-ons, and is added to the active configuration when handling events

        Type:
        :   [`KeyConfig`](bpy.types.KeyConfig.html#bpy.types.KeyConfig "bpy.types.KeyConfig"), (readonly)

    default
    :   Default builtin key configuration

        Type:
        :   [`KeyConfig`](bpy.types.KeyConfig.html#bpy.types.KeyConfig "bpy.types.KeyConfig"), (readonly)

    user
    :   Final key configuration that combines keymaps from the active and add-on configurations, and can be edited by the user

        Type:
        :   [`KeyConfig`](bpy.types.KeyConfig.html#bpy.types.KeyConfig "bpy.types.KeyConfig"), (readonly)

    new(*name*)
    :   new

        Parameters:
        :   **name** (*string**,* *(**never None**)*) – Name

        Returns:
        :   Key Configuration, Added key configuration

        Return type:
        :   [`KeyConfig`](bpy.types.KeyConfig.html#bpy.types.KeyConfig "bpy.types.KeyConfig")

    remove(*keyconfig*)
    :   remove

        Parameters:
        :   **keyconfig** ([`KeyConfig`](bpy.types.KeyConfig.html#bpy.types.KeyConfig "bpy.types.KeyConfig"), (never None)) – Key Configuration, Removed key configuration

    find_item_from_operator(*idname*, *\**, *context='INVOKE_DEFAULT'*, *properties=None*, *include={'ACTIONZONE', 'KEYBOARD', 'MOUSE', 'NDOF'}*, *exclude={}*)
    :   find_item_from_operator

        Parameters:
        :   - **idname** (*string**,* *(**never None**)*) – Operator Identifier
            - **context** (enum in [Operator Context Items](bpy_types_enum_items/operator_context_items.html#rna-enum-operator-context-items), (optional)) – context
            - **include** (enum set in [Event Type Mask Items](bpy_types_enum_items/event_type_mask_items.html#rna-enum-event-type-mask-items), (optional)) – Include
            - **exclude** (enum set in [Event Type Mask Items](bpy_types_enum_items/event_type_mask_items.html#rna-enum-event-type-mask-items), (optional)) – Exclude

        Returns:
        :   `keymap`, [`KeyMap`](bpy.types.KeyMap.html#bpy.types.KeyMap "bpy.types.KeyMap")

            `item`, [`KeyMapItem`](bpy.types.KeyMapItem.html#bpy.types.KeyMapItem "bpy.types.KeyMapItem")

        Return type:
        :   ([`KeyMap`](bpy.types.KeyMap.html#bpy.types.KeyMap "bpy.types.KeyMap"), [`KeyMapItem`](bpy.types.KeyMapItem.html#bpy.types.KeyMapItem "bpy.types.KeyMapItem"))

    update(*\**, *keep_properties=False*)
    :   update

        Parameters:
        :   **keep_properties** (*boolean**,* *(**optional**)*) – Keep Properties, Operator properties are kept to allow the operators to be registered again in the future

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type