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

assistant: # SpaceSpreadsheet(Space)

base classes — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`Space`](bpy.types.Space.html#bpy.types.Space "bpy.types.Space")

*class* bpy.types.SpaceSpreadsheet(*Space*)
:   Spreadsheet space data

    attribute_domain
    :   Attribute domain to display

        Type:
        :   enum in [Attribute Domain Items](bpy_types_enum_items/attribute_domain_items.html#rna-enum-attribute-domain-items), default `'POINT'`

    geometry_component_type
    :   Part of the geometry to display data from

        Type:
        :   enum in [Geometry Component Type Items](bpy_types_enum_items/geometry_component_type_items.html#rna-enum-geometry-component-type-items), default `'MESH'`

    is_pinned
    :   Context path is pinned

        Type:
        :   boolean, default False

    object_eval_state
    :   - `EVALUATED`
          Evaluated – Use data from fully or partially evaluated object.
        - `ORIGINAL`
          Original – Use data from original object without any modifiers applied.
        - `VIEWER_NODE`
          Viewer Node – Use intermediate data from viewer node.

        Type:
        :   enum in [`'EVALUATED'`, `'ORIGINAL'`, `'VIEWER_NODE'`], default `'EVALUATED'`

    row_filters
    :   Filters to remove rows from the displayed data

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

    show_internal_attributes
    :   Display attributes with names starting with a period that are meant for internal use

        Type:
        :   boolean, default False

    show_only_selected
    :   Only include rows that correspond to selected elements

        Type:
        :   boolean, default False

    show_region_channels
    :   Type:
        :   boolean, default False

    show_region_footer
    :   Type:
        :   boolean, default False

    show_region_toolbar
    :   Type:
        :   boolean, default False

    show_region_ui
    :   Type:
        :   boolean, default False

    tables
    :   Persistent data for the tables shown in this spreadsheet editor

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

    use_filter
    :   Type:
        :   boolean, default False

    viewer_path
    :   Path to the data that is displayed in the spreadsheet

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

    *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

    *classmethod* draw_handler_add(*callback*, *args*, *region_type*, *draw_type*)
    :   Add a new draw handler to this space type.
        It will be called every time the specified region in the space type will be drawn.
        Note: All arguments are positional only for now.

        Parameters:
        :   - **callback** (*Callable**[**...**,* *Any**]*) – A function that will be called when the region is drawn.
              It gets the specified arguments as input, it’s return value is ignored.
            - **args** (*tuple**[**Any**,* *...**]*) – Arguments that will be passed to the callback.
            - **region_type** (*str*) – The region type the callback draws in; usually `WINDOW`. ([`bpy.types.Region.type`](bpy.types.Region.html#bpy.types.Region.type "bpy.types.Region.type"))
            - **draw_type** (*str*) – Usually `POST_PIXEL` for 2D drawing and `POST_VIEW` for 3D drawing. In some cases `PRE_VIEW` can be used. `BACKDROP` can be used for backdrops in the node editor.

        Returns:
        :   Handler that can be removed later on.

        Return type:
        :   object

    *classmethod* draw_handler_remove(*handler*, *region_type*)
    :   Remove a draw handler that was added previously.

        Parameters:
        :   - **handler** (*object*) – The draw handler that should be removed.
            - **region_type** (*str*) – Region type the callback was added to.