          self._build_sub_tabs()
          self._add_patch_callback(patch_callback)
          logger.debug("Initialized %s", self.__class__.__name__)
  
      def _build_tabs(self):
          """ Build the notebook tabs for the each configuration section. """
          logger.debug("Build Tabs")
          for section in self.config_tools.sections:
              tab = ttk.Notebook(self)
              self._tabs[section] = {"tab": tab}
 
</s> remove     def _build_sub_tabs(self):
 </s> add     def _build_sub_tabs(self) -> None: </s> remove         self._tabs = {}
 </s> add         self._tabs: Dict[str, Dict[str, Union[ttk.Notebook, ConfigFrame]]] = {} </s> remove         self.queues = dict()
 </s> add         self.queues: Dict[str, EventQueue] = {} </s> remove     def _queue_size(self):
 </s> add     def _queue_size(self) -> int: </s> remove     def _build_frame(self, parent, config_key):
 </s> add     def _build_frame(self, parent: OptionsBook, config_key: str) -> None:
    def _build_tabs(self) -> None:
          self._build_sub_tabs()
          self._add_patch_callback(patch_callback)
          logger.debug("Initialized %s", self.__class__.__name__)
  
    def _build_tabs(self) -> None:
          """ Build the notebook tabs for the each configuration section. """
          logger.debug("Build Tabs")
          for section in self.config_tools.sections:
              tab = ttk.Notebook(self)
              self._tabs[section] = {"tab": tab}
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