  else:
      from typing import TypedDict
  
  
  logger = logging.getLogger(__name__)  # pylint: disable=invalid-name
  _VERSION = 2.2
  # VERSION TRACKING
 
</s> remove logger = logging.getLogger(__name__)  # pylint: disable=invalid-name
_VERSION = 2.2
 </s> add if sys.version_info < (3, 8):
    from typing_extensions import TypedDict
else:
    from typing import TypedDict </s> remove from tensorflow.python.framework import errors_impl as tf_errors
 </s> add from tensorflow.python.framework import errors_impl as tf_errors  # pylint:disable=no-name-in-module # noqa </s> remove from typing import Dict, List, TYPE_CHECKING

 </s> add from typing import Callable, Dict, List, Optional, Tuple, TYPE_CHECKING, Union
if TYPE_CHECKING:
    from .aligned_face import CenteringType
  else:
      from typing import TypedDict
  
if TYPE_CHECKING:
    from .aligned_face import CenteringType
  
  logger = logging.getLogger(__name__)  # pylint: disable=invalid-name
  _VERSION = 2.2
  # VERSION TRACKING
keep keep add 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