user: How do I use ToolSettings(bpy_struct) in Blender? Include parameters, examples, warnings and best practices.

assistant:   :   Proportional editing object mode

        Type:
        :   boolean, default False

    use_proportional_fcurve
    :   Proportional editing in F-Curve editor

        Type:
        :   boolean, default False

    use_proportional_projected
    :   Proportional Editing using screen space locations

        Type:
        :   boolean, default False

    use_record_with_nla
    :   Add a new NLA Track + Strip for every loop/pass made over the animation to allow non-destructive tweaking

        Type:
        :   boolean, default False

    use_snap
    :   Snap during transform

        Type:
        :   boolean, default False

    use_snap_align_rotation
    :   Align rotation with the snapping target

        Type:
        :   boolean, default False

    use_snap_anim
    :   Enable snapping when transforming keyframes

        Type:
        :   boolean, default True

    use_snap_backface_culling
    :   Exclude back facing geometry from snapping

        Type:
        :   boolean, default False

    use_snap_driver
    :   Enable snapping when transforming keys in the Driver Editor

        Type:
        :   boolean, default False

    use_snap_driver_absolute
    :   Snap to full values

        Type:
        :   boolean, default False

    use_snap_edit
    :   Snap onto non-active objects in edit mode (edit mode only)

        Type:
        :   boolean, default True

    use_snap_grid_absolute
    :   Absolute grid alignment while translating (based on the pivot center)

        Type:
        :   boolean, default False

    use_snap_node
    :   Snap Node during transform

        Type:
        :   boolean, default False

    use_snap_nonedit
    :   Snap onto objects not in edit mode (edit mode only)

        Type:
        :   boolean, default True

    use_snap_peel_object
    :   Consider objects as whole when finding volume center

        Type:
        :   boolean, default False

    use_snap_playhead
    :   Snap playhead when scrubbing

        Type:
        :   boolean, default False

    use_snap_rotate
    :   Rotate is affected by the snapping settings

        Type:
        :   boolean, default False

    use_snap_scale
    :   Scale is affected by snapping settings

        Type:
        :   boolean, default False

    use_snap_selectable
    :   Snap only onto objects that are selectable

        Type:
        :   boolean, default False

    use_snap_self
    :   Snap onto itself only if enabled (edit mode only)

        Type:
        :   boolean, default True

    use_snap_sequencer
    :   Snap strips during transform

        Type:
        :   boolean, default True

    use_snap_time_absolute
    :   Absolute time alignment when transforming keyframes

        Type:
        :   boolean, default False

    use_snap_to_same_target
    :   Snap only to target that source was initially near (“Face Nearest” only)

        Type:
        :   boolean, default False

    use_snap_translate
    :   Move is affected by snapping settings

        Type:
        :   boolean, default True

    use_snap_uv
    :   Snap UV during transform

        Type:
        :   boolean, default False

    use_transform_correct_face_attributes
    :   Correct data such as UVs and color attributes when transforming

        Type:
        :   boolean, default False

    use_transform_correct_keep_connected
    :   During the Face Attributes correction, merge attributes connected to the same vertex

        Type:
        :   boolean, default False

    use_transform_data_origin
    :   Transform object origins, while leaving the shape in place

        Type:
        :   boolean, default False

    use_transform_pivot_point_align
    :   Only transform object locations, without affecting rotation or scaling

        Type:
        :   boolean, default False

    use_transform_skip_children
    :   Transform the parents, leaving the children in place

        Type:
        :   boolean, default False

    use_uv_custom_region
    :   Custom defined region

        Type:
        :   boolean, default False

    use_uv_select_island
    :   Island selection

        Type:
        :   boolean, default False

    use_uv_select_sync
    :   Keep UV and edit mode mesh selection in sync

        Type:
        :   boolean, default True

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

    uv_sculpt_all_islands
    :   Brush operates on all islands

        Type:
        :   boolean, default False

    uv_sculpt_lock_borders
    :   Disable editing of boundary edges

        Type:
        :   boolean, default False

    uv_select_mode
    :   UV selection and display mode

        Type:
        :   enum in [Mesh Select Mode Uv Items](bpy_types_enum_items/mesh_select_mode_uv_items.html#rna-enum-mesh-select-mode-uv-items), default `'VERTEX'`

    uv_sticky_select_mode
    :   Method for extending UV vertex selection

        - `DISABLED`
          Disabled – Sticky vertex selection disabled.
        - `SHARED_LOCATION`
          Shared Location – Select UVs that are at the same location and share a mesh vertex.
        - `SHARED_VERTEX`
          Shared Vertex – Select UVs that share a mesh vertex, whether or not they are at the same location.

        Type:
        :   enum in [`'DISABLED'`, `'SHARED_LOCATION'`, `'SHARED_VERTEX'`], default `'SHARED_LOCATION'`

    vertex_group_subset
    :   Filter Vertex groups for Display

        - `ALL`
          All – All Vertex Groups.
        - `BONE_DEFORM`
          Deform – Vertex Groups assigned to Deform Bones.
        - `OTHER_DEFORM`
          Other – Vertex Groups assigned to non Deform Bones.

        Type:
        :   enum in [`'ALL'`, `'BONE_DEFORM'`, `'OTHER_DEFORM'`], default `'ALL'`

    vertex_group_user
    :   Display unweighted vertices

        - `NONE`
          None.
        - `ACTIVE`
          Active – Show vertices with no weights in the active group.
        - `ALL`
          All – Show vertices with no weights in any group.

        Type:
        :   enum in [`'NONE'`, `'ACTIVE'`, `'ALL'`], default `'ACTIVE'`

    vertex_group_weight
    :   Weight to assign in vertex groups

        Type:
        :   float in [0, 1], default 1.0

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

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

    workspace_tool_type
    :   Action when dragging in the viewport

        Type:
        :   enum in [`'DEFAULT'`, `'FALLBACK'`], default `'FALLBACK'`

    *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