code: def interior_angle(p1, p2, o=(0, 0)):
      
      v1 = vector(o, p1)
      v2 = vector(o, p2)
      len1 = distance(o, p1)
      len2 = distance(o, p2)
      try:
          return acos(dot_product(v1, v2) / (len1 * len2))
      except ZeroDivisionError:
          raise ValueError("p1 or p2 is overlapped with origin")
docs: Returns interior angle of two vector(0 <= θ <= pi)
      Args:
        p1, p2: point (x, y)
        o: origin
      Raises:
        ValueError: p1 or p2 is overlapped with origin