          super().__init__(parent)
          self.pack(side=tk.RIGHT, anchor=tk.N, fill=tk.BOTH, expand=True)
          self.config_tools = config_tools
  
          self._tabs = {}
          self._build_tabs()
          self._build_sub_tabs()
          self._add_patch_callback(patch_callback)
          logger.debug("Initialized %s", self.__class__.__name__)
  
 
</s> remove     def __init__(self, parent, config_tools, patch_callback):
 </s> add     def __init__(self,
                 parent: ttk.Frame,
                 config_tools: ConfigTools,
                 patch_callback: Callable[[], None]) -> None: </s> remove     def _build_tabs(self):
 </s> add     def _build_tabs(self) -> None: </s> remove     def __init__(self, parent, config_key, options):
 </s> add     def __init__(self,
                 parent: OptionsBook,
                 config_key: str,
                 options: Dict[str, Any]): </s> remove         self._tk_vars = {}
 </s> add         self._tk_vars: Dict[str, tk.StringVar] = {} </s> remove         self.queues = dict()
 </s> add         self.queues: Dict[str, EventQueue] = {}
        self._tabs: Dict[str, Dict[str, Union[ttk.Notebook, ConfigFrame]]] = {}
          super().__init__(parent)
          self.pack(side=tk.RIGHT, anchor=tk.N, fill=tk.BOTH, expand=True)
          self.config_tools = config_tools
  
        self._tabs: Dict[str, Dict[str, Union[ttk.Notebook, ConfigFrame]]] = {}
          self._build_tabs()
          self._build_sub_tabs()
          self._add_patch_callback(patch_callback)
          logger.debug("Initialized %s", self.__class__.__name__)
  
keep keep keep keep replace keep keep keep keep keep
 Bugfix: convert - Gif Writer
  - Fix non-launch error on Gif Writer
  - convert plugins - linting
  - convert/fs_media/preview/queue_manager - typing
  - Change convert items from dict to Dataclass 
tools/preview/preview.py