          for key, kwarg in kwargs.items():
              for idx, mesh_id in enumerate(mesh_ids[key]):
                  self._canvas.coords(mesh_id, *landmarks[key][idx].flatten())
                  self._canvas.itemconfig(mesh_id, state=state, **kwarg)
                  self._canvas.addtag_withtag("active_mesh_{}".format(key), mesh_id)
  
  
  class TKFace():
      """ An object that holds a single :class:`tkinter.PhotoImage` face, ready for placement in the
      :class:`Viewport`, Handles the placement of and removal of masks for the face as well as
 
</s> remove     x: int
 </s> add     left: int </s> remove         masks = dict()
 </s> add         masks = {} </s> remove     w: int
 </s> add     width: int </s> remove     x: int
 </s> add     left: int </s> remove                     self._hashes_to_frame.setdefault(face["hash"], dict())[frame_name] = idx
 </s> add                     self._hashes_to_frame.setdefault(face["hash"], {})[frame_name] = idx
                self._canvas.addtag_withtag(f"active_mesh_{key}", mesh_id)
          for key, kwarg in kwargs.items():
              for idx, mesh_id in enumerate(mesh_ids[key]):
                  self._canvas.coords(mesh_id, *landmarks[key][idx].flatten())
                  self._canvas.itemconfig(mesh_id, state=state, **kwarg)
                self._canvas.addtag_withtag(f"active_mesh_{key}", mesh_id)
  
  
  class TKFace():
      """ An object that holds a single :class:`tkinter.PhotoImage` face, ready for placement in the
      :class:`Viewport`, Handles the placement of and removal of masks for the face as well as
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 
tools/manual/faceviewer/viewport.py