  
          self.group_frames = {}
          self._sub_group_frames = {}
  
          canvas_kwargs = dict(bd=0, highlightthickness=0, bg=self._theme["panel_background"])
  
          self._canvas = tk.Canvas(self, **canvas_kwargs)
          self._canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
  
          self.mainframe, self.optsframe = self.get_opts_frame()
 
</s> remove         self._tabs: Dict[str, Dict[str, Union[ttk.Notebook, ConfigFrame]]] = {}
 </s> add         self._tabs: dict[str, dict[str, ttk.Notebook | ConfigFrame]] = {} </s> remove         self._sessions: T.Dict[int, dict] = {}
        self._lowest_avg_loss: T.Dict[str, float] = {}
        self._config: T.Dict[str, ConfigValueType] = {}
 </s> add         self._sessions: dict[int, dict] = {}
        self._lowest_avg_loss: dict[str, float] = {}
        self._config: dict[str, ConfigValueType] = {} </s> remove         self._cache: Dict[str, DetectedFace] = {}
        self._aligned_landmarks: Dict[str, np.ndarray] = {}
 </s> add         self._cache: dict[str, DetectedFace] = {}
        self._aligned_landmarks: dict[str, np.ndarray] = {} </s> remove         self._mixed_precision_layers: T.List[str] = []
 </s> add         self._mixed_precision_layers: list[str] = [] </s> remove         self._changes: Dict[str, str] = {}
        self.serializer: Optional[Serializer] = None
 </s> add         self._changes: dict[str, str] = {}
        self.serializer: Serializer | None = None
        canvas_kwargs = {"bd": 0, "highlightthickness": 0, "bg": self._theme["panel_background"]}
  
          self.group_frames = {}
          self._sub_group_frames = {}
  
        canvas_kwargs = {"bd": 0, "highlightthickness": 0, "bg": self._theme["panel_background"]}
  
          self._canvas = tk.Canvas(self, **canvas_kwargs)
          self._canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
  
          self.mainframe, self.optsframe = self.get_opts_frame()
keep keep keep keep replace keep keep keep keep keep
 Rebase code (#1326)

* Remove tensorflow_probability requirement

* setup.py - fix progress bars

* requirements.txt: Remove pre python 3.9 packages

* update apple requirements.txt

* update INSTALL.md

* Remove python<3.9 code

* setup.py - fix Windows Installer

* typing: python3.9 compliant

* Update pytest and readthedocs python versions

* typing fixes

* Python Version updates
  - Reduce max version to 3.10
  - Default to 3.10 in installers
  - Remove incompatible 3.11 tests

* Update dependencies

* Downgrade imageio dep for Windows

* typing: merge optional unions and fixes

* Updates
  - min python version 3.10
  - typing to python 3.10 spec
  - remove pre-tf2.10 code
  - Add conda tests

* train: re-enable optimizer saving

* Update dockerfiles

* Update setup.py
  - Apple Conda deps to setup.py
  - Better Cuda + dependency handling

* bugfix: Patch logging to prevent Autograph errors

* Update dockerfiles

* Setup.py - Setup.py - stdout to utf-8

* Add more OSes to github Actions

* suppress mac-os end to end test 
lib/gui/control_helper.py