
    ri1                        d dl Z d dlmZmZmZmZmZ d dlZddl	 ddl
m	Z	 ddl
mZ e	j                  ZdZd Zg d	Zd
 Z eddgdd      Z eddd       eddd       eddd       eddd       eddd       ed       edddgdd      dZe	j                  D ]L  Z ee	e      Z eeedz         Zej/                  ee      Z eer  eee      e      ne      Ze e       e<   N y)    N)is_cupyis_jaxscipy_namespace_forSCIPY_ARRAY_APIxp_capabilities   )*)_ndimage_api)_delegatorsndimagec                     t        | t        j                  t        j                  z        rj	                  |       S t        | t
        t        z        r t        |       fd| D              S | S )z4Convert arrays/scalars hiding in the sequence `arg`.c              3   6   K   | ]  }t        |        y wN)_maybe_convert_arg).0xxps     i/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/scipy/ndimage/_support_alternative_backends.py	<genexpr>z%_maybe_convert_arg.<locals>.<genexpr>   s     @q+Ar2@s   )
isinstancenpndarraygenericasarraylisttupletype)argr   s    `r   r   r      sR    #rzzBJJ./zz#	C	&tCy@C@@@
    )distance_transform_bfdistance_transform_cdtfind_objectsgeometric_transformvectorized_filterc                       fd}|S )Nc                 H     t        j                          fd       }|S )Nc            	          | i |t              rHj                  t        vr6dd l}|j	                  d       }t        |j                        } || i |S t              rDj                  dk(  r5t              }t        |      }t        |j                        } || i |S  | i |}t        |t        j                  t        j                  z        rj                  |      S t        |t              r|S t        |t              rD|j                         D 	
ci c](  \  }	}
|	j!                         t#        fd|
D              * c}
}	S ||S t%        |      S c c}
}	w )Nr   zcupyx.scipy.map_coordinatesc              3   @   K   | ]  }j                  |        y wr   )r   )r   vvr   s     r   r   z>delegate_xp.<locals>.inner.<locals>.wrapper.<locals>.<genexpr>E   s     'C2

2'Cs   )r   __name__CUPY_BLOCKLIST	importlibimport_modulegetattrr   r   r   r   r   r   r   intdictitemsitemr   r   )argskwdsr-   cupyx_module
cupyx_funcspx
jax_modulejax_funcresultkvr   	delegatorfuncmodule_names              @r   wrapperz+delegate_xp.<locals>.inner.<locals>.wrapper'   sV   D)D)B r{t}}NB (66k]7ST$\4==A
!404001B B)"-$S+6
":t}}=... t,t,fbjj2::&=>::f--,!M-
 $*<<>Aa %'C'C"CC  ^!M .fb99s   &-E')	functoolswraps)r?   rA   r>   r@   s   ` r   innerzdelegate_xp.<locals>.inner&   s&    		%	: 
%	:L r    )r>   r@   rD   s   `` r   delegate_xprF   %   s    (R Lr   TcupyF)cpu_only
exceptionsallow_dask_computejax_jit)rH   rJ   rK   )out_of_scopez	jax.numpy)r#   r"   r    r!   r$   generate_binary_structurer(   
_signature)rB   scipy._lib._array_apir   r   r   r   r   numpyr   r
    r   __all__MODULE_NAMEr   r,   rF   default_capabilitiescapabilities_dict	func_namer/   	bare_funcr>   getcapabilitiesfvarsrE   r   r   <module>r\      sR        


 *X 'vh4 
 +$ $$ -$ .$ )$ "1d!C&6;"7# 0 %% Ii0IY%=>I$((4HIL 	,I{+I6 )	A
 DF9r   