user: Explain SpaceDopeSheetEditor(Space) in complete detail according to the official Blender documentation.

assistant: # SpaceDopeSheetEditor(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.SpaceDopeSheetEditor(*Space*)
:   Dope Sheet space data

    cache_cloth
    :   Show the active object’s cloth point cache

        Type:
        :   boolean, default False

    cache_dynamicpaint
    :   Show the active object’s Dynamic Paint cache

        Type:
        :   boolean, default False

    cache_particles
    :   Show the active object’s particle point cache

        Type:
        :   boolean, default False

    cache_rigidbody
    :   Show the active object’s Rigid Body cache

        Type:
        :   boolean, default False

    cache_simulation_nodes
    :   Show the active object’s simulation nodes cache and bake data

        Type:
        :   boolean, default False

    cache_smoke
    :   Show the active object’s smoke cache

        Type:
        :   boolean, default False

    cache_softbody
    :   Show the active object’s softbody point cache

        Type:
        :   boolean, default False

    dopesheet
    :   Settings for filtering animation data

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

    mode
    :   Editing context being displayed

        - `DOPESHEET`
          Dope Sheet – Edit all keyframes in scene.
        - `ACTION`
          Action Editor – Edit keyframes in active object’s Object-level action.
        - `SHAPEKEY`
          Shape Key Editor – Edit keyframes in active object’s Shape Keys action.
        - `GPENCIL`
          Grease Pencil – Edit timings for all Grease Pencil sketches in file.
        - `MASK`
          Mask – Edit timings for Mask Editor splines.
        - `CACHEFILE`
          Cache File – Edit timings for Cache File data-blocks.
        - `TIMELINE`
          Timeline – Simple timeline view with playback controls in the header, without channel list, side-panel, or footer.

        Type:
        :   enum in [`'DOPESHEET'`, `'ACTION'`, `'SHAPEKEY'`, `'GPENCIL'`, `'MASK'`, `'CACHEFILE'`, `'TIMELINE'`], default `'ACTION'`

    overlays
    :   Settings for display of overlays

        Type:
        :   [`SpaceDopeSheetOverlay`](bpy.types.SpaceDopeSheetOverlay.html#bpy.types.SpaceDopeSheetOverlay "bpy.types.SpaceDopeSheetOverlay"), (readonly, never None)

    show_cache
    :   Show the status of cached frames in the timeline

        Type:
        :   boolean, default False

    show_extremes
    :   Mark keyframes where the key value flow changes direction, based on comparison with adjacent keys

        Type:
        :   boolean, default False

    show_interpolation
    :   Display keyframe handle types and non-Bézier interpolation modes

        Type:
        :   boolean, default False

    show_markers
    :   If any exists, show markers in a separate row at the bottom of the editor

        Type:
        :   boolean, default False

    show_pose_markers
    :   Show markers belonging to the active action instead of Scene markers (Action and Shape Key Editors only)

        Type:
        :   boolean, default False

    show_region_channels
    :   Type:
        :   boolean, default False

    show_region_footer
    :   Type:
        :   boolean, default False

    show_region_hud
    :   Type:
        :   boolean, default False

    show_region_ui
    :   Type:
        :   boolean, default False

    show_seconds
    :   Show timing as a timecode instead of frames

        Type:
        :   boolean, default False

    show_sliders
    :   Show sliders beside F-Curve channels

        Type:
        :   boolean, default False

    ui_mode
    :   Editing context being displayed

        - `DOPESHEET`
          Dope Sheet – Edit all keyframes in scene.
        - `ACTION`
          Action Editor – Edit keyframes in active object’s Object-level action.
        - `SHAPEKEY`
          Shape Key Editor – Edit keyframes in active object’s Shape Keys action.
        - `GPENCIL`
          Grease Pencil – Edit timings for all Grease Pencil sketches in file.
        - `MASK`
          Mask – Edit timings for Mask Editor splines.
        - `CACHEFILE`
          Cache File – Edit timings for Cache File data-blocks.

        Type:
        :   enum in [`'DOPESHEET'`, `'ACTION'`, `'SHAPEKEY'`, `'GPENCIL'`, `'MASK'`, `'CACHEFILE'`], default `'ACTION'`

    use_auto_merge_keyframes
    :   Automatically merge nearby keyframes

        Type:
        :   boolean, default False

    use_marker_sync
    :   Sync Markers with keyframe edits

        Type:
        :   boolean, default False

    use_realtime_update
    :   When transforming keyframes, changes to the animation data are flushed to other views

        Type:
        :   boolean, default False

    *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.