
    i                         d dl Z d dlZd dlZd dlmZ d dlZd dlZd dlmZm	Z	m
Z
mZ d dlmZmZmZ e j                   d        Ze	fdZd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zy)    N)Path)
ArgsKwargsLinearPaddedRagged)has_cupyis_cupy_arrayis_numpy_arrayc               #      K   t        t        j                               } |  t        j                  t        |              y wN)r   tempfilemkdtempshutilrmtreestr)ds    a/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/thinc/tests/util.pymake_tempdirr      s.     X A
G
MM#a&s   AAc                     | \  }}}|j                   \  }} |||      }|j                  d|       |j                  d|       |j                          |S )NWb)shape	set_param
initialize)	W_b_inputclsr   r   input_nr_outnr_inmodels           r   	get_modelr!      sS    LAq&GGMFEE	OOC	OOC	L    c                 f    | \  }}}|j                   d   |j                   d   |j                   d   fS )Nr      )r   )r   r   r   r   s       r   	get_shaper%      s2    LAq&<<?AGGAJ
22r"   c                 "   t        | t              rt        S t        | t              rt        S t        | t
              rt        S t        | t              rt        |       dk(  rt        S t        | t              rt        |       dk(  rt        S t        S )N      )
isinstancer   assert_raggeds_matchr   assert_paddeds_matchlistassert_lists_matchtuplelenassert_padded_data_matchassert_ragged_data_matchassert_arrays_match)inputss    r   get_data_checkerr4   #   sn    &&!##	FF	###	FD	!!!	FE	"s6{a'7''	FE	"s6{a'7''""r"   c                 |    | j                   |j                   k(  sJ | j                  d   |j                  d   k(  sJ y)Nr   T)dtyper   XYs     r   r2   r2   2   s9    77agg771:###r"   c                     t        | t              sJ t        |t              sJ t        |       t        |      k(  sJ t        | |      D ]  \  }}t	        ||        yNT)r)   r,   r/   zipr2   )r8   r9   xys       r   r-   r-   9   s^    aaq6SVAq	 "1Aq!"r"   c                     t        | t              sJ t        |t              sJ t        | j                  |j                         t        | j                  |j                         yr;   )r)   r   r2   lengthsdatar7   s     r   r*   r*   B   sI    a   a   		199-'r"   c                 F   t        | t              sJ t        |t              sJ t        | j                  |j                         t        | j                  |j                        sJ t        | j
                  |j
                        sJ | j                  j                  |j                  j                  k(  sJ | j                  j                  d   |j                  j                  d   k(  sJ | j                  j                  d   |j                  j                  d   k(  sJ y)Nr$   r   T)	r)   r   r2   	size_at_tr@   indicesrA   r6   r   r7   s     r   r+   r+   J   s    a   a   Q[[1qyy!))444qyy!))44466<<166<<'''66<<?affll1o---66<<?affll1o---r"   c                 2    t        t        |  t        |       S r   )r+   r   r7   s     r   r0   r0   V       
FAJ77r"   c                 2    t        t        |  t        |       S r   )r*   r   r7   s     r   r1   r1   Z   rF   r"   c                    t        | t              sJ t        | j                        |k(  sJ t	        | j
                  j                               |k(  sJ t        fd| j                  D              sJ t        fd| j
                  j                         D              sJ  ||       }d t        |t              st        |      nt        }t        ||      s
 |      sJ t        |t              rCt	        |j                               |k(  sJ t        fd|j                         D              sJ y t        |t        t        f      r)t        |t              sJ t        fd|D              sJ y t        |t              rt        |j                        |k(  sJ t	        |j
                  j                               |k(  sJ t        fd|j                  D              sJ t        fd|j
                  j                         D              sJ y t        |t        j                        st        j                  d|        y y )	Nc              3   6   K   | ]  }t        |        y wr   r)   .0argtype_s     r   	<genexpr>z)check_input_converters.<locals>.<genexpr>b   s     8#z#u%8   c              3   6   K   | ]  }t        |        y wr   rJ   rK   s     r   rO   z)check_input_converters.<locals>.<genexpr>c   s     C#z#u%CrP   c                 2    t        |       xs t        |       S r   )r	   r
   )arrs    r   is_supported_backend_arrayz:check_input_converters.<locals>.is_supported_backend_arrayf   s    S!8^C%88r"   c              3   .   K   | ]  } |        y wr    rL   rS   rT   s     r   rO   z)check_input_converters.<locals>.<genexpr>n   s     Js-c2J   c              3   .   K   | ]  } |        y wr   rV   rW   s     r   rO   z)check_input_converters.<locals>.<genexpr>q   s     As-c2ArX   c              3   .   K   | ]  } |        y wr   rV   rL   rM   rT   s     r   rO   z)check_input_converters.<locals>.<genexpr>v   s     Fs-c2FrX   c              3   .   K   | ]  } |        y wr   rV   r[   s     r   rO   z)check_input_converters.<locals>.<genexpr>w   s     Qs-c2QrX   zBad data type: )r)   r   r/   argsr,   kwargskeysallvaluestyper.   dictnumpyndarraypytestfail)	r9   backproprA   n_argskwargs_keysrN   dX
input_typerT   s	        `  @r   check_input_convertersrm   ^   s   a$$$qvv;&    K///88888C1BCCCC	!B9 $.dD#9duJb*%)CB)GGG$BGGI+---JbiikJJJJ	D4-	("e$$$AbAAAA	D*	%277|v%%%BIINN$%444FbggFFFFQbii>N>N>PQQQQemm,obT*+ -r"   )
contextlibr   r   pathlibr   rd   rf   	thinc.apir   r   r   r   
thinc.utilr   r	   r
   contextmanagerr   r!   r%   r4   r2   r-   r*   r+   r0   r1   rm   rV   r"   r   <module>rs      st          8 8 > >   $ 3
#	88,r"   