code: def vector_generate(start_pt, end_pt, normalize=False):
      
      try:
          if start_pt is None or len(start_pt) == 0 or end_pt is None or len(end_pt) == 0:
              raise ValueError("Input points cannot be empty")
      except TypeError as e:
          print("An error occurred: {}".format(e.args[-1]))
          raise TypeError("Input must be a list or tuple")
      except Exception:
          raise
  
      ret_vec = []
      for sp, ep in zip(start_pt, end_pt):
          ret_vec.append(ep - sp)
  
      if normalize:
          ret_vec = vector_normalize(ret_vec)
      return ret_vec
docs: Generates a vector from 2 input points.
  
      :param start_pt: start point of the vector
      :type start_pt: list, tuple
      :param end_pt: end point of the vector
      :type end_pt: list, tuple
      :param normalize: if True, the generated vector is normalized
      :type normalize: bool
      :return: a vector from start_pt to end_pt
      :rtype: list