
    /j                    V    d dl mZ d dlZd dlmZ dZddZddZ G d de          Z	dS )    )annotationsN)OpRun)UOsplit_listslist | np.ndarraypadding_requirement
list | intreturnlistc                z   t          | t                    r3t          |t                    sJ | d t          |          D             z   S t          | t          j                  r:t          |t                    sJ t          t          t          | |                    S t          dt          |            d          )Nc                    g | ]}d S )  ).0_s     g/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/onnx/reference/ops/op_string_split.py
<listcomp>z$pad_empty_string.<locals>.<listcomp>   s    EEEQbEEE    zInvalid array type '')

isinstancer   intrangenpndarraymappad_empty_string	TypeErrortype)r   r	   s     r   r   r      s     +t$$ F-s33333EE%0C*D*DEEEEE+rz** M-t44444C(+7JKKLLL
?4+<+<???
@
@@r   c                   t           j                            |                     t           j                  ||          } t          j        t          t           j        g          |          }t          j        |d          |z
  	                                }t          j
        t          ||          t                    }| j        dk    r |j        g | j        dR  }||fS )N)otypesr   )initial)dtype)r   charsplitastypestr_	vectorizelenint64maxtolistarrayr   objectsizereshapeshape)x	separatormaxsplitr   
num_splitsr	   split_lists_paddeds          r   split_with_paddingr7      s    '-- 1 19hGGK5c28*555kBBJ6*a888:EMMOO&9::&   	v{{7/7DD!DDDz))r   c                      e Zd ZddZdS )StringSplitNc                    |dk    rd }|j         j        t          vrt          d|j                    t	          |||          S )Nr   z.Inputs must be string tensors, received dtype )r#   kind_acceptable_str_dtypesr   r7   )selfr2   	delimiterr4   s       r   _runzStringSplit._run(   sK    ??I7<555VQWVVWWW!!Y999r   NN)__name__
__module____qualname__r?   r   r   r   r9   r9   '   s(        : : : : : :r   r9   )r   r   r	   r
   r   r   r@   )

__future__r   numpyr   onnx.reference.op_runr   r<   r   r7   r9   r   r   r   <module>rG      s    # " " " " "     ' ' ' ' ' '# 	A 	A 	A 	A* * * *: : : : :% : : : : :r   