
    =pj              	          % S SK r S SKrS SKrS SKrS SKrS SKJrJr  S SKJ	r	  S SK
JrJrJrJr  S SKrS SKrS SKJr  \R*                  R-                  5         S SKrS\R0                  S'   S SKrS SKJr  S SKJr  S	S
KJr  Sr S SK J!s  J"r#  \#rS	SK'J(r(J)r)  S	SK*J+r+  S	SK,J-r-J.r.J/r/  SSK0J1r1  / SQr2/ SQr31 Skr4\\5   \6S'   1 Skr7\\5   \6S'   \4\7-  r8\\5   \6S'   1 Skr9\\5   \6S'   1 Skr:\\5   \6S'   S\5S\54S jr;S\5S\1S\54S  jr<S\5S\1S\=4S! jr> S8S\5S"\\\1      S\\5S#4   4S$ jjr?S%\\5S#4   S\54S& jr@S'\$4S( jrAS)\BS\\C   4S* jrDS'\$S\=4S+ jrE " S, S-\5      rF " S. S/\F5      rG " S0 S1\F5      rH " S2 S3\F5      rI " S4 S5\F5      rJ " S6 S75      rK\K" 5       rLg! \$ a  r%\RL                  " S\%5         Sr%C%GN-Sr%C%ff = f)9    N)ABCabstractmethod)Path)OptionalSequenceSetTuplecriticalAISTUDIO_LOG)NotExistError)snapshot_download   )loggingzFailed to import `modelscope.hub.errors` (%r). ModelScope downloads can still be used; not-found detection will use generic fallbacks.)	CACHE_DIRFILE_LOCK_DIR)download_and_extract)DISABLE_MODEL_SOURCE_CHECKHUGGING_FACE_ENDPOINTMODEL_SOURCE   )LocalModelFormat(,  ResNet18ResNet18_vdResNet34ResNet34_vdResNet50ResNet50_vd	ResNet101ResNet101_vd	ResNet152ResNet152_vdResNet200_vdPaddleOCR-VLPaddleOCR-VL-1.5PaddleOCR-VL-1.6zPP-LCNet_x0_25PP-LCNet_x0_25_textline_orizPP-LCNet_x0_35zPP-LCNet_x0_5zPP-LCNet_x0_75zPP-LCNet_x1_0PP-LCNet_x1_0_doc_oriPP-LCNet_x1_0_textline_orizPP-LCNet_x1_5zPP-LCNet_x2_5zPP-LCNet_x2_0zPP-LCNetV2_smallzPP-LCNetV2_basezPP-LCNetV2_largeMobileNetV3_large_x0_35MobileNetV3_large_x0_5MobileNetV3_large_x0_75MobileNetV3_large_x1_0MobileNetV3_large_x1_25MobileNetV3_small_x0_35MobileNetV3_small_x0_5MobileNetV3_small_x0_75MobileNetV3_small_x1_0MobileNetV3_small_x1_25ConvNeXt_tinyConvNeXt_smallConvNeXt_base_224ConvNeXt_base_384ConvNeXt_large_224ConvNeXt_large_384MobileNetV2_x0_25MobileNetV2_x0_5MobileNetV2_x1_0MobileNetV2_x1_5MobileNetV2_x2_0MobileNetV1_x0_25MobileNetV1_x0_5MobileNetV1_x0_75MobileNetV1_x1_0'SwinTransformer_tiny_patch4_window7_224(SwinTransformer_small_patch4_window7_224'SwinTransformer_base_patch4_window7_224(SwinTransformer_base_patch4_window12_384(SwinTransformer_large_patch4_window7_224)SwinTransformer_large_patch4_window12_384zPP-HGNet_tinyzPP-HGNet_smallzPP-HGNet_basezPP-HGNetV2-B0zPP-HGNetV2-B1zPP-HGNetV2-B2zPP-HGNetV2-B3zPP-HGNetV2-B4zPP-HGNetV2-B5zPP-HGNetV2-B6zFasterNet-LzFasterNet-MzFasterNet-SzFasterNet-T0zFasterNet-T1zFasterNet-T2z
StarNet-S1z
StarNet-S2z
StarNet-S3z
StarNet-S4MobileNetV4_conv_smallMobileNetV4_conv_mediumMobileNetV4_conv_largeMobileNetV4_hybrid_mediumMobileNetV4_hybrid_largeCLIP_vit_base_patch16_224CLIP_vit_large_patch14_224zPP-LCNet_x1_0_MLzPP-HGNetV2-B0_MLzPP-HGNetV2-B4_MLzPP-HGNetV2-B6_MLResNet50_MLCLIP_vit_base_patch16_448_MLzPP-YOLOE_plus-XzPP-YOLOE_plus-LzPP-YOLOE_plus-MzPP-YOLOE_plus-Sz	RT-DETR-Lz	RT-DETR-Hz	RT-DETR-XzYOLOv3-DarkNet53zYOLOv3-MobileNetV3zYOLOv3-ResNet50_vd_DCNzYOLOX-LzYOLOX-MzYOLOX-NzYOLOX-SzYOLOX-TzYOLOX-XzRT-DETR-R18zRT-DETR-R50z	PicoDet-Sz	PicoDet-LzDeeplabv3-R50zDeeplabv3-R101zDeeplabv3_Plus-R50zDeeplabv3_Plus-R101zPP-ShiTuV2_reczPP-ShiTuV2_rec_CLIP_vit_basezPP-ShiTuV2_rec_CLIP_vit_largezPP-LiteSeg-TzPP-LiteSeg-BzOCRNet_HRNet-W48zOCRNet_HRNet-W18zSegFormer-B0zSegFormer-B1zSegFormer-B2zSegFormer-B3zSegFormer-B4zSegFormer-B5SeaFormer_tinySeaFormer_smallSeaFormer_baseSeaFormer_largezMask-RT-DETR-HzMask-RT-DETR-LPP-OCRv4_server_reczMask-RT-DETR-SzMask-RT-DETR-MzMask-RT-DETR-XSOLOv2zMaskRCNN-ResNet50zMaskRCNN-ResNet50-FPNzMaskRCNN-ResNet50-vd-FPNzMaskRCNN-ResNet101-FPNzMaskRCNN-ResNet101-vd-FPNzMaskRCNN-ResNeXt101-vd-FPNzCascade-MaskRCNN-ResNet50-FPNz'Cascade-MaskRCNN-ResNet50-vd-SSLDv2-FPNzPP-YOLOE_seg-SPP-OCRv3_mobile_recen_PP-OCRv3_mobile_reckorean_PP-OCRv3_mobile_recjapan_PP-OCRv3_mobile_recchinese_cht_PP-OCRv3_mobile_recte_PP-OCRv3_mobile_recka_PP-OCRv3_mobile_recta_PP-OCRv3_mobile_reclatin_PP-OCRv3_mobile_recarabic_PP-OCRv3_mobile_reccyrillic_PP-OCRv3_mobile_recdevanagari_PP-OCRv3_mobile_recen_PP-OCRv4_mobile_recPP-OCRv4_server_rec_docPP-OCRv4_mobile_recPP-OCRv4_server_detPP-OCRv4_mobile_detPP-OCRv3_server_detPP-OCRv3_mobile_detPP-OCRv4_server_seal_detPP-OCRv4_mobile_seal_detch_RepSVTR_recch_SVTRv2_recz"PP-LCNet_x1_0_pedestrian_attributezPP-LCNet_x1_0_vehicle_attributePicoDet_layout_1xPicoDet_layout_1x_tableSLANetSLANet_plusLaTeX_OCR_rec	UniMERNetPP-FormulaNet-SPP-FormulaNet-LPP-FormulaNet_plus-SPP-FormulaNet_plus-MPP-FormulaNet_plus-LzFasterRCNN-ResNet34-FPNzFasterRCNN-ResNet50zFasterRCNN-ResNet50-FPNzFasterRCNN-ResNet50-vd-FPNz!FasterRCNN-ResNet50-vd-SSLDv2-FPNzFasterRCNN-ResNet101zFasterRCNN-ResNet101-FPNzFasterRCNN-ResNeXt101-vd-FPNzFasterRCNN-Swin-Tiny-FPNzCascade-FasterRCNN-ResNet50-FPNz)Cascade-FasterRCNN-ResNet50-vd-SSLDv2-FPNUVDocDLinearNLinearRLinearNonstationaryTimesNetTiDEPatchTST
DLinear_adAutoEncoder_adNonstationary_adPatchTST_adTimesNet_adTimesNet_clsSTFPMzFCOS-ResNet50zDETR-R50zPP-YOLOE-L_vehiclezPP-YOLOE-S_vehiclezPP-ShiTuV2_detzPP-YOLOE-S_humanzPP-YOLOE-L_humanz	PicoDet-Mz
PicoDet-XSzPP-YOLOE_plus_SOD-LzPP-YOLOE_plus_SOD-SzPP-YOLOE_plus_SOD-largesize-LzCenterNet-DLA-34zCenterNet-ResNet50PicoDet-S_layout_3clsPicoDet-S_layout_17clsPicoDet-L_layout_3clsPicoDet-L_layout_17clsRT-DETR-H_layout_3clsRT-DETR-H_layout_17clsPicoDet_LCNet_x2_5_face	BlazeFacezBlazeFace-FPN-SSHzPP-YOLOE_plus-S_faceMobileFaceNetResNet50_facezPP-YOLOE-R-LzCo-Deformable-DETR-R50zCo-Deformable-DETR-Swin-TzCo-DINO-R50zCo-DINO-Swin-Lwhisper_largewhisper_basewhisper_mediumwhisper_smallwhisper_tinyzPP-TSM-R50_8frames_uniformz PP-TSMv2-LCNetV2_8frames_uniformz!PP-TSMv2-LCNetV2_16frames_uniformMaskFormer_tinyMaskFormer_smallPP-LCNet_x1_0_table_clsSLANeXt_wiredSLANeXt_wirelessRT-DETR-L_wired_table_cell_det!RT-DETR-L_wireless_table_cell_detYOWOzPP-TinyPose_128x96zPP-TinyPose_256x192zGroundingDINO-Tz	SAM-H_boxzSAM-H_pointPP-DocLayoutV2PP-DocLayoutV3PP-DocLayout-LPP-DocLayout-MPP-DocLayout-SPP-DocLayout_plus-LPP-DocBlockLayout	BEVFusionzYOLO-Worldv2-LPP-DocBee-2BPP-DocBee-7BPP-Chart2TablePP-OCRv5_server_detPP-OCRv5_mobile_detPP-OCRv5_server_recPP-OCRv5_mobile_receslav_PP-OCRv5_mobile_recPP-DocBee2-3Blatin_PP-OCRv5_mobile_reckorean_PP-OCRv5_mobile_recth_PP-OCRv5_mobile_recel_PP-OCRv5_mobile_recen_PP-OCRv5_mobile_recarabic_PP-OCRv5_mobile_recte_PP-OCRv5_mobile_recta_PP-OCRv5_mobile_recdevanagari_PP-OCRv5_mobile_reccyrillic_PP-OCRv5_mobile_rec	G2PWModelfastspeech2_csmscpwgan_csmscPP-OCRv6_medium_detPP-OCRv6_small_detPP-OCRv6_tiny_detPP-OCRv6_medium_recPP-OCRv6_small_recPP-OCRv6_tiny_rec)Ur`   r[   rl   rm   ra   rb   rX   rc   r   rZ   r]   rY   r   rr   r_   r   r   r   r   r#   r$   r%   rn   ro   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ru   rx   rw   rv   rt   r&   r'   r   r(   ri   rW   rh   rg   re   rk   rf   rd   rU   rj   r   r   r   r   r   r   r   r   rp   rq   r   r   r^   r\   rs   ry   r   r   r   r   r   r   r   r   r   r   r   >&   ry   rp   rq   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rx   r'   r   r   r   r   r   r   r   r   r(   r   r   r&   r   r   r   r   (SAFETENSORS_SUPPORTED_MODELS_WITH_SUFFIX>   PaddleOCR-VL-0.9BPaddleOCR-VL-1.5-0.9BPaddleOCR-VL-1.6-0.9B+SAFETENSORS_SUPPORTED_MODELS_WITHOUT_SUFFIXSAFETENSORS_SUPPORTED_MODELS>   r   r   r   r   r   r   r   r   PADDLE_DYN_SUPPORTED_MODELS>$   ry   rp   rq   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r'   r   r   r   r   r   r   r   r   r(   r   r   r&   r   r   r   r   ONNX_SUPPORTED_MODELS
model_namereturnc                     U S;   a  gU $ )N>   r#   r   r    )r   s    c/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/paddlex/inference/utils/official_models.py _canonical_download_support_namer   +  s    ::"    model_formatc                     US;   a  U $ US:X  a)  U [         ;   a  U  S3$ U [        ;   a  U $ [        SU  35      eUS:X  a  U  S3$ [        SU< S35      e)	N>   paddle
paddle_dynsafetensors_safetensorsz Unknown safetensors model name: onnx_onnxUnknown official model format: .)r   r   
ValueError)r   r   s     r   _format_download_model_namer   1  s|    //}$AA \..FF;J<HIIvU##
6|6FaH
IIr   c                     [        U 5      nUS:X  a  gUS:X  a	  U[        ;   $ US:X  a	  U[        ;   $ US:X  a	  U[        ;   $ US:X  a  g[	        SU< S	35      e)
Nr   Tr   r   r   omFr   r   )r   r   r   r   r   )r   r   canonical_names      r   #_is_supported_official_model_formatr   ?  sv     6jANx|#!<<<}$!===v!666t
6|6FaH
IIr   model_formats.c                 t   Uc  U 4$ [        U5      n/ n/ nU HI  n[        X5      (       d  UR                  U5        M&  [        X5      nXc;  d  M8  UR                  U5        MK     U(       dC  [	        U5      S:X  a  [        SUS   < SU < S35      e[        S[        U5      < SU < S35      e[        U5      $ )N   z)Official model source does not provide a r   z package for model r   zEOfficial model source does not provide any of the requested packages z for model )tupler   appendr   lenr   list)r   r   formatsmodel_namesunsupported_formatsr   download_model_names          r   _resolve_download_model_namesr   P  s     }M"GK2:LL&&|49*S123   w<1;GAJ> J'N!-  S'(+;znAG
 	
 r   r   c                 <   [         R                  R                  [        S5      n[         R                  " USS9  [
        R                  " SR                  U 5      R                  S5      5      R                  5       n[         R                  R                  X S35      $ )zCCross-process lock path for a resolved official model download key.official_modelsT)exist_ok zutf-8z.lock)	ospathjoinr   makedirshashlibsha256encode	hexdigest)r   lock_dirkeys      r   "_official_model_download_lock_pathr   m  si    ww||M+<=HKK4(
..;/66w?
@
J
J
LC77<<E-00r   excc              #      #    U n[        5       nUbe  [        U5      U;  aU  UR                  [        U5      5        Uv   [        USS 5      =(       d    [        USS 5      nUb  [        U5      U;  a  MS  g g g g 7f)N	__cause____context__)setidaddgetattr)r   currentvisiteds      r   _iter_exception_chainr  u  st     GeG

"W+W"<BwK ';5 
]D:
 
"W+W"<
"<
s   A0A84A8exc_objc                     [        U SS 5      n[        USS 5      n[        U[        5      (       a  U$ [        U SS5      =(       d    S H)  n[        USS 5      n[        U[        5      (       d  M'  Us  $    g )Nresponsestatus_codeargsr   )r  
isinstanceint)r  r
  codeargscs        r   _exception_http_status_coder    sr     w
D1H8]D1D$w+1r1S-.b#I 2 r   c                    [         bf  [        U 5       HV  n[        U[         R                  5      (       a    g[        U[         R                  5      (       d  ME  [        U5      S:X  d  MV    g   g[        U 5       H|  n[        U[        R                  5      (       a  [        U5      S:X  a    gUR                  R                  S:X  a    gUR                  R                  S:X  d  Mk  [        U5      S:X  d  M|    g   g)zKDetect ModelScope 'model not found' errors with or without `ms_hub_errors`.T  Fr   	HTTPError)	ms_hub_errorsr  r  r   r  r  requests	__class____name__)r   r  s     r   ,_modelscope_is_model_package_not_found_errorr    s     ,S1G'=#>#>??'=#:#:;;.w73> 2 (-gx1122*73s:%%8 &&+5+G4; . r   c                       \ rS rSrSr/ rSrSrS r\	S 5       r
S rS r\S	 5       r\S
\S\4S j5       r\S 5       rSrg)_BaseModelHosteri   Nr   c                     Xl         g N	_save_dir)selfsave_dirs     r   __init___BaseModelHoster.__init__  s    !r   c                 f    S H*  nU R                  U5      (       d  M  U S [        U5      *  s  $    U $ )N)r   r   )endswithr   )r   suffixs     r   _strip_repo_suffix#_BaseModelHoster._strip_repo_suffix  s8    /F""6**!.S[L11 0 r   c                 ^    XR                   ;   a  gU R                  U5      U R                   ;   $ )NT)
model_listr)  r"  r   s     r   supports_model_BaseModelHoster.supports_model  s)    (&&z2dooEEr   c                 @   U R                  U5      (       d"   SU SU R                  R                   S35       eU R                  U -  n[        R
                  " SU SU S35        U R                  X5        [        R                  " SU SU R                   S	35        U$ )
Nz
The model z is not supported on hosting !zUsing official model (zB), the model files will be automatically downloaded and saved in ``.`z4` model files has been download from model source: `z`!)	r.  r  r  r!  r   info	_downloaddebugalias)r"  r   	model_dirs      r   	get_model_BaseModelHoster.get_model  s    ""
 
 	\
|#@AXAX@YYZ[	\ 
 NN
|4	$ZL0rs|r}}  A	
 	z-
|OPTPZPZ|[]^	
 r   c                     [         er  NotImplementedErrorr"  s    r   r5  _BaseModelHoster._download      !!r   r   r   c                     [         er  r<  r"  r   s     r    is_model_package_not_found_error1_BaseModelHoster.is_model_package_not_found_error  r@  r   c                     U R                   c  g [        R                  " U R                   U R                  S9nUR                  S:H  $ ! [
         a'    [        R                  " SU R                   S35         gf = f)NT)timeoutzThe model hosting platform(z) is unreachable!F)	healthcheck_urlr  head_healthcheck_timeoutok	Exceptionr   r6  r  )clsr
  s     r   is_available_BaseModelHoster.is_available  ss    &	}}##S-E-EH ;;$&& 	MM7~EVWX	s   7A .A98A9r   )r  
__module____qualname____firstlineno__r7  r,  rG  rI  r$  staticmethodr)  r.  r9  r   r5  rK  boolrC  classmethodrM  __static_attributes__r   r   r   r  r    s    EJO"  F
  " " "I "$ " " 
 
r   r  c                   P    \ rS rSr\rSrSrSrSr	SSSS	S
S.r
S rS\S\4S jrSrg)_BosModelHosteri  bosz*https://paddle-model-ecology.bj.bcebos.comzpaddle3.0.0zKhttps://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_modelzwhisper_large.tarzwhisper_base.tarzwhisper_medium.tarzwhisper_small.tarzwhisper_tiny.tar)r   r   r   r   r   c                     XR                   ;   a  U R                   U   nOU S3nU R                   SU R                   SU 3n[        XBR                  USS9  g )Nz
_infer.tar/F)	overwrite)special_model_fnbase_urlversionr   parent)r"  r   r#  fnurls        r   r5  _BosModelHoster._download  sX    ...&&z2B<z*Bqat4S//:Or   r   r   c                     [        U5       HG  n[        U[        R                  5      (       d  M$  UR                  nUc  M5  UR
                  S:X  d  MG    g   g)Nr  TF)r  r  r  r  r
  r  r"  r   r  r
  s       r   rC  0_BosModelHoster.is_model_package_not_found_error  sJ    ,S1G'8#5#566"++'H,@,@C,G	 2
 r   r   N)r  rO  rP  rQ  
ALL_MODELSr,  r7  rG  r^  r]  r\  r5  rK  rS  rC  rU  r   r   r   rW  rW    sP    JEBOGU  -*.,*PI $ r   rW  c                   8    \ rS rSr\rSr\rS r	S\
S\4S jrSrg)	_HuggingFaceModelHosteri  huggingfacec                 F  ^ U4S jn[         R                  R                  U5      (       a	  U" U5        g [        R                  " 5        n[         R                  R                  US5      nU" U5        [        R                  " XR5        S S S 5        g ! , (       d  f       g = f)Nc                 @   > [         R                  " ST 3U [        S9  g )NPaddlePaddle/)repo_id	local_direndpoint)hf_hubr   r   rn  r   s    r   _clone1_HuggingFaceModelHoster._download.<locals>._clone  s!    $$'
|4#.r   temp_dirr   r   existstempfileTemporaryDirectoryr   shutilmover"  r   r#  rr  tdrt  s    `    r   r5  !_HuggingFaceModelHoster._download
  sg    	 77>>(##8,,."77<<J7x H/ /..   
?B
B r   r   c                    [        U5       H  n[        U[        R                  [        R                  [        R
                  45      (       a    g[        U[        R                  5      (       d  Md  UR                  nUb  UR                  S:X  a    gUc  M  UR                  S:X  d  M  S[        U5      ;   d   S[        U5      ;   d  S[        U5      ;   d  M    g   g)NTr  i  zRepository Not FoundzEntry Not FoundzRevision Not FoundF)
r  r  hf_hub_utilsRepositoryNotFoundErrorEntryNotFoundErrorRevisionNotFoundErrorHfHubHTTPErrorr
  r  strrd  s       r   rC  8_HuggingFaceModelHoster.is_model_package_not_found_error  s    ,S1G 88 33 66  '<#>#>??"++'H,@,@C,G( ,,3.#g,>,G</3w<?  / 20 r   r   N)r  rO  rP  rQ  
OCR_MODELSr,  r7  r   rG  r5  rK  rS  rC  rU  r   r   r   rh  rh    s)    JE+O0 I $ r   rh  c                   8    \ rS rSr\rSrSrS rS\	S\
4S jrSrg	)
_ModelScopeModelHosteri6  
modelscopezhttps://modelscope.cnc                 F  ^ U4S jn[         R                  R                  U5      (       a	  U" U5        g [        R                  " 5        n[         R                  R                  US5      nU" U5        [        R                  " XR5        S S S 5        g ! , (       d  f       g = f)Nc                 6   > [         R                  " ST 3U S9  g )Nrl  rm  rn  )r  r   rq  s    r   rr  0_ModelScopeModelHoster._download.<locals>._clone<  s    (('
|4	r   rt  ru  r{  s    `    r   r5   _ModelScopeModelHoster._download;  sg    	
 77>>(##8,,."77<<J7x H/ /..r~  r   r   c                     [        U5      $ r  )r  rB  s     r   rC  7_ModelScopeModelHoster.is_model_package_not_found_errorI  s    ;C@@r   r   Nr  rO  rP  rQ  r  r,  r7  rG  r5  rK  rS  rC  rU  r   r   r   r  r  6  s,    JE-O0AI A$ Ar   r  c                   8    \ rS rSr\rSrSrS rS\	S\
4S jrSrg	)
_AIStudioModelHosteriM  aistudiozhttps://aistudio.baidu.comc                 F  ^ U4S jn[         R                  R                  U5      (       a	  U" U5        g [        R                  " 5        n[         R                  R                  US5      nU" U5        [        R                  " XR5        S S S 5        g ! , (       d  f       g = f)Nc                 H   > ST;   a  [        ST 3U S9  g [        ST 3U S9  g )Nr#   rl  r  zPaddleX/)aistudio_downloadrq  s    r   rr  ._AIStudioModelHoster._download.<locals>._cloneS  s2    +!+J<8I "HZL*AYWr   rt  ru  r{  s    `    r   r5  _AIStudioModelHoster._downloadR  sh    	X 77>>(##8,,."77<<J7x H/ /..r~  r   r   c                     [        U5       H^  n[        U[        5      (       a    g[        U[        R                  5      (       d  M;  UR
                  nUc  ML  UR                  S:X  d  M^    g   g)NTr  F)r  r  r   r  r  r
  r  rd  s       r   rC  5_AIStudioModelHoster.is_model_package_not_found_errorc  sZ    ,S1G'=11'8#5#566"++'H,@,@C,G 2 r   r   Nr  r   r   r   r  r  M  s)    JE2O0"I $ r   r  c                       \ rS rSr\r\" \5      S-  r\	\
\\/rSS jrS rS rS rSS.S	\S
\\\      4S jjrS rS rS rSrg)_ModelManagerin  r   Nc                 F    S U l         [        R                  " 5       U l        g r  )_hosters	threadingLock_hosters_lockr>  s    r   r$  _ModelManager.__init__x  s    &^^-r   c                 `   [         (       a  [        R                  " S5        / nU R                   H\  nUR                  [
        :X  a$  UR                  SU" U R                  5      5        M;  UR                  U" U R                  5      5        M^     U$ [        R                  " S5        / nU R                   H  nUR                  [
        :X  a;  UR                  5       (       a$  UR                  SU" U R                  5      5        MP  MR  UR                  5       (       d  Mi  UR                  U" U R                  5      5        M     [        U5      S:X  a[  [        R                  " S[        R                   S[        R                   S[        R                   S[        R                   S3	5        U$ )	NzsConnectivity check to the model hoster has been skipped because `PADDLE_PDX_DISABLE_MODEL_SOURCE_CHECK` is enabled.r   zChecking connectivity to the model hosters, this may take a while. To bypass this check, set `PADDLE_PDX_DISABLE_MODEL_SOURCE_CHECK` to `True`.zvNo model hoster is available! Please check your network connection to one of the following model hoster: HuggingFace (z), ModelScope (z), AIStudio (z), or BOS (z,). Otherwise, only local models can be used.)r   r   warninghoster_candidatesr7  r   insertr!  r   rM  r   rh  rG  r  r  rW  )r"  hosters
hoster_clss      r   _build_hosters_ModelManager._build_hosters|  s   %%OO F G"44
##|3NN1j&@ANN:dnn#=>	 5
 N ^	
 00J</**,,NN1j&@A - **,,NN:dnn#=> 1 w<1OO I  Ja  Jq  Jq  Ir  rA  BX  Bh  Bh  Ai  iv  wK  w[  w[  v\  \g  hw  hG  hG  gH  Ht  u r   c                     U R                   cC  U R                     U R                   c  U R                  5       U l         S S S 5        U R                   $ U R                   $ ! , (       d  f       U R                   $ = fr  )r  r  r  r>  s    r   _get_hosters_ModelManager._get_hosters  s^    == ##==($($7$7$9DM $ }}t}} $# }}s   #A
A6c                    [        U[        5      (       a  U4O
[        U5      n/ nU H,  nSU;   a  UR                  SS5      nUR	                  U5        M.     S nU HU  nU R
                  U -  n[        R                  R                  U5      (       d  M9  [        R                  " SU S35        Un  O   Uc  [        [        U5      5      n[        R                  " U5         U HU  nU R
                  U -  n[        R                  R                  U5      (       d  M9  [        R                  " SU S35        Un  O   UcS  U R                  5       n[        U5      S:X  a#  Sn	[        R                   " U	5        [#        U	5      eU R%                  X5      nS S S 5        US   S:X  a1  US-  n
U
R                  5       (       a  U
R'                  5       (       a  U
$ U$ ! , (       d  f       NJ= f)	Nr#   z-0.9Br  zeModel files already exist. Using cached files. To redownload, please delete the directory manually: `r2  r   zTNo available model hosting platforms detected. Please check your network connection.r   )r  r  r   replacer   r!  r   r   rv  r   r4  r   filelockFileLockr  r   errorrK  _download_from_hosteris_dir)r"  r   r   resolved_namescandidate_namer8  candidate_dir	lock_pathr  msgvl_model_dirs              r   _get_model_local_path#_ModelManager._get_model_local_path  s   '
C88ZMeJ>O 	 )N/!/!7!7!D!!.1 *
 	,N NN/?@Mww~~m,,{  }J  |K  KM  N *	 - :5;PQI""9-&4N$(NN7G$HMww~~m44 D  ER  DS  SU  V %2	 '5 $"//1G7|q(tc*'n, $ : :7 SI# .& !.$'::L""$$)<)<)>)>##1 .-s   "8GA6G
G&)r   r   r   c                :    [        X5      nU R                  U5      $ r  )r   r  )r"  r   r   download_model_namess       r   get_model_path_ModelManager.get_model_path  s!      =ZW))*>??r   c                    [        U[        5      (       a  U4O
[        U5      nS n[        U5       H  u  pV/ nSn[        U5       HD  u  pUR	                  U
5      (       d  M  UR                  U
5         UR                  U
5      nUs  s  $    U(       aW  U(       aP  US-   [        U5      :  a    OI[        R                  " SU< SUR                   SXS-      R                   S35        M  U(       d  M  M     [        SUS    S35      Ue! [         a  nUnUR                  U5      nU(       aN  U	S-   [        U5      :  nU(       a/  [        R                  " SU
 SUR                   SX9S-       S35         S nAGM8  SnUS-   [        U5      :  a  [        SUR                   S	35      Ue[        R                  " S
U
 SUR                   SU SXS-      R                   S3	5         S nA  GMb  S nAff = f)NTr   zModel package `z` was not found on z, trying fallback package `r2  Fz-Encounter exception when download model from zN. No model source is available! Please check network or use local model files!z,Encountering exception when download model `z` from z: 
z2, will try to download from other model sources: `zModel packages z were not found on z, will try model source `z(No model source is available for model `r   zA`! Please check model name and network, or use local model files!)r  r  r   	enumerater.  r   r9  rK  rC  r   r   r  r7  )r"  r  r   r   last_exceptionidxhosterattempted_candidates"all_attempted_candidates_not_foundcandidate_idxr  
model_patheis_not_foundhas_fallbacks                  r   r  #_ModelManager._download_from_hoster  s:   '
C88ZMeJ>O 	 $W-KC#% 15.1:;1G-,,^<<$++N;!'!1!1.!AJ%% 2H> $(J7c'l*%&:%==P||n$=gAg>N>T>T=UUWY ##Y .\ 6{1~6F G@ A
 	I ! %&N#)#J#J1#ML#'4q'83{;K'K'#OO"1.1AAT#)<<. 1$$/0A$B#C2!G
 !9>6Qw#g,.'KFLL>  Zh  i ! OOF~FV W  &~T! 5++27+;+A+A*B"F
 -s    4D
G4A!G/=A*G//G4c                     XR                   ;   $ r  )r,  r-  s     r   __contains___ModelManager.__contains__  s    __,,r   c                 $    U R                  U5      $ r  )r  r-  s     r   __getitem___ModelManager.__getitem__  s    "":..r   )r  r  )r   N)r  rO  rP  rQ  rf  r,  r   r   r!  rh  r  r  rW  r  r$  r  r  r  r  r   r   r   r  r  r  r  rU  r   r   r   r  r  n  sz    JY"33I	.>.h ?C	@@  )9 :;	@6p-/r   r  r  )Mr   r   ry  rw  r  abcr   r   pathlibr   typingr   r   r   r	   r  huggingface_hubrp  huggingface_hub.utilsutilsr  r   set_verbosity_errorr  environr  aistudio_sdk.errorsr   aistudio_sdk.snapshot_downloadr   r  r  modelscope.hub.errorshuberrors_ms_hub_errorsrK  r  r6  utils.cacher   r   utils.downloadr   utils.flagsr   r   r   models.utils.model_pathsr   rf  r  r   r  __annotations__r   r   r   r   r   r   rS  r   r   r   r  BaseExceptionr  r  r  r  rW  rh  r  r  r  r   r   r   r   <module>r     sf    	    #  1 1    ,  " " $ '

>   - Q 	22"M 4 2 
 8m
`	V
p'6 (#c( 'R9 +SX  -12 c#h 
	) SX 	%# s3x %P  JC J?O JTW JJJ#3J	J& ;?H%567 38_:1E#s(O 1 1
y 
 8C= i D 28s 8v& D.. .bA- A.+ Bi/ i/X  /]  MM	C	 s   F G#F<<G