
    bIgY	                        d dl mZ d dlZd dlmZ 	 	 d	 	 	 	 	 	 	 	 	 	 	 ddZ G d de      Z G d de      Z G d	 d
e      Z	y)    )annotationsN)OpRunc           
     l   t        |t              rt        j                  |      }t        |t              rt        j                  |      }t        |t              rt        j                  |      }t        |t              rt        j                  |      }t	        |j
                        dk(  rt        j                  |g      }t	        |j
                        dk(  rt        j                  |g      }|Y|)t        ||      D cg c]  \  }}t        ||       }}}nt        |||      D cg c]  \  }}}t        |||       }}}}n|I| j
                  D 	cg c]  }	t        d|	       }}	t        |||      D ]  \  }}}	t        ||      ||	<    nK| j
                  D 	cg c]  }	t        d|	       }}	t        ||||      D ]  \  }}}	}t        |||      ||	<    	 | t        |         S c c}}w c c}}}w c c}	w c c}	w # t        $ r"}t        d|d| j
                  d      |d }~ww xY w)Nr   zUnable to extract slice z for shape .)

isinstancelistnparraylenshapezipslicetuple	TypeError)
datastartsendsaxesstepsseslicesdas
             X/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/reference/ops/op_slice.py_slicer      s    &$&!$xx~$xx~%
6<<A6(#
4::!xx|=.1&$.?@daeAqk@F@47e4LMMAqeAq!nMFM=+/::6aeAqk6F6vtT2 (1a!!QKq	( ,0::6aeAqk6F6!&$e< +
1a!!QNq	+E&M"" AM 7 7
  &vjDJJ>K
	s0   G1/G7G>%H#H 	H3H..H3c                      e Zd ZddZy)SliceCommonNc                &    t        |||||      }|fS N)r   )selfr   r   r   r   r   ress          r   _runzSliceCommon._run5   s    T64u5v    NN)__name__
__module____qualname__r#    r$   r   r   r   4   s    r$   r   c                      e Zd Zd Zy)Slice_10c                2    t         j                  | ||       y r    )r   __init__)r!   	onnx_node
run_paramss      r   r-   zSlice_10.__init__;   s    T9j9r$   N)r&   r'   r(   r-   r)   r$   r   r+   r+   :   s    :r$   r+   c                      e Zd Zd ZddZy)Slice_1c                    t         j                  | ||       dD ]B  }t        | |      st        | |      t	        t        | |            dk(  s6t        | |d        D y )N)r   r   r   r   r   )r   r-   hasattrgetattrr   setattr)r!   r.   r/   fs       r   r-   zSlice_1.__init__@   s\    T9j94 	'A4#tQ+GD!4D0E0Ja&		'r$   Nc                4    t         j                  | ||||      S r    )r   r#   )r!   r   r   r   r   s        r   r#   zSlice_1._runH   s    dFD$??r$   )NNN)r&   r'   r(   r-   r#   r)   r$   r   r1   r1   ?   s    '@r$   r1   r%   )r   
np.ndarrayr   r8   r   r8   r   np.ndarray | Noner   r9   returnr8   )

__future__r   numpyr	   onnx.reference.ops._opr   r   r   r+   r1   r)   r$   r   <module>r>      s|    #  ( ##&
&& & 	&
 & &R% :{ :

@k 
@r$   