
    i_              
           d dl mZmZmZmZmZ ddlmZ ddlm	Z	 ddl
mZmZmZ  ed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f   fdZy)    )CallableListTupleTypeVarcast   )registry)Model)ArrayXdListXdRaggedInT)boundzlist2ragged.v1returnc                  "    t        dt              S )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     i/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/thinc/layers/list2ragged.pyr   r      s     ((r   modelXsis_trainc                      dt         dt        f fd} j                  j                  |D cg c]  }t	        |       c}      }t         j                  j                  |      |      |fS c c}w )NdYrr   c                     t        t        j                  j                  | j                  | j
                              S )N)r   r   ops	unflattendatalengths)r   r   s    r   backpropzforward.<locals>.backprop   s)    C,,SXXs{{CDDr   )OutTr   r   	asarray1ilenr   flatten)r   r   r   r!   xr    s   `     r   r   r      sd    Ed Es E ii!!2"6a3q6"67G%))##B'18;; #7s   A-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   