          self._pbar = re.compile(r"(?:eta\s[\d\W]+)|(?:\s+\|\s+\d+%)\Z")
          self._eof = False
          self._read_bytes = 1024
  
          self._lines: List[str] = []
          self._out = ""
  
      def _read_from_pty(self, proc: Any, winpty_error: Any) -> None:
          """ Read :attr:`_num_bytes` from WinPTY. If there is an error reading, recursively halve
          the number of bytes read until we get a succesful read. If we get down to 1 byte without a
 
</s> remove     def _read_from_pty(self, proc: Any, winpty_error: Any) -> None:
 </s> add     def _read_from_pty(self, proc: T.Any, winpty_error: T.Any) -> None: </s> remove     def _parse_lines(self) -> None:
        """ Process the latest batch of lines that have been received from winPTY. """
        for line in self._lines:  # Dump the output to log
            line = line.rstrip()
            is_cr = bool(self._pbar.search(line))
            if line and not is_cr:
                if self._last_line_cr:
                    self._last_line_cr = False
                    if not self._env.is_installer:
                        # Go to next line
                        self._non_gui_print("")
                self._seen_line_log(line)
            elif line:
                self._last_line_cr = True
                logger.debug(line)
                # NSIS only updates on line endings, so force new line for installer
                self._non_gui_print(line, end=None if self._env.is_installer else "\r")
        self._lines = []

 </s> add  </s> remove         self._sysfs_paths: List[str] = []
 </s> add         self._sysfs_paths: list[str] = [] </s> remove     def _lines_groupsize(raw_lines: List[List[str]], sorted_lines: List[List[str]]) -> int:
 </s> add     def _lines_groupsize(raw_lines: list[list[str]], sorted_lines: list[list[str]]) -> int: </s> remove     def save_config(self, section: Optional[str] = None) -> None:
 </s> add     def save_config(self, section: str | None = None) -> None:
        self._lines: list[str] = []
          self._pbar = re.compile(r"(?:eta\s[\d\W]+)|(?:\s+\|\s+\d+%)\Z")
          self._eof = False
          self._read_bytes = 1024
  
        self._lines: list[str] = []
          self._out = ""
  
      def _read_from_pty(self, proc: Any, winpty_error: Any) -> None:
          """ Read :attr:`_num_bytes` from WinPTY. If there is an error reading, recursively halve
          the number of bytes read until we get a succesful read. If we get down to 1 byte without a
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 
setup.py