U
    9%e-!                     @   s  d dl mZmZ ddlmZ dddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddМZG dd҄ deZdS )   )AutoModelForSeq2SeqLMAutoTokenizer   )PipelineToolZace_ArabZace_LatnZacm_ArabZacq_ArabZaeb_ArabZafr_LatnZajp_ArabZaka_LatnZamh_EthiZapc_ArabZarb_ArabZarb_LatnZars_ArabZary_ArabZarz_ArabZasm_BengZast_LatnZawa_DevaZayr_LatnZazb_ArabZazj_LatnZbak_CyrlZbam_LatnZban_LatnZbel_CyrlZbem_LatnZben_BengZbho_DevaZbjn_ArabZbjn_LatnZbod_TibtZbos_LatnZbug_LatnZbul_CyrlZcat_LatnZceb_LatnZces_LatnZcjk_LatnZckb_ArabZcrh_LatnZcym_LatnZdan_LatnZdeu_LatnZdik_LatnZdyu_LatnZdzo_TibtZell_GrekZeng_LatnZepo_LatnZest_LatnZeus_LatnZewe_LatnZfao_LatnZfij_LatnZfin_LatnZfon_LatnZfra_LatnZfur_LatnZfuv_LatnZgla_LatnZgle_LatnZglg_LatnZgrn_LatnZguj_GujrZhat_LatnZhau_LatnZheb_HebrZhin_DevaZhne_DevaZhrv_LatnZhun_LatnZhye_ArmnZibo_LatnZilo_LatnZind_LatnZisl_LatnZita_LatnZjav_LatnZjpn_JpanZkab_LatnZkac_LatnZkam_LatnZkan_KndaZkas_ArabZkas_DevaZkat_GeorZknc_ArabZknc_LatnZkaz_CyrlZkbp_LatnZkea_LatnZkhm_KhmrZkik_LatnZkin_LatnZkir_CyrlZkmb_LatnZkmr_LatnZkon_LatnZkor_HangZlao_LaooZlij_LatnZlim_LatnZlin_LatnZlit_LatnZlmo_LatnZltg_LatnZltz_LatnZlua_LatnZlug_LatnZluo_LatnZlus_LatnZlvs_LatnZmag_DevaZmai_DevaZmal_MlymZmar_DevaZmin_ArabZmin_LatnZmkd_CyrlZplt_LatnZmlt_LatnZmni_BengZkhk_CyrlZmos_LatnZmri_LatnZmya_MymrZnld_LatnZnno_LatnZnob_LatnZnpi_DevaZnso_LatnZnus_LatnZnya_LatnZoci_LatnZgaz_LatnZory_OryaZpag_LatnZpan_GuruZpap_LatnZpes_ArabZpol_LatnZpor_LatnZprs_ArabZpbt_ArabZquy_LatnZron_LatnZrun_LatnZrus_CyrlZsag_LatnZsan_DevaZsat_OlckZscn_LatnZshn_MymrZsin_SinhZslk_LatnZslv_LatnZsmo_LatnZsna_LatnZsnd_ArabZsom_LatnZsot_LatnZspa_LatnZals_LatnZsrd_LatnZsrp_CyrlZssw_LatnZsun_LatnZswe_LatnZswh_LatnZszl_LatnZtam_TamlZtat_CyrlZtel_TeluZtgk_CyrlZtgl_LatnZtha_ThaiZtir_EthiZtaq_LatnZtaq_TfngZtpi_LatnZtsn_LatnZtso_LatnZtuk_LatnZtum_LatnZtur_LatnZtwi_LatnZtzm_TfngZuig_ArabZukr_CyrlZumb_LatnZurd_ArabZuzn_LatnZvec_LatnZvie_LatnZwar_LatnZwol_LatnZxho_LatnZydd_HebrZyor_LatnZyue_HantZzho_HansZzho_HantZzsm_LatnZzul_Latn)zAcehnese ArabiczAcehnese LatinzMesopotamian ArabiczTa'izzi-Adeni ArabiczTunisian ArabicZ	AfrikaanszSouth Levantine ArabicZAkanZAmhariczNorth Levantine ArabiczModern Standard Arabicz Modern Standard Arabic RomanizedzNajdi ArabiczMoroccan ArabiczEgyptian ArabicZAssameseZAsturianZAwadhizCentral AymarazSouth AzerbaijanizNorth AzerbaijaniZBashkirZBambaraZBalineseZ
BelarusianZBembaZBengaliZBhojpurizBanjar ArabiczBanjar LatinzStandard TibetanZBosnianZBuginese	BulgarianZCatalanZCebuanoZCzechZChokwezCentral KurdishzCrimean TatarZWelshZDanishZGermanzSouthwestern DinkaZDyulaZDzongkhaGreekZEnglishZ	EsperantoZEstonianZBasqueZEweZFaroeseZFijianZFinnishZFonZFrenchZFriulianzNigerian FulfuldezScottish GaelicZIrishZGalicianZGuaraniZGujaratizHaitian CreoleZHausaHebrewZHindiZChhattisgarhiZCroatianZ	HungarianZArmenianZIgboZIlocanoZ
IndonesianZ	IcelandicZItalianZJavaneseJapaneseZKabyleZJingphoZKambaZKannadazKashmiri ArabiczKashmiri DevanagariZGeorgianzCentral Kanuri ArabiczCentral Kanuri LatinZKazakhu   KabiyèZKabuverdianuZKhmerZKikuyuZKinyarwandaZKyrgyzZKimbunduzNorthern KurdishZKikongoKoreanZLaoZLigurianZ
LimburgishZLingalaZ
LithuanianZLombardZ	LatgalianZLuxembourgishz
Luba-KasaiZGandaZLuoZMizozStandard LatvianZMagahiZMaithiliZ	MalayalamZMarathizMinangkabau Arabic zMinangkabau LatinZ
MacedonianzPlateau MalagasyZMaltesezMeitei BengalizHalh MongolianZMossiZMaoriZBurmeseZDutchzNorwegian Nynorsku   Norwegian BokmålZNepalizNorthern SothoZNuerZNyanjaZOccitanzWest Central OromoZOdiaZ
PangasinanzEastern PanjabiZ
PapiamentozWestern PersianZPolishZ
PortugueseZDarizSouthern PashtozAyacucho QuechuaZRomanianZRundiRussianZSangoZSanskritZSantaliZSicilianZShanZSinhalaZSlovakZ	SlovenianZSamoanZShonaZSindhiZSomalizSouthern SothoZSpanishzTosk AlbanianZ	SardinianZSerbianZSwatiZ	SundaneseZSwedishZSwahiliZSilesianZTamilZTatarZTeluguZTajikZTagalogThaiZTigrinyazTamasheq LatinzTamasheq Tifinaghz	Tok PisinZTswanaZTsongaZTurkmenZTumbukaTurkishZTwizCentral Atlas TamazightZUyghurZ	UkrainianZUmbunduZUrduzNorthern UzbekZVenetianZ
VietnameseZWarayZWolofZXhosazEastern YiddishZYorubazYue ChinesezChinese SimplifiedzChinese TraditionalzStandard MalayZZuluc                   @   sP   e Zd ZdZdZdZdZeZe	Z
eZdddgZdgZdd Zdd	 Zd
d ZdS )TranslationToolz
    Example:

    ```py
    from transformers.tools import TranslationTool

    translator = TranslationTool()
    translator("This is a super nice API!", src_lang="English", tgt_lang="French")
    ```
    z facebook/nllb-200-distilled-600Ma  This is a tool that translates text from a language to another. It takes three inputs: `text`, which should be the text to translate, `src_lang`, which should be the language of the text to translate and `tgt_lang`, which should be the language for the desired ouput language. Both `src_lang` and `tgt_lang` are written in plain English, such as 'Romanian', or 'Albanian'. It returns the text translated in `tgt_lang`.Z
translatortextc                 C   sX   || j krt| d|| j kr0t| d| j | }| j | }| jj|d||dS )Nz is not a supported language.pt)Zreturn_tensorssrc_langtgt_lang)lang_to_code
ValueErrorZpre_processorZ_build_translation_inputs)selfr   r   r    r   ]/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/transformers/tools/translation.pyencode   s    



   zTranslationTool.encodec                 C   s   | j jf |S )N)modelgenerate)r   inputsr   r   r   forward  s    zTranslationTool.forwardc                 C   s   | j j|d  ddS )N    T)Zskip_special_tokens)Zpost_processordecodetolist)r   outputsr   r   r   r     s    zTranslationTool.decodeN)__name__
__module____qualname____doc__Zdefault_checkpointdescriptionnamer   Zpre_processor_classr   Zmodel_classLANGUAGE_CODESr   r   r    r   r   r   r   r   r   r   r      s   
r   N)Zmodels.autor   r   baser   r'   r   r   r   r   r   <module>   s    Q