o
    i($                     @   s  d Z ddlZddlmZ ddlmZmZ 	dhddZ	did	d
Z	e	Z
	djddZeZ	dkddZdkddZ	dlddZ	dlddZdmddZeZdnddZeZ		doddZ		dpd d!Z		dqd"d#Zdrd$d%Zdsd&d'ZeZdsd(d)Zdsd*d+Zdtd,d-Z	dud.d/Zdmd0d1ZeZ d2d3 Z!	dld4d5Z"	dnd6d7Z#	dmd8d9Z$dmd:d;Z%	dvd<d=Z&dvd>d?Z'dmd@dAZ(dBdC Z)dmdDdEZ*dmdFdGZ+dndHdIZ,e,Z-e,Z.dvdJdKZ/e/Z0e/Z1e/Z2e/Z3e/Z4e/Z5e/Z6e/Z7e/Z8e/Z9e9Z:	dldLdMZ;e;Z<e;Z=	dwdNdOZ>e>Z?e>Z@e>ZAe>ZBe>ZCe>ZDe>ZE	dldPdQZFdndRdSZGeGZH	dldTdUZI	dxdWdXZJdmdYdZZKd[ejLfd\d]ZMd[dejLfd^d_ZNdyd`daZOdbdc ZPdvdddeZQdmdfdgZRdS )za  Delegators for alternative backends in scipy.ndimage.

The signature of `func_signature` must match the signature of ndimage.func.
The job of a `func_signature` is to know which arguments of `ndimage.func`
are arrays.

* signatures are generated by

--------------
import inspect
from scipy import ndimage

names = [x for x in dir(ndimage) if not x.startswith('_')]
objs = [getattr(ndimage, name) for name in names]
funcs = [obj for obj in objs if inspect.isroutine(obj)]

for func in funcs:
    sig = inspect.signature(func)
    print(f"def {func.__name__}_signature{sig}:
	pass

")
---------------

* which arguments to delegate on: manually trawled the documentation for
  array-like and array arguments

    Narray_namespace)_skip_if_dtype_skip_if_int        c                 O   s   t | |t|S Nr   r   )inputmatrixoffsetoutput_shapeoutputargskwds r   S/home/kim/smarthome/.venv/lib/python3.10/site-packages/scipy/ndimage/_delegators.pyaffine_transform_signature      r      c                 O      t | |t|S r   r   )r	   	structure
iterationsr   r   r   r   r   r   binary_closing_signature%   r   r   c                 O   s   t | |t||S r   r   )r	   r   r   maskr   r   r   r   r   r   binary_dilation_signature-      r   c                 O      t | |t|S r   r   )r	   r   r   originr   kwargsr   r   r   binary_fill_holes_signature5   r   r   c                 C   r   r   r   )r	   r   r   r   r   r   r   label_signature;      r    c                 O      t | ||t|S r   r   )r	   Z
structure1Z
structure2r   r   r   r   r   r   binary_hit_or_miss_signature?   r   r#   c                 O   r"   r   r   )r	   r   r   r   r   r   r   r   r   binary_propagation_signatureE   r   r$   c                 O   r   r   r   )r	   weightsr   r   r   r   r   r   convolve_signatureK   r!   r&   c                 O   r   r   r   )r	   r%   axisr   r   r   r   r   r   convolve1d_signatureQ   r!   r)   	euclideanTFc                 C   s   t | ||S r   r   )r	   metricsamplingreturn_distancesreturn_indices	distancesindicesr   r   r   distance_transform_bf_signatureW      r1   
chessboardc                 C      t | ||S r   r   )r	   r+   r-   r.   r/   r0   r   r   r    distance_transform_cdt_signature^   r2   r5   c                 C   r4   r   r   )r	   r,   r-   r.   r/   r0   r   r   r    distance_transform_edt_signaturee   r2   r6   c                 C      t | S r   r   )r	   Z	max_labelr   r   r   find_objects_signaturel      r8   c                 C      t | t|S r   r   )r	   sizenr(   r   r   r   r   fourier_ellipsoid_signaturep      r=   c                 C   r:   r   r   )r	   sigmar<   r(   r   r   r   r   fourier_gaussian_signaturev   r>   r@   c                 C   r:   r   r   )r	   shiftr<   r(   r   r   r   r   fourier_shift_signaturey   r>   rB   c                 O      t | t|S r   r   )r	   r?   orderr   r   r   r   r   r   gaussian_filter_signature}   r>   rE   c                 O   r:   r   r   )r	   r?   r(   rD   r   r   r   r   r   r   gaussian_filter1d_signature      rF   c                 O      t | t|S r   r   )r	   r?   r   r   r   r   r   r   %gaussian_gradient_magnitude_signature   r>   rI   c                 C   s   t S r   )np)rankZconnectivityr   r   r   #generate_binary_structure_signature   s   rL   c                 O      t | |t|S r   r   )r	   functionr;   	footprintr   r   r   r   r   r   generic_filter_signature   s   rP   c                 O   r:   r   r   )r	   rN   Zfilter_sizer(   r   r   r   r   r   r   generic_filter1d_signature   rG   rQ   c                 O   rH   r   r   )r	   Z
derivativer   r   r   r   r   r   $generic_gradient_magnitude_signature   s   rR   c                 O   rH   r   r   )r	   Zderivative2r   r   r   r   r   r   generic_laplace_signature   s   rS   c                 O   rC   r   r   )r	   mappingr   r   r   r   r   r   r   geometric_transform_signature   rG   rU   c                 C   s
   t | |S r   r   )r	   minmaxZbinslabelsindexr   r   r   histogram_signature      
rZ   c                 C   r7   r   r   )r   r   r   r   r   r   iterate_structure_signature   r9   r\   c                 O   s
   t | |S r   r   )r	   rX   r   r   r   r   r   labeled_comprehension_signature   r[   r]   c                 O   s   t | t|S r   r   )r	   r   r   r   r   r   r   laplace_signature   r>   r^   c                 O   r   r   r   )r	   Zcoordinatesr   r   r   r   r   r   map_coordinates_signature   r!   r_   c                 O   rC   r   r   )r	   r;   r(   r   r   r   r   r   r   maximum_filter1d_signature   r>   r`   c                 C   r   r   )r   r   )r	   rX   rY   r   r   r   maximum_signature   r!   ra   c                 O   s   t | |t|S r   r   )r	   r;   rO   r   r   r   r   r   r   median_filter_signature   r   rb   c                 O   s   t | ||t|S r   r   )r	   r;   rO   r   r   r   r   r   r   r    morphological_gradient_signature   r   rc   c                 O   rM   r   r   )r	   Z
percentiler;   rO   r   r   r   r   r   r   percentile_filter_signature   r   rd   c                 O   rH   r   r   )r	   r(   r   r   r   r   r   r   prewitt_signature   r>   re   c                 O   rM   r   r   )r	   rK   r;   rO   r   r   r   r   r   r   rank_filter_signature  r   rf   r   r   c                 O   r:   r   r   )r	   ZangleZaxesZreshaper   r   r   r   r   r   rotate_signature  rG   rh   c                 O   rH   r   r   )r	   rA   r   r   r   r   r   r   shift_signature  r>   ri      c                 O   rH   r   r   )r	   rD   r   r   r   r   r   r   spline_filter_signature  r>   rk   c                 O   rC   r   r   )r	   rD   r(   r   r   r   r   r   r   spline_filter1d_signature  rG   rl   c                 O   rH   r   r   )r	   r;   r   r   r   r   r   r   uniform_filter_signature  r>   rm   c                 O   r7   r   r   )Zarrr   r   r   r   r   value_indices_signature  r9   rn   c                 C   r"   r   r   )r	   markersr   r   r   r   r   watershed_ift_signature#  s   rp   c                 O   rH   r   r   )r	   Zzoomr   r   r   r   r   r   zoom_signature'  r>   rq   )r   NN)Nr   N)Nr   NN)NNr   )NNNr   )r'   N)r*   NTFNN)r3   TFNN)NTFNN)r   )r'   r'   N)r   N)r'   r   N)NN)NNNN)rg   TN)rj   N)S__doc__numpyrJ   Zscipy._lib._array_apir   Zscipy.ndimage._ni_supportr   r   r   r   Zbinary_opening_signaturer   Zbinary_erosion_signaturer   r    r#   r$   r&   Zcorrelate_signaturer)   Zcorrelate1d_signaturer1   r5   r6   r8   r=   Zfourier_uniform_signaturer@   rB   rE   rF   rI   Zgaussian_laplace_signaturerL   rP   rQ   rR   rS   rU   rZ   r\   r]   r^   r_   r`   Zminimum_filter1d_signatureZuniform_filter1d_signaturera   Zminimum_signatureZmedian_signatureZmean_signatureZvariance_signatureZstandard_deviation_signatureZsum_labels_signatureZsum_signatureZmaximum_position_signatureZminimum_position_signatureZextrema_signatureZcenter_of_mass_signaturerb   Zminimum_filter_signatureZmaximum_filter_signaturerc   Zmorphological_laplace_signatureZwhite_tophat_signatureZblack_tophat_signatureZgrey_closing_signatureZgrey_dilation_signatureZgrey_erosion_signatureZgrey_opening_signaturerd   re   Zsobel_signaturerf   rh   ri   Zfloat64rk   rl   rm   rn   rp   rq   r   r   r   r   <module>   s    







































