o
     ¢i  ã                   @   s¨   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 d¡deeef fd	d
„ƒZdeeef dededeeeegef f fdd„ZdS )é    )ÚCallableÚTupleÚcasté   )Úregistry)ÚModel)ÚFloats2dÚRagged)Ú	ArrayInfozreduce_last.v1Úreturnc                   C   s
   t dtƒS )z8Reduce ragged-formatted sequences to their last element.Úreduce_last)r   Úforward© r   r   úL/home/ubuntu/.local/lib/python3.10/site-packages/thinc/layers/reduce_last.pyr      s   
r   ÚmodelÚXrÚis_trainc                    sJ   ˆj  ttˆ jƒˆ j¡\}‰t |¡‰dtdt	f‡ ‡‡‡fdd„}||fS )NÚdYr   c                    s$   ˆ  | ¡ ˆj | ˆ¡}t|ˆ jƒS )N)Úcheck_consistencyÚopsÚbackprop_reduce_lastr	   Úlengths)r   ÚdX©r   Ú
array_infoÚlastsr   r   r   Úbackprop   s   
zforward.<locals>.backprop)
r   r   r   r   Údatar   r
   Ú
from_arrayÚOutTÚInT)r   r   r   ÚYr   r   r   r   r      s   
r   N)Útypingr   r   r   Úconfigr   r   r   Útypesr   r	   Úutilr
   r    r   Úlayersr   Úboolr   r   r   r   r   Ú<module>   s$    
ÿÿÿþ