          config_key: str
              The section/plugin key for these configuration options
          """
          logger.debug("Add Config Frame")
          panel_kwargs = dict(columns=2, option_columns=2, blank_nones=False, style="CPanel")
          frame = ttk.Frame(self)
          frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
          cp_options = [opt for key, opt in self._options.items() if key != "helptext"]
          ControlPanel(frame, cp_options, header_text=None, **panel_kwargs)
          self._add_actions(parent, config_key)
 
</s> remove         panel_kwargs = dict(blank_nones=False, label_width=10, style="CPanel")
 </s> add         panel_kwargs = {"blank_nones": False, "label_width": 10, "style": "CPanel"} </s> remove                                    defaults: Dict[str, Any],
                                   available_masks: List[str],
                                   has_predicted_mask: bool) -> List[ControlPanelOption]:
 </s> add                                    defaults: dict[str, T.Any],
                                   available_masks: list[str],
                                   has_predicted_mask: bool) -> list[ControlPanelOption]: </s> remove                  options: Dict[str, Any]):
 </s> add                  options: dict[str, T.Any]): </s> remove         config_dicts: Dict[str, Dict[str, Any]] = {}
 </s> add         config_dicts: dict[str, dict[str, T.Any]] = {} </s> remove             key = pkg[0].split("==", maxsplit=1)[0]
 </s> add             reqs = next(parse_requirements(pkg[0]))  # TODO Handle '=' vs '==' for conda
            key = reqs.unsafe_name
            specs = reqs.specs

        panel_kwargs = {"columns": 2, "option_columns": 2, "blank_nones": False, "style": "CPanel"}
          config_key: str
              The section/plugin key for these configuration options
          """
          logger.debug("Add Config Frame")
        panel_kwargs = {"columns": 2, "option_columns": 2, "blank_nones": False, "style": "CPanel"}
          frame = ttk.Frame(self)
          frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
          cp_options = [opt for key, opt in self._options.items() if key != "helptext"]
          ControlPanel(frame, cp_options, header_text=None, **panel_kwargs)
          self._add_actions(parent, config_key)
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 
tools/preview/control_panels.py