
    h_              
           S SK JrJrJrJrJr  SSKJr  SSKJ	r	  SSK
JrJrJ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cast   )registry)Model)ArrayXdListXdRaggedInT)boundzlist2ragged.v1returnc                  "    [        S[        5      $ )zTransform sequences to ragged arrays if necessary and return the ragged
array. If sequences are already ragged, do nothing. A ragged array is a
tuple (data, lengths), where data is the concatenated data.
list2ragged)r
   forward     R/home/james-whalen/.local/lib/python3.13/site-packages/thinc/layers/list2ragged.pyr   r      s     ((r   modelXsis_trainc                    ^  S[         S[        4U 4S jjnT R                  R                  U Vs/ s H  n[	        U5      PM     sn5      n[        T R                  R                  U5      U5      U4$ s  snf )NdYrr   c                    > [        [        TR                  R                  U R                  U R
                  5      5      $ )N)r   r   ops	unflattendatalengths)r   r   s    r   backpropforward.<locals>.backprop   s)    C,,SXXs{{CDDr   )OutTr   r   	asarray1ilenr   flatten)r   r   r   r!   xr    s   `     r   r   r      sh    Ed Es E ii!!2"62a3q62"67G%))##B'18;; #7s   A2N)typingr   r   r   r   r   configr	   r   r
   typesr   r   r   r   r#   layersr   boolr   r   r   r   <module>r-      s    7 7   + +e6" 
!")U39% ) #)<5d# < < <tX~AV <r   