          has_meta = all(val is not None for val in meta.values())
          if has_meta:
              retval = None
          else:
              retval = len(cast(Dict[str, Union[List[int], List[float]]], meta["pts_time"]))
          logger.debug("Frame count from alignments file: (has_meta: %s, %s", has_meta, retval)
          return retval
  
      def process(self) -> None:
          """ Run the re-extraction from Alignments file process"""
 
</s> remove             retval = None
 </s> add             retval: Optional[int] = len(cast(Dict[str, Union[List[int], List[float]]],
                                        meta["pts_time"])) </s> remove         return cast(Union[List[Dict[str, str]], List[Dict[str, "PNGHeaderSourceDict"]]],
 </s> add         return cast(Union[List[Dict[str, str]], List[Tuple[str, "PNGHeaderDict"]]], </s> remove             retval = (item[0], item[1]["face_index"])
 </s> add             retval = (item[0], src["face_index"]) </s> remove         self._faces = Faces(arguments.faces_dir, with_alignments=True)
 </s> add         self._faces = Faces(arguments.faces_dir) </s> remove             if not self.data[key]["video_meta"]:
 </s> add             if not self.data[key].get("video_meta", {}):
            retval = None
          has_meta = all(val is not None for val in meta.values())
          if has_meta:
              retval = None
          else:
            retval = None
          logger.debug("Frame count from alignments file: (has_meta: %s, %s", has_meta, retval)
          return retval
  
      def process(self) -> None:
          """ Run the re-extraction from Alignments file process"""
keep keep keep keep replace keep keep keep keep keep
 Alignments Tool updates
  - Copy info back to alignments file from faces 
tools/alignments/jobs_frames.py