                           alignments: Dict[str, Dict[str, List[Tuple[int,
                                                                      "AlignmentFileDict",
                                                                      str,
                                                                      dict]]]]
                           ) -> Dict[str, Dict[str, "AlignmentDict"]]:
          """ Sort the faces into face index order as they appeared in the original alignments file.
  
          If the face index stored in the png header does not match it's position in the alignments
          file (i.e. A face has been removed from a frame) then update the header of the
          corresponding png to the correct index as exists in the newly created alignments file.
 
</s> remove                          alignments: Dict[str, Dict[str, List[Tuple[int,
                                                                    "AlignmentFileDict",
 </s> add                          alignments: dict[str, dict[str, list[tuple[int,
                                                                    AlignmentFileDict, </s> remove                            alignment: "AlignmentFileDict",
 </s> add                            alignment: AlignmentFileDict, </s> remove     def __init__(self, folder: str, alignments: Optional[Alignments] = None) -> None:
 </s> add     def __init__(self, folder: str, alignments: Alignments | None = None) -> None: </s> remove         self._hashes_to_frame: Dict[str, Dict[str, int]] = {}
        self._hashes_to_alignment: Dict[str, AlignmentFileDict] = {}
 </s> add         self._hashes_to_frame: dict[str, dict[str, int]] = {}
        self._hashes_to_alignment: dict[str, AlignmentFileDict] = {} </s> remove     def _get_images_with_meta(self, filenames: List[str]) -> Tuple[np.ndarray, List[DetectedFace]]:
 </s> add     def _get_images_with_meta(self, filenames: list[str]) -> tuple[np.ndarray, list[DetectedFace]]:
                         ) -> dict[str, dict[str, AlignmentDict]]:
                           alignments: Dict[str, Dict[str, List[Tuple[int,
                                                                      "AlignmentFileDict",
                                                                      str,
                                                                      dict]]]]
                         ) -> dict[str, dict[str, AlignmentDict]]:
          """ Sort the faces into face index order as they appeared in the original alignments file.
  
          If the face index stored in the png header does not match it's position in the alignments
          file (i.e. A face has been removed from a frame) then update the header of the
          corresponding png to the correct index as exists in the newly created alignments file.
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/alignments/jobs_faces.py