  from lib.serializer import Serializer, get_serializer_from_filename
  from lib.utils import deprecation_warning
  
  from .sort_methods import SortBlur, SortColor, SortFace, SortHistogram, SortMultiMethod
  from .sort_methods_aligned import SortDistance, SortFaceCNN, SortPitch, SortSize, SortYaw
  
  if TYPE_CHECKING:
      from .sort_methods import SortMethod
  
  logger = logging.getLogger(__name__)
 
</s> remove from typing import Dict, Optional, Tuple
 </s> add from typing import cast, Dict, Optional, Tuple </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] </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
from .sort_methods_aligned import SortDistance, SortFaceCNN, SortPitch, SortSize, SortYaw, SortRoll
  from lib.serializer import Serializer, get_serializer_from_filename
  from lib.utils import deprecation_warning
  
  from .sort_methods import SortBlur, SortColor, SortFace, SortHistogram, SortMultiMethod
from .sort_methods_aligned import SortDistance, SortFaceCNN, SortPitch, SortSize, SortYaw, SortRoll
  
  if TYPE_CHECKING:
      from .sort_methods import SortMethod
  
  logger = logging.getLogger(__name__)
keep keep keep keep replace keep keep keep keep keep
 sort tool: Add sort by roll 
tools/sort/sort.py