
    M/Ph                        d dl Z d dlmZmZmZmZmZ d dlZd dl	m
Z
 d dlmZ  ed          Zerd dlZ ed          Zdedef         d	edef         fd
Zdedef         d	edef         fdZdej        deeeedf         f         d	efdZer/deeef         fdZdej        deeeedf         f         d	efdZdS dej        deeeedf         f         d	efdZdS )    N)CallableSequenceTupleTypeVarUnionnan_mask)
has_importnumbaTfn.returnc                     t          |           t          j        |           dt          j        dt
          ffd            }|S )zDecorator for nullable arraysarrayr   c                 F    | t          |                    }  | g|R i |S Nr   )r   argskwargshandles_missings      b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/visions/backends/numpy/array_utils.pyinnerz!array_handle_nulls.<locals>.inner   s3    huoo&u6t666v666    )array_not_empty	functoolswrapsnpndarraybool)r   r   r   s     @r   array_handle_nullsr      s\     &b))O_R7RZ 7T 7 7 7 7 7 7 Lr   c                 n     t          j                   dt          j        dt          f fd            }|S )z!Decorator to exclude empty arraysr   r   c                 B    | j         d         dk    rdS  | g|R i |S )Nr   F)shape)r   r   r   r   s      r   r   zarray_not_empty.<locals>.inner!   s9    ;q>Q5r%)$)))&)))r   )r   r   r   r   r   )r   r   s   ` r   r   r      sO     _R*RZ *T * * * * * *
 Lr   r   dtypesc                 :    t          fd| D                       S )Nc              3   8   K   | ]}t          |          V  d S r   )
isinstance).0vr#   s     r   	<genexpr>z!_base_all_type.<locals>.<genexpr>+   s-      44z!V$$444444r   )allr   r#   s    `r   _base_all_typer,   *   s&    4444e444444r   dtypec                 p     t          j        d          dt          j        dt          f fd            }|S )NT)nopythonr   r   c                 t    t          j        | j                  D ]}t          | |                   ur dS dS )NFT)nbprangesizetype)r   ir-   s     r   r   zall_type_numba.<locals>.inner4   sD    Yuz** ! !a>>.. 55 /4r   )r1   jitr   r   r   )r-   r   s   ` r   all_type_numbar7   3   sP    					 	 	 	 	 	 	 
		 r   c                 "    t          | |          S r   r,   r+   s     r   all_typer:   =       eV,,,r   c                 "    t          | |          S r   r9   r+   s     r   r:   r:   B   r;   r   )r   typingr   r   r   r   r   numpyr   $visions.backends.shared.nan_handlingr	   !visions.backends.shared.utilitiesr
   	has_numbar   r1   r   r   r   r   r   r4   r,   r7   r:    r   r   <module>rC      s       < < < < < < < < < < < < < <     9 9 9 9 9 9 8 8 8 8 8 8Jw	 GCLL
8CI. 
8CI3F 
 
 
 
	d+ 	d0C 	 	 	 	5"* 5eD%c	:J4J.K 5PT 5 5 5 5  -
eE1Ho    -
 -E$dCi8H2H,I -d - - - - - -
-
 -E$dCi8H2H,I -d - - - - - -r   