  from dataclasses import dataclass, field
  import logging
  import sys
  from threading import Lock
  from typing import Dict, Optional, Tuple
  
  
  import cv2
  import numpy as np
  
 
</s> remove from .sort_methods_aligned import SortDistance, SortFaceCNN, SortPitch, SortSize, SortYaw
 </s> add from .sort_methods_aligned import SortDistance, SortFaceCNN, SortPitch, SortSize, SortYaw, SortRoll </s> remove #: tools/sort/cli.py:54
 </s> add #: tools/sort/cli.py:56 </s> remove #: tools/sort/cli.py:57
 </s> add #: tools/sort/cli.py:59 </s> remove     def _get_pitch_yaw(self) -> None:
        """ Obtain the yaw and pitch from the :attr:`_rotation` in eular angles. """
 </s> add     @property
    def roll(self) -> float:
        """ float: The roll of the aligned face in eular angles """
        if not any(self._pitch_yaw_roll):
            self._get_pitch_yaw_roll()
        return self._pitch_yaw_roll[2]

    def _get_pitch_yaw_roll(self) -> None:
        """ Obtain the yaw, roll and pitch from the :attr:`_rotation` in eular angles. """ </s> remove         if not any(self._pitch_yaw):
            self._get_pitch_yaw()
        return self._pitch_yaw[1]
 </s> add         if not any(self._pitch_yaw_roll):
            self._get_pitch_yaw_roll()
        return self._pitch_yaw_roll[1]
from typing import cast, Dict, Optional, Tuple
  from dataclasses import dataclass, field
  import logging
  import sys
  from threading import Lock
from typing import cast, Dict, Optional, Tuple
  
  
  import cv2
  import numpy as np
  
keep keep keep keep replace keep keep keep keep keep
 sort tool: Add sort by roll 
lib/align/aligned_face.py