docstr: Return 2 if coordinates are (x, y) as in gvar, 1 if single values
  as in cvar, or 0 if empty.
code: def getCoordWidth(self):
      """Return 2 if coordinates are (x, y) as in gvar, 1 if single values
      as in cvar, or 0 if empty.
      """
      firstDelta = next(
          (c for c in self.coordinates if c is not None), None
      )
      if firstDelta is None:
          return 0  # empty or has no impact
      if type(firstDelta) in (int, float):
          return 1
      if type(firstDelta) is tuple and len(firstDelta) == 2:
          return 2
      raise TypeError(
          "invalid type of delta; expected (int or float) number, or "
          "Tuple[number, number]: %r" % firstDelta
      )
  
imports: from fontTools.misc.fixedTools import fixedToFloat, floatToFixed, floatToFixedToStr, strToFixedToFloat, otRound
  from fontTools.misc.textTools import safeEval
  import array
  from collections import Counter, defaultdict
  import io
  import logging
  import struct
  import sys
label_desc: Use image node_id 21 for calling the TupleVariation obj's underlying member method code with example usage: obj.getCoordWidth() and returns: int, int, int