          -------
          int
              The number of faces that appear in the given frame_name
          """
          retval = len(self._data.get(frame_name, dict()).get("faces", []))
          logger.trace(retval)
          return retval
  
      # << MANIPULATION >> #
  
 
</s> remove         return self._data.get(frame_name, dict()).get("faces", [])
 </s> add         return self._data.get(frame_name, {}).get("faces", []) </s> remove         retval = bool(self._data.get(frame_name, dict()).get("faces", []))
 </s> add         retval = bool(self._data.get(frame_name, {}).get("faces", [])) </s> remove             retval = bool(len(self._data.get(frame_name, dict()).get("faces", [])) > 1)
 </s> add             retval = bool(len(self._data.get(frame_name, {}).get("faces", [])) > 1) </s> remove         retval = all("thumb" in face
 </s> add         retval = all(face.get("thumb") </s> remove         logger.trace(retval)
 </s> add         logger.trace(retval)  # type: ignore
        retval = len(self._data.get(frame_name, {}).get("faces", []))
          -------
          int
              The number of faces that appear in the given frame_name
          """
        retval = len(self._data.get(frame_name, {}).get("faces", []))
          logger.trace(retval)
          return retval
  
      # << MANIPULATION >> #
  
keep keep keep keep replace keep keep keep keep keep
 lib.align updates:
  - alignments.py
    - Add typed dicts for imported alignments
    - Explicitly check for presence of thumb value in alignments dict
    - linting
  - detected_face.py
    - Typing
    - Linting
    - Legacy support for pre-aligned face
    - Update dependencies to new property names 
lib/align/alignments.py