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 dd	d
ededeeeee  eee  gef fddZdS )    )CallableListOptional)&convert_hf_pretrained_model_parameters)Doc   )has_hf_transformerstransformers   )TorchTransformerModelTmainrevisionnamer   returnc                    s   d fdd	}|S )zConstruct a callback that initializes a supported transformer
    model with weights from a corresponding HuggingFace model.

    name (str):
        Name of the HuggingFace model.
    revision (str):
        Name of the model revision/branch.
    Nc                    s>   t std| jd j}tjj d}t|}|| | S )Nz]`HFTransformerEncoderLoader` requires the Hugging Face `transformers` package to be installedr   r   )	r   
ValueErrorshims_modelr	   	AutoModelfrom_pretrainedr   load_state_dict)modelXYencoderhf_modelparamsr   r    _/home/ubuntu/.local/lib/python3.10/site-packages/spacy_curated_transformers/models/hf_loader.pyload   s   
z4build_hf_transformer_encoder_loader_v1.<locals>.load)NNr   )r   r   r    r   r   r   &build_hf_transformer_encoder_loader_v1
   s   r!   N)typingr   r   r   #curated_transformers.models.hf_utilr   spacy.tokensr   _compatr   r	   typesr   strr!   r   r   r   r   <module>   s"    