class_docstr: Base for all Viz classes.
class_docstr_tok: ["Base","for","all","Viz","classes","."]
docstr: Decorator to fix sig+docs of subclasses passing kwargs to super
docstr_tok: ["Decorator","to","fix","sig+docs","of","subclasses","passing","kwargs","to","super"]
code: def extend_init(klass: Type) -> Type:
      """Decorator to fix sig+docs of subclasses passing kwargs to super"""
      sig_klass = inspect.signature(klass.__init__)
      params = [
          p for p in sig_klass.parameters.values() if p.name != "kwargs"
      ]
      for base in klass.__bases__:
          base_init = getattr(base, "__init__", None)
          if base_init:
              sig_base = inspect.signature(base_init)
              params += [
                  p
                  for p in sig_base.parameters.values()
                  if p.name not in sig_klass.parameters.keys()
              ]
      klass.__init__.__signature__ = sig_klass.replace(
          parameters=params
      )
      return klass
  
file_path: tslumen/tslumen/plot/interactive/base.py
imports: from typing import Optional, Any, Type
  from collections.abc import Mapping
  from abc import ABC, abstractmethod
  from copy import deepcopy
  import inspect
label_desc: Use image node_id 2 for calling the VizBase obj's underlying member method code with example usage: obj.extend_init(klass) and returns: klass