              logger.error("No alignment files found in '%s'", self._args.alignments_file)
              sys.exit(1)
  
          logger.info("Batch mode selected. Processing alignments: %s", alignments)
          retval = dict(alignments_file=alignments,
                        faces_dir=[None for _ in range(len(alignments))],
                        frames_dir=[None for _ in range(len(alignments))])
          return retval
  
      def _get_frames_locations(self) -> Dict[str, List[Optional[str]]]:
          """ Obtain the full path to frame locations along with corresponding alignments file
          locations contained within the parent (batch) location
 
</s> remove     def _get_frames_locations(self) -> Dict[str, List[Optional[str]]]:
 </s> add     def _get_frames_locations(self) -> dict[str, list[str | None]]: </s> remove             retval = dict(faces_dir=faces,
                          frames_dir=[None for _ in range(len(faces))],
                          alignments_file=[None for _ in range(len(faces))])
 </s> add             retval = {"faces_dir": faces,
                      "frames_dir": [None for _ in range(len(faces))],
                      "alignments_file": [None for _ in range(len(faces))]} </s> remove     def _get_alignments_locations(self) -> Dict[str, List[Optional[str]]]:
 </s> add     def _get_alignments_locations(self) -> dict[str, list[str | None]]: </s> remove         return dict(alignments_file=cast(List[Optional[str]], alignments),
                    frames_dir=cast(List[Optional[str]], frames),
                    faces_dir=faces)
 </s> add         return {"alignments_file": T.cast(list[str | None], alignments),
                "frames_dir": T.cast(list[str | None], frames),
                "faces_dir": faces} </s> remove     def _get_input_locations(self) -> List[str]:
 </s> add     def _get_input_locations(self) -> list[str]:
        retval = {"alignments_file": alignments,
                  "faces_dir": [None for _ in range(len(alignments))],
                  "frames_dir": [None for _ in range(len(alignments))]}
              logger.error("No alignment files found in '%s'", self._args.alignments_file)
              sys.exit(1)
  
          logger.info("Batch mode selected. Processing alignments: %s", alignments)
        retval = {"alignments_file": alignments,
                  "faces_dir": [None for _ in range(len(alignments))],
                  "frames_dir": [None for _ in range(len(alignments))]}
        retval = {"alignments_file": alignments,
                  "faces_dir": [None for _ in range(len(alignments))],
                  "frames_dir": [None for _ in range(len(alignments))]}
        retval = {"alignments_file": alignments,
                  "faces_dir": [None for _ in range(len(alignments))],
                  "frames_dir": [None for _ in range(len(alignments))]}
          return retval
  
      def _get_frames_locations(self) -> Dict[str, List[Optional[str]]]:
          """ Obtain the full path to frame locations along with corresponding alignments file
          locations contained within the parent (batch) location
keep keep keep keep replace replace 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/alignments/alignments.py