code: def tag_configure(self, tag_name, **kwargs):
          
          callbacks = [
              kwargs.get("move_callback", None),
              kwargs.get("left_callback", None),
              kwargs.get("right_callback", None)
          ]
          for callback in callbacks:
              if callback is not None and not callable(callback):
                  raise ValueError("One or more callbacks is not a callable object")
          self._tags[tag_name] = kwargs
docs: Create a marker tag
  
          :param tag_name: Identifier for the tag
  
          :param move_callback: Callback to be called upon moving a
              marker. Arguments to callback:
              ``(iid: str, (old_start: float, old_finish: float),
              (new_start: float, new_finish: float))``
          :type move_callback: callable
          :param left_callback: Callback to be called upon left clicking
              a marker. Arguments to callback:
              ``(iid: str, x_coord: int, y_coord: int)``
          :type left_callback: callable
          :param right_callback: Callback to be called upon right clicking
              a marker. Arguments to callback:
              ``(iid: str, x_coord: int, y_coord: int)``
          :type right_callback: callable
          :param menu: A Menu widget to show upon right click. Can be
              used with the right_callback option simultaneously.
          :type menu: tk.Menu
  
          In addition, supports all options supported by markers. Note
          that tag options are applied to markers upon marker creation,
          and thus is a tag is updated, the markers are not automatically
          updated as well.