o
    ig                     @   s   d dl mZ d dlmZmZ g dddgg g dgZg dZg ddd	gg g d
gZg dd	dgg g dgZdeee	 ee	 f fddZ
deee	 ee	 f dee	 defddZdd ZdS )    )List)Modelwith_flatten_v2)               )         )r   r   r   r   r	   r
   r   r   )r   r   r   r
   )r   r   	   )r   r   r	   r   )r   r   
   returnc                   C   s   t dtdS )Nmemoize_input)nameforward)r   _memoize_input_forward r   r   X/home/ubuntu/.local/lib/python3.10/site-packages/thinc/tests/layers/test_with_flatten.py_memoize_input   s   r   modelXis_trainc                 C   s.   || j d< dtt fdd}dd |D |fS )N
last_inputdYc                 S   s   dd | D S )Nc                 S      g | ]}|d  qS )r   r   .0vr   r   r   
<listcomp>       z<_memoize_input_forward.<locals>.backprop.<locals>.<listcomp>r   )r   r   r   r   backprop   s   z(_memoize_input_forward.<locals>.backpropc                 S   r   )r   r   r   r   r   r   r       r!   z*_memoize_input_forward.<locals>.<listcomp>)attrsr   int)r   r   r   r"   r   r   r   r      s   
r   c                  C   sR   t t } | tdd\}}|tksJ | jd jd tksJ |ttks'J d S )NT)r   r   r   )r   r   INPUTOUTPUTlayersr#   
INPUT_FLATBACKPROP_OUTPUT)r   Yr"   r   r   r   test_with_flatten   s
   
r+   N)typingr   	thinc.apir   r   r%   r(   r&   r)   r$   r   boolr   r+   r   r   r   r   <module>   s    
