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 ddl	m	Z	 edƒZ
ed	ƒZe d
¡dee
ef dedee
ef fdd„ƒZdS )é    )ÚListÚTypeVarÚcasté   )Úregistry)ÚModelé   )Úchain)ÚnoopÚInTÚOutTzclone.v1ÚorigÚnÚreturnc                 C   sd   |dkrt tttf tƒ ƒS |dkr| S | g}t|d ƒD ]	}| |  ¡ ¡ qt tttf t|Ž ƒS )zoConstruct `n` copies of a layer, with distinct weights.  i.e.
    `clone(f, 3)(x)` computes f(f'(f''(x))).
    r   r   )	r   r   r   r   r
   ÚrangeÚappendÚcopyr	   )r   r   ÚlayersÚi© r   úF/home/ubuntu/.local/lib/python3.10/site-packages/thinc/layers/clone.pyÚclone   s   r   N)Útypingr   r   r   Úconfigr   Úmodelr   r	   r
   r   r   r   Úintr   r   r   r   r   Ú<module>   s    ,