
    i/                         d dl mZmZmZ ddlmZ ddlmZ ddlm	Z	m
Z
 ddlmZ e
Z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egef   f   fdZy)    )CallableTuplecast   )registry)Model)Floats2dRagged)	ArrayInfozreduce_first.v1returnc                  "    t        dt              S )z9Reduce ragged-formatted sequences to their first element.reduce_first)r   forward     j/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/thinc/layers/reduce_first.pyr   r      s     ))r   modelXris_trainc                       j                   j                  t        t        j                        j
                        \  }t        j                  |      dt        dt        f fd}||fS )NdYr   c                     j                  |        j                  j                  |       }t        |j                        S )N)check_consistencyopsbackprop_reduce_firstr
   lengths)r   dXr   
array_infor   starts_endss     r   backpropzforward.<locals>.backprop   s8    $$R(YY,,R=b"**%%r   )
r   r   r   r	   datar   r   
from_arrayOutTInT)r   r   r   Yr    r   r   s   ``   @@r   r   r      sb     YY++D277,CRZZPNA{%%a(J&T &c & &
 h;r   N)typingr   r   r   configr   r   r   typesr	   r
   utilr   r$   r#   layersr   boolr   r   r   r   <module>r,      s    ( (   $  "#*eCI& * $*
d!$04
44&#+&&'r   