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 ddlmZ ddlmZ dd	lmZ ed
e	eeZG dd dee eZdS )    )GenericOptionalTypeVar)Tensor)Module   )AlbertEncoder)BertEncoder)RobertaEncoder)AttentionMask)PyTorchTransformerOutputCuratedEncoderTc                	       sR   e Zd ZdZdeddf fddZ		ddedee d	ee de	fd
dZ
  ZS )CuratedTransformerzoSimple wrapper for encoders. Currently only used to add a predictable
    prefix (curated_encoder) to encoders.encoderreturnNc                    s   t    || _d S )N)super__init__curated_encoder)selfr   	__class__ c/home/ubuntu/.local/lib/python3.10/site-packages/curated_transformers/models/curated_transformer.pyr      s   

zCuratedTransformer.__init__	input_idsattention_masktoken_type_idsc                 C   s   | j |||S )zb
        Shapes:
            input_ids, attention_mask, token_type_ids - (batch, seq_len)
        )r   forward)r   r   r   r   r   r   r   r      s   
zCuratedTransformer.forward)NN)__name__
__module____qualname____doc__r   r   r   r   r   r   r   __classcell__r   r   r   r   r      s    
r   N)typingr   r   r   torchr   torch.nnr   albert.encoderr   bert.encoderr	   roberta.encoderr
   	attentionr   outputr   r   r   r   r   r   r   <module>   s    