
    h              
           S SK JrJrJrJr  SSKJr  SSKJr  \\S4   r	\\S4   r
\R                  " S5      S\S\S	\\	\
4   4S
 j5       rS\\	\
4   S\	S\S	\\
\4   4S jr SS\\	\
4   S\\	   S\\
   S	S4S jjrg)    )AnyCallableOptionalTuple   )registry)Model.zwith_getitem.v1idxlayerreturnc                 N    [        SUR                   S3[        [        U/SU 0S9$ )zUTransform data on the way into and out of a layer, by plucking an item
from a tuple.
zwith_getitem()r
   )initlayersattrs)r	   nameforwardr   )r
   r   s     S/home/james-whalen/.local/lib/python3.13/site-packages/thinc/layers/with_getitem.pywith_getitemr   
   s3    
 


|1%wcl     modelitemsis_trainc                    ^^ U R                   S   mU R                  S   " UT   U5      u  nmS[        S[        4UU4S jjnUS T U4-   UTS-   S  -   U4$ )Nr
   r   d_outputr   c                 >   > T" U T   5      nU S T U4-   U TS-   S  -   $ )N    )r   dY_ibackprop_itemr
   s     r   backpropforward.<locals>.backprop   s4    Xc]+~'(379*===r   r   )r   r   OutTInT)r   r   r   Y_ir!   r    r
   s        @@r   r   r      sr     ++e
CasX>C>4 >C > > #;#%a	"22H<<r   NXYc                 ~    U R                   S   nUb  X   OUnUb  X#   OUnU R                  S   R                  XES9  g )Nr
   r   )r&   r'   )r   r   
initialize)r   r&   r'   r
   X_ir%   s         r   r   r   %   sE     ++e
CM!&qCM!&qC	LLO,r   )NN)typingr   r   r   r   configr   r   r	   r$   r#   r   intr   boolr   r   r   r   r   <module>r/      s    1 1  CHoS#X 
"#
c 
% 
E#t),< 
 $

=d
=$'
=37
=
4>
= KO-d- (-9A$-	-r   