U
    qh                     @  sV   d dl mZ d dlmZ d dlZd dlmZ dddddd	d
dZG dd deZ	dS )    )annotations)AnyN)OpRunzlist[Any] | np.ndarrayz
np.ndarrayznp.ndarray | Nonez	list[Any])sequencetensorpositionreturnc              
   C  s   g }| d k	rtt | tjr&t| jdkrtz||  W n> tk
rr } z tdt|  d|  d|W 5 d }~X Y nX |d k	r|d t| t| }||| n
|	| |S )Nr   zUnable to iterate on type z: .)

isinstancenpZndarraylenshapeextend	TypeErrortypeinsertappend)r   r   r   seqeZinsert_position r   I/tmp/pip-unpacked-wheel-xnis5xre/onnx/reference/ops/op_sequence_insert.py(sequence_insert_reference_implementation   s&    

r   c                   @  s   e Zd ZdddZdS )SequenceInsertNc                 C  s|   |d krt ||}nbt|tr.t |||g}nHt|jdkrJt |||}n,t|jdkrlt ||t|g}n
t ||}|fS )Nr   )r   r
   intr   r   )selfSTindresr   r   r   _run)   s    

zSequenceInsert._run)N)__name__
__module____qualname__r   r   r   r   r   r   (   s   r   )N)

__future__r   typingr   Znumpyr   Zonnx.reference.op_runr   r   r   r   r   r   r   <module>   s    