docs: def leading_transpose(tensor: tf.Tensor, perm: List[Union[int, type(...)]]) -> tf.Tensor:
      """
      Transposes tensors with leading dimensions. Leading dimensions in
      permutation list represented via ellipsis `...`.
  
      When leading dimensions are found, `transpose` method
      considers them as a single grouped element indexed by 0 in `perm` list. So, passing
      `perm=[-2, ..., -1]`, you assume that your input tensor has [..., A, B] shape,
      and you want to move leading dims between A and B dimensions.
      Dimension indices in permutation list can be negative or positive. Valid positive
      indices start from 1 up to the tensor rank, viewing leading dimensions `...` as zero
      index.
  
      Example:
          a = tf.random.normal((1, 2, 3, 4, 5, 6))
          b = leading_transpose(a, [5, -3, ..., -2])
          sess.run(b).shape
          output> (6, 4, 1, 2, 3, 5)
  
      :param tensor: TensorFlow tensor.
      :param perm: List of permutation indices.
  
      :returns: TensorFlow tensor.
      :raises: ValueError when `...` cannot be found.
      """
      perm = copy.copy(perm)
      idx = perm.index(...)
      perm[idx] = 0
  
      rank = tf.rank(tensor)
      perm_tf = perm % rank
  
      leading_dims = tf.range(rank - len(perm) + 1)
      perm = tf.concat([perm_tf[:idx], leading_dims, perm_tf[idx+1:]], 0)
      return tf.transpose(tensor, perm)