code: def calcQuadraticArcLength(pt1, pt2, pt3):
      """Calculates the arc length for a quadratic Bezier segment.
  
      Args:
          pt1: Start point of the Bezier as 2D tuple.
          pt2: Handle point of the Bezier as 2D tuple.
          pt3: End point of the Bezier as 2D tuple.
  
      Returns:
          Arc length value.
  
      Example::
  
          >>> calcQuadraticArcLength((0, 0), (0, 0), (0, 0)) # empty segment
          0.0
          >>> calcQuadraticArcLength((0, 0), (50, 0), (80, 0)) # collinear points
          80.0
          >>> calcQuadraticArcLength((0, 0), (0, 50), (0, 80)) # collinear points vertical
          80.0
          >>> calcQuadraticArcLength((0, 0), (50, 20), (100, 40)) # collinear points
          107.70329614269008
          >>> calcQuadraticArcLength((0, 0), (0, 100), (100, 0))
          154.02976155645263
          >>> calcQuadraticArcLength((0, 0), (0, 50), (100, 0))
          120.21581243984076
          >>> calcQuadraticArcLength((0, 0), (50, -10), (80, 50))
          102.53273816445825
          >>> calcQuadraticArcLength((0, 0), (40, 0), (-40, 0)) # collinear points, control point outside
          66.66666666666667
          >>> calcQuadraticArcLength((0, 0), (40, 0), (0, 0)) # collinear points, looping back
          40.0
      """
      return calcQuadraticArcLengthC(
          complex(*pt1), complex(*pt2), complex(*pt3)
      )
  
imports: from fontTools.misc.arrayTools import calcBounds, sectRect, rectArea
  from fontTools.misc.transform import Identity
  import math
  from collections import namedtuple
  from math import sqrt, acos, cos, pi
label_desc: Use image node_id 7 for calling a global function with example usage: calcQuadraticArcLength(pt1, pt2, pt3) and returns: calcQuadraticArcLengthC