
    im              
           d dl mZmZmZmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ  e       Z ede      Zee   Z ej                   d	      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TupleTypeVar   )NumpyOps)registry)Model)Array2dOutT)boundzlist2array.v1returnc                  "    t        dt              S )zTransform sequences to ragged arrays if necessary and return the data
    from the ragged array. If sequences are already ragged, do nothing. A
    ragged array is a tuple (data, lengths), where data is the concatenated data.
    
list2array)r
   forward     h/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/thinc/layers/list2array.pyr   r      s     w''r   modelXsis_trainc                      t         j                  |D cg c]  }t        |       c}      dt        dt        f fd} j
                  j                  |      |fS c c}w )NdYr   c                 <    j                   j                  |       S )N)ops	unflatten)r   lengthsr   s    r   backpropzforward.<locals>.backprop   s    yy""2w//r   )	NUMPY_OPS	asarray1ilenr   InTr   flatten)r   r   r   xr   r   s   `    @r   r   r      sV    !!2"6a3q6"67G0T 0c 0 99R (** #7s   AN)typingr   r   r   r   backendsr   configr	   r   r
   typesr   r   r   r"   layersr   boolr   r   r   r   <module>r+      s    1 1    J	 vW%
4j !(E#t)$ ( "(+5d# + + +tX~AV +r   