
    {-jO              	          U d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dlm	Z	 d dl
mZmZmZmZ d dlZd dlZd dlmZ ej                                         d dlZdej        d<   d dlZd dlmZ d dlmZ d	d
lmZ dZ	 d dl m!c m"Z# e#Zn## e$$ rZ% ej&        de%           Y dZ%[%ndZ%[%ww xY wd	dl'm(Z(m)Z) d	dl*m+Z+ d	dl,m-Z-m.Z.m/Z/ ddl0m1Z1 g dZ2g dZ3h dZ4ee5         e6d<   h dZ7ee5         e6d<   e4e7z  Z8ee5         e6d<   h dZ9ee5         e6d<   h dZ:ee5         e6d<   de5de5fdZ;de5de1de5fd Z<de5de1de=fd!Z>	 d8de5d"eee1                  dee5d#f         fd$Z?d%ee5d#f         de5fd&Z@d'e$fd(ZAd)eBdeeC         fd*ZDd'e$de=fd+ZE G d, d-e          ZF G d. d/eF          ZG G d0 d1eF          ZH G d2 d3eF          ZI G d4 d5eF          ZJ G d6 d7          ZK eK            ZLdS )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)Or`   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   >    ry   rp   rq   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-1.5-0.9BPaddleOCR-VL-1.6-0.9BPaddleOCR-VL-0.9B+SAFETENSORS_SUPPORTED_MODELS_WITHOUT_SUFFIXSAFETENSORS_SUPPORTED_MODELS>   r   r   r   r   r   r   r   r   PADDLE_DYN_SUPPORTED_MODELS>   r   r   r   r   r   r   r   r   r'   r   r(   r&   r   r   ONNX_SUPPORTED_MODELS
model_namereturnc                     | dv rdS | S )N>   r#   r   r    )r   s    g/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddlex/inference/utils/official_models.py _canonical_download_support_namer     s    :::""    model_formatc                     |dv r| S |dk    r+| t           v r|  dS | t          v r| S t          d|            |dk    r|  dS t          d|d          )	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   	  s    ///}$$AAA ....FFFHJHHIIIv####
H|HHH
I
IIr   c                     t          |           }|dk    rdS |dk    r	|t          v S |dk    r	|t          v S |dk    r	|t          v S |dk    rdS t	          d|d	          )
Nr   Tr   r   r   omFr   r   )r   r   r   r   r   )r   r   canonical_names      r   #_is_supported_official_model_formatr     s     6jAANxt|##!<<<}$$!===v!666tu
H|HHH
I
IIr   model_formats.c                    || fS t          |          }g }g }|D ]Q}t          | |          s|                    |           (t          | |          }||vr|                    |           R|sRt	          |          dk    rt          d|d         d| d          t          dt          |          d| d          t          |          S )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   (  s<    }M""GK 4 42:|LL 	&&|4449*lSSk112333 	
w<<1-GAJ - -'- - -   G'((G G7AG G G
 
 	
 r   r   c                 V   t           j                            t          d          }t          j        |d           t          j        d                    |                               d                                                    }t           j                            || d          S )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   E  s~    w||M+<==HK4((((
.;//66w??
@
@
J
J
L
LC7<<S---000r   excc              #     K   | }t                      }|nt          |          |vr_|                    t          |                     |V  t          |dd           pt          |dd           }|t          |          |v[d S d S d S d S )N	__cause____context__)setidaddgetattr)r   currentvisiteds      r   _iter_exception_chainr  M  s      GeeG

"W++W"<"<BwKK   ';55 
]D:
 :
 
"W++W"<"<"<"<

"<"<

r   exc_objc                     t          | dd           }t          |dd           }t          |t                    r|S t          | dd          pdD ],}t          |dd           }t          |t                    r|c S -d S )Nresponsestatus_codeargsr   )r   
isinstanceint)r  r  codeargscs        r   _exception_http_status_coder  X  s     w
D11H8]D11D$ w++1r  S-..b# 	III	4r   c                    t           at          |           D ]O}t          |t           j                  r dS t          |t           j                  rt          |          dk    r dS PdS t          |           D ]k}t          |t          j                  rt          |          dk    r dS |j        j        dk    r dS |j        j        dk    rt          |          dk    r dS ldS )zKDetect ModelScope 'model not found' errors with or without `ms_hub_errors`.NT  Fr   	HTTPError)	ms_hub_errorsr  r  r   r  r  requests	__class____name__)r   r   s     r   ,_modelscope_is_model_package_not_found_errorr  g  s    ,S11 	  	 G'=#>?? tt'=#:;;  .w773>>44u(--  gx122 	*733s::tt%8844 &+55+G44;;445r   c                       e Zd ZdZg ZdZdZd Zed             Z	d Z
d Zed             Zed	ed
efd            Zed             ZdS )_BaseModelHoster Nr   c                     || _         d S N)	_save_dir)selfsave_dirs     r   __init__z_BaseModelHoster.__init__  s    !r   c                 n    dD ]1}|                      |          r| d t          |                    c S 2| S )N)r   r   )endswithr   )r   suffixs     r   _strip_repo_suffixz#_BaseModelHoster._strip_repo_suffix  sO    / 	2 	2F""6** 2!.S[[L.11112r   c                 P    || j         v rdS |                     |          | j         v S )NT)
model_listr!  r  r   s     r   supports_modelz_BaseModelHoster.supports_model  s/    ((4&&z22doEEr   c                    |                      |          sJ d| d| j        j         d            | j        | z  }t	          j        d| d| d           |                     ||           t	          j        d| d| j         d	           |S )
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_modelz_BaseModelHoster.get_model  s    ""
 
 	\ 	\[
[[AX[[[	\ 	\ 
 N
_4	 AZ  A  As|  A  A  A	
 	
 	
 	z9---^
^^PTPZ^^^	
 	
 	
 r   c                     t           r  NotImplementedErrorr  s    r   r+  z_BaseModelHoster._download      !!r   r   r   c                     t           r  r1  r  r   s     r    is_model_package_not_found_errorz1_BaseModelHoster.is_model_package_not_found_error  r4  r   c                     | j         dS 	 t          j        | j         | j                  }|j        dk    S # t
          $ r! t          j        d| j         d           Y dS w xY w)NT)timeoutzThe model hosting platform(z) is unreachable!F)	healthcheck_urlr  head_healthcheck_timeoutok	Exceptionr   r,  r  )clsr  s     r   is_availablez_BaseModelHoster.is_available  s    &4	}#S-E  H ;$&& 	 	 	MWWWWXXX55	s   *6 'A! A!)r  
__module____qualname__r-  r#  r:  r<  r  staticmethodr!  r%  r/  r   r+  r>  boolr7  classmethodr@  r   r   r   r  r    s        EJO" " "   \F F F
    " " ^" "I "$ " " " ^" 
 
 [
 
 
r   r  c                   H    e Zd ZeZdZdZdZdZddddd	d
Z	d Z
dedefdZdS )_BosModelHoster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                     || j         v r| j         |         }n| d}| j         d| j         d| }t          ||j        |d           d S )Nz
_infer.tar/F)	overwrite)special_model_fnbase_urlversionr   parent)r  r   r  fnurls        r   r+  z_BosModelHoster._download  sk    ...&z2BB***B444444S(/:OOOOOOr   r   r   c                     t          |          D ]3}t          |t          j                  r|j        }||j        dk    r dS 4dS )Nr  TF)r  r  r  r  r  r  r  r   r   r  s       r   r7  z0_BosModelHoster.is_model_package_not_found_error  sV    ,S11 	  	 G'8#566  "+'H,@C,G,G44ur   N)r  rA  rB  
ALL_MODELSr#  r-  r:  rN  rM  rL  r+  r>  rD  r7  r   r   r   rG  rG    s        JEBOGU  -*.,* P P PI $      r   rG  c                   0    e Zd ZeZdZeZd Zde	de
fdZdS )_HuggingFaceModelHosterhuggingfacec                 B   fd}t           j                            |          r ||           d S t          j                    5 }t           j                            |d          } ||           t          j        ||           d d d            d S # 1 swxY w Y   d S )Nc                 F    t          j        d | t                     d S )NPaddlePaddle/)repo_id	local_direndpoint)hf_hubr   r   r\  r   s    r   _clonez1_HuggingFaceModelHoster._download.<locals>._clone  s8    $4
44#.     r   temp_dirr   r   existstempfileTemporaryDirectoryr   shutilmover  r   r  r`  tdra  s    `    r   r+  z!_HuggingFaceModelHoster._download  s    	 	 	 	 	 7>>(## 	0F8,.. 0"7<<J77x   Hh///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   ABBBr   r   c                 z   t          |          D ]}t          |t          j        t          j        t          j        f          r dS t          |t          j                  rZ|j        }||j        dk    r dS |A|j        dk    r6dt          |          v s"dt          |          v sdt          |          v r dS dS )NTr  i  zRepository Not FoundzEntry Not FoundzRevision Not FoundF)
r  r  hf_hub_utilsRepositoryNotFoundErrorEntryNotFoundErrorRevisionNotFoundErrorHfHubHTTPErrorr  r  strrS  s       r   r7  z8_HuggingFaceModelHoster.is_model_package_not_found_error  s    ,S11 	  	 G 8 3 6   tt'<#>??  "+'H,@C,G,G44( ,33.#g,,>>,G<</3w<<??  44ur   N)r  rA  rB  
OCR_MODELSr#  r-  r   r:  r+  r>  rD  r7  r   r   r   rV  rV    sT        JE+O0 0 0 I $      r   rV  c                   0    e Zd ZeZdZdZd Zdede	fdZ
dS )_ModelScopeModelHoster
modelscopezhttps://modelscope.cnc                 B   fd}t           j                            |          r ||           d S t          j                    5 }t           j                            |d          } ||           t          j        ||           d d d            d S # 1 swxY w Y   d S )Nc                 :    t          j        d |            d S )NrZ  r[  r\  )ru  r   r_  s    r   r`  z0_ModelScopeModelHoster._download.<locals>._clone  s4    (4
44	     r   ra  rb  rh  s    `    r   r+  z _ModelScopeModelHoster._download  s    	 	 	 	 	
 7>>(## 	0F8,.. 0"7<<J77x   Hh///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0rj  r   r   c                      t          |          S r  )r  r6  s     r   r7  z7_ModelScopeModelHoster.is_model_package_not_found_error!  s    ;C@@@r   Nr  rA  rB  rr  r#  r-  r:  r+  r>  rD  r7  r   r   r   rt  rt    s\        JE-O0 0 0AI A$ A A A A A Ar   rt  c                   0    e Zd ZeZdZdZd Zdede	fdZ
dS )_AIStudioModelHosteraistudiozhttps://aistudio.baidu.comc                 B   fd}t           j                            |          r ||           d S t          j                    5 }t           j                            |d          } ||           t          j        ||           d d d            d S # 1 swxY w Y   d S )Nc                 d    dv rt          d |            d S t          d |            d S )Nr#   rZ  rx  zPaddleX/)aistudio_downloadr_  s    r   r`  z._AIStudioModelHoster._download.<locals>._clone+  s`    ++!8J88I      "*AZ*A*AYWWWWWWr   ra  rb  rh  s    `    r   r+  z_AIStudioModelHoster._download*  s    	X 	X 	X 	X 	X 7>>(## 	0F8,.. 0"7<<J77x   Hh///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0rj  r   r   c                     t          |          D ]K}t          |t                    r dS t          |t          j                  r|j        }||j        dk    r dS LdS )NTr  F)r  r  r   r  r  r  r  rS  s       r   r7  z5_AIStudioModelHoster.is_model_package_not_found_error;  so    ,S11 	  	 G'=11 tt'8#566  "+'H,@C,G,G44ur   Nrz  r   r   r   r|  r|  %  sT        JE2O0 0 0"I $      r   r|  c                       e Zd ZeZ ee          dz  Zee	e
egZddZd Zd Zd Zddd	ed
eee                  fdZd Zd Zd ZdS )_ModelManagerr   r   Nc                 D    d | _         t          j                    | _        d S r  )_hosters	threadingLock_hosters_lockr3  s    r   r  z_ModelManager.__init__P  s    &^--r   c                     t           rzt          j        d           g }| j        D ]Z}|j        t
          k    r%|                    d || j                             7|                     || j                             [|S t          j        d           g }| j        D ]}|j        t
          k    r9|	                                r$|                    d || j                             K|	                                r#|                     || j                             t          |          dk    rIt          j        dt          j         dt          j         dt          j         dt          j         d	           |S )	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_candidatesr-  r   insertr  r   r@  r   rV  r:  rt  r|  rG  )r  hosters
hoster_clss      r   _build_hostersz_ModelManager._build_hostersT  s   % 
	O G   G"4 ? ?
#|33NN1jj&@&@AAAANN::dn#=#=>>>>N _	
 	
 	
 0 	? 	?J<//**,, BNN1jj&@&@AAA**,, ?NN::dn#=#=>>>w<<1O u  Ja  Jq  u  u  BX  Bh  u  u  wK  w[  u  u  hw  hG  u  u  u   r   c                     | j         ?| j        5  | j         |                                 | _         d d d            n# 1 swxY w Y   | j         S r  )r  r  r  r3  s    r   _get_hostersz_ModelManager._get_hosterss  s    = # : :=($($7$7$9$9DM: : : : : : : : : : : : : : : }s   !<A A c                    t          |t                    r|fnt          |          }g }|D ]1}d|v r|                    dd          }|                    |           2d }|D ]H}| j        | z  }t          j                            |          rt          j
        d| d           |} nI|t          t          |                    }t          j        |          5  |D ]H}| j        | z  }t          j                            |          rt          j
        d| d           |} nI|b|                                 }t          |          dk    r%d}	t          j        |	           t#          |	          |                     ||          }d d d            n# 1 swxY w Y   |d         dk    r/|dz  }
|
                                r|
                                r|
S |S )	Nr#   z-0.9Br  zeModel files already exist. Using cached files. To redownload, please delete the directory manually: `r(  r   zTNo available model hosting platforms detected. Please check your network connection.r   )r  rq  r   replacer   r  r   r   rc  r   r*  r   filelockFileLockr  r   errorr>  _download_from_hosteris_dir)r  r   r   resolved_namescandidate_namer.  candidate_dir	lock_pathr  msgvl_model_dirs              r   _get_model_local_pathz#_ModelManager._get_model_local_pathz  s   '
C88OZMMeJ>O>O 	 ) 	2 	2N//!/!7!7!D!D!!.1111	, 	 	N N-@@Mw~~m,,  N  }J  N  N  N   *	 :5;P;PQQI"9-- T T&4  N$(N5H$HMw~~m44  V  ER  V  V  V   %2	 $"//11G7||q((tc***'nn, $ : :7N S SI#T T T T T T T T T T T T T T T& !..$'::L""$$ $)<)<)>)> $##s   B0FF F)r   r   r   c                L    t          ||          }|                     |          S r  )r   r  )r  r   r   download_model_namess       r   get_model_pathz_ModelManager.get_model_path  s)      =ZWW))*>???r   c                    t          |t                    r|fnt          |          }d }t          |          D ]\  }}g }d}t          |          D ]*\  }	}
|                    |
          s|                    |
           	 |                    |
          }|c c S # t          $ r}|}|                    |          }|rI|	dz   t          |          k     }|r,t          j        d|
 d|j         d||	dz             d           Y d }~d}|dz   t          |          k    rt          d|j         d	          |t          j        d
|
 d|j         d| d||dz            j         d	           Y d }~ nd }~ww xY w|rM|rK|dz   t          |          k    r n9t          j        d|d|j         d||dz            j         d           |rt          d|d          d          |)NTr   zModel package `z` was not found on z, trying fallback package `r(  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  rq  r   	enumerater%  r   r/  r>  r7  r   r   r  r-  )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  z#_ModelManager._download_from_hoster  s$   '
C88OZMMeJ>O>O 	 $W-- ,	 ,	KC#% 15.1:;1G1G  -~,,^<< $++N;;;!'!1!1.!A!AJ%%%%%%    %&N#)#J#J1#M#ML# !'4q'83{;K;K'K' #O!G. !G !G#)<!G !G$/0A$B!G !G !G  
 !9>6Qw#g,,..' iFL  i  i  i  ! OF~ F F &F F23F F+237+;+AF F F  
 EEEEE-0 $ (J 7c'll**EY&: Y Y|Y Y>EcAg>N>TY Y Y   #  A{1~ A A A
 
 	s    B
E;)AE6A%E66E;c                     || j         v S r  )r#  r$  s     r   __contains__z_ModelManager.__contains__  s    T_,,r   c                 ,    |                      |          S r  )r  r$  s     r   __getitem__z_ModelManager.__getitem__  s    "":...r   )r   N)r  rA  rB  rT  r#  r   r   r  rV  r|  rt  rG  r  r  r  r  r  rq  r   r   r   r  r  r  r  r   r   r   r  r  F  s        JY"33I	. . . .  >  . . .h ?C	@ @ @@  )9 :;	@ @ @ @6 6 6p- - -/ / / / /r   r  r  )Mr   r   rf  rd  r  abcr   r   pathlibr   typingr   r   r   r	   r  huggingface_hubr^  huggingface_hub.utilsutilsrl  r   set_verbosity_errorr  environru  aistudio_sdk.errorsr   aistudio_sdk.snapshot_downloadr   r  r  modelscope.hub.errorshuberrors_ms_hub_errorsr>  r  r,  utils.cacher   r   utils.downloadr   utils.flagsr   r   r   models.utils.model_pathsr   rT  rr  r   rq  __annotations__r   r   r   r   r   r   rD  r   r   r   r  BaseExceptionr  r  r  r  rG  rV  rt  r|  r  r   r   r   r   <module>r     s    				       # # # # # # # #       1 1 1 1 1 1 1 1 1 1 1 1          , , , , , ,  " " $ $ $ '
>      - - - - - - Q Q Q Q Q Q      	222222222"MM   GM	C	        4 3 3 3 3 3 3 3 2 2 2 2 2 2         
 8 7 7 7 7 7g g g
T	P P P
d!6 !6 !6 (#c( ! ! !F9 9 9 +SX    -12 c#h   
	) 	) 	) SX 	 	 	# # # s3x   $     JC J?O JTW J J J JJJ#3J	J J J J& ;? H%567 38_   :1E#s(O 1 1 1 1 1
y 
 
 
 
 8C=    i D    28 8 8 8 8s 8 8 8v    &   D. . . . .. . . .bA A A A A- A A A.    +   Bi/ i/ i/ i/ i/ i/ i/ i/X  -//s   >B
 
B*B%%B*