o
    toiX                     @  s4   d dl mZ d dlZd dlmZ G dd deZdS )    )annotationsN)OpRunc                   @  s   e Zd ZdddZdS )CenterCropPadNc                   sz  |p| j }t|j |d u rtt }n	 fdd|D }dd |jD }dd |jD }t|j}t||ddD ]i\}}|j| }	||krHq:||	k rx|||< |	| }
|
d dkrf|
d }
t|
|	|
 }n|
d }
t|
|	|
 d	 }|||< q:|||< ||	 }
|
d dkr|
d }
t|
||
 }n|
d }
t|
||
 d	 }|||< q:tjt	||j
d
}|t	| }||t	|< |fS )Nc                   s    g | ]}|d kr
|n|  qS r    ).0axis
input_rankr   Y/home/ubuntu/.local/lib/python3.10/site-packages/onnx/reference/ops/op_center_crop_pad.py
<listcomp>   s     z&CenterCropPad._run.<locals>.<listcomp>c                 S     g | ]}t d |qS r   slicer   sr   r   r   r          c                 S  r   r   r   r   r   r   r   r      r   F)strict   r      )dtype)axeslenshapelistrangezipr   npzerostupler   )self
input_datar   r   
pad_slicescrop_slices	new_shapeashdimdslrescroppedr   r	   r   _run   sB   





zCenterCropPad._run)N)__name__
__module____qualname__r,   r   r   r   r   r      s    r   )
__future__r   numpyr   onnx.reference.op_runr   r   r   r   r   r   <module>   s   