user: What is KeyMap(bpy_struct) and how is it used in Blender Python scripting?

assistant: # KeyMap(bpy_struct)

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

*class* bpy.types.KeyMap(*bpy_struct*)
:   Input configuration, including keymaps

    bl_owner_id
    :   Internal owner

        Type:
        :   string, default “”, (never None)

    is_modal
    :   Indicates that a keymap is used for translate modal events for an operator

        Type:
        :   boolean, default False, (readonly)

    is_user_modified
    :   Keymap is defined by the user

        Type:
        :   boolean, default False

    keymap_items
    :   Items in the keymap, linking an operator to an input event

        Type:
        :   [`KeyMapItems`](bpy.types.KeyMapItems.html#bpy.types.KeyMapItems "bpy.types.KeyMapItems") [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`KeyMapItem`](bpy.types.KeyMapItem.html#bpy.types.KeyMapItem "bpy.types.KeyMapItem"), (readonly)

    modal_event_values
    :   Give access to the possible event values of this modal keymap’s items (#KeyMapItem.propvalue), for API introspection

        Type:
        :   [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`EnumPropertyItem`](bpy.types.EnumPropertyItem.html#bpy.types.EnumPropertyItem "bpy.types.EnumPropertyItem"), (readonly)

    name
    :   Name of the key map

        Type:
        :   string, default “”, (readonly, never None)

    region_type
    :   Optional region type keymap is associated with

        Type:
        :   enum in [Region Type Items](bpy_types_enum_items/region_type_items.html#rna-enum-region-type-items), default `'WINDOW'`, (readonly)

    show_expanded_children
    :   Children expanded in the user interface

        Type:
        :   boolean, default False

    show_expanded_items
    :   Expanded in the user interface

        Type:
        :   boolean, default False

    space_type
    :   Optional space type keymap is associated with

        Type:
        :   enum in [Space Type Items](bpy_types_enum_items/space_type_items.html#rna-enum-space-type-items), default `'EMPTY'`, (readonly)

    active()
    :   active

        Returns:
        :   Key Map, Active key map

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

    restore_to_default()
    :   restore_to_default

    restore_item_to_default(*item*)
    :   restore_item_to_default

        Parameters:
        :   **item** ([`KeyMapItem`](bpy.types.KeyMapItem.html#bpy.types.KeyMapItem "bpy.types.KeyMapItem"), (never None)) – Item

    *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