
    iM              
          d dl mZmZmZmZmZmZmZ ddlm	Z	 ddl
mZ ddlmZmZmZmZmZmZ  edeeeee   ee         Z e	j(                  d      deeef   d	eeef   fd
       Zdeeef   deded	eeef   fdZ	 ddeeef   dee   dee   d	dfdZd Zdeeef   deded	eeef   fdZdeeef   deded	eeef   fdZy)    )CallableListOptionalTupleTypeVarUnioncast   )registry)Model)Array2dFloats2dInts2dList2dPaddedRaggedSeqTzwith_list.v1layerreturnc                     t        d| j                   dt        t        | g| j                  D ci c]  }|| j                  |       c}      S c c}w )Nz
with_list())initlayersdims)r   nameforwardr   	dim_namesmaybe_get_dim)r   r   s     g/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/thinc/layers/with_list.py	with_listr    
   sR    
UZZL"w:?//J$dE''--J 
 Ks   AmodelXseqis_trainc           	          | j                   d   }t        |t              rt        |||      S t        |t              rt        |||      S t        t        t        t        f    |t        t        |      |            S )Nr   )r   
isinstancer   _padded_forwardr   _ragged_forwardr	   r   r   r   r   )r!   r"   r#   r   s       r   r   r      sg     $)<<?E$udH55	D&	!udH55E$.)5fd1CX+NOO    NXYc                     | j                   d   j                  |t        | |      nd |t        | |             y d        y )Nr   )r)   r*   )r   
initialize	_get_list)r!   r)   r*   s      r   r   r   !   sJ     
LLO!")E1
D!")E1
  48  r(   c                     t        |t              r| j                  j                  |      S t        |t              r0| j                  j                  |j                  |j                        S |S N)r%   r   opspadded2listr   	unflattendatalengths)r!   seqs     r   r-   r-   *   sO    #vyy$$S))	C	 yy""388S[[99
r(   Xrc                    | j                   j                  | j                   j                   |  |j                  |j                        |      \  }dt
        ffd}t         |      |j                        |fS )NdYrc           
      ~    t           | j                  | j                                    | j                        S r/   )r   r3   r4   )r8   flattenget_dXsr2   s    r   backpropz!_ragged_forward.<locals>.backprop?   s3    GIchh<=>KK
 	
r(   )r0   r2   r:   r3   r4   r   )r   r6   r#   Ysr<   r:   r;   r2   s        @@@r   r'   r'   3   sl     		##IiiG
 	"''2::6AKB
f 
 '"+rzz*H44r(   Xpc                     | j                   j                  | j                   j                   |  |      |      \  }fd} |      |fS )Nc                 ,       |                   S r/    )dYpr;   list2paddedr1   s    r   r<   z!_padded_forward.<locals>.backpropT   s    7;s#3455r(   )r0   r1   rC   )r   r>   r#   r=   r<   r;   rC   r1   s        @@@r   r&   r&   H   sO     ))''K))''K
 B2KB6 r?H$$r(   )NN)typingr   r   r   r   r   r   r	   configr   r!   r   typesr   r   r   r   r   r   r   r   r    boolr   r   r-   r'   r&   rA   r(   r   <module>rH      sc   H H H   E EvvvvtH~tF|L  U66>* uT4Z/@  !	Pt	P$(	P48	P
4>	P MQt!)$;CD>	5 5&,58<5
685*% %&,%8<%
68%r(   