
    hm              
           S SK JrJrJrJr  SSKJr  SSKJr  SSK	J
r
  SSKJr  \" 5       r\" S\S9r\\   r\R                   " S	5      S
\
\\4   4S j5       rS\
\\4   S\S\S
\\\4   4S jrg)    )CallableListTupleTypeVar   )NumpyOps)registry)Model)Array2dOutT)boundzlist2array.v1returnc                  "    [        S[        5      $ )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     Q/home/james-whalen/.local/lib/python3.13/site-packages/thinc/layers/list2array.pyr   r      s     w''r   modelXsis_trainc                    ^ ^ [         R                  U Vs/ s H  n[        U5      PM     sn5      mS[        S[        4UU 4S jjnT R
                  R                  U5      U4$ s  snf )NdYr   c                 <   > TR                   R                  U T5      $ )N)ops	unflatten)r   lengthsr   s    r   backpropforward.<locals>.backprop   s    yy""2w//r   )	NUMPY_OPS	asarray1ilenr   InTr   flatten)r   r   r   xr   r   s   `    @r   r   r      s_    !!2"62a3q62"67G0T 0c 0 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   