
    5pjy              	         S r SSKJr  SSKrSSKrSSKJr  SSKJ	r	  SSK
JrJrJr  SS	KJr            SS
 jr SSSSSSSSS.                     SS jjjrSSSSSSSSS.                     SS jjrg)zLegacy-compatible single-file download wrappers.

These functions replicate the signature of the old
``modelscope.hub.file_download`` module.
    )annotationsN   )HubApi)RepoType)AuthenticationErrorNotExistErrorPermissionDeniedError   )DEFAULT_DATASET_REVISIONc                    X4$ )a\  Resolve cache_dir/local_dir for legacy API compatibility.

Passes parameters through so the new API uses its standard cache
layout (``{cache}/{type}s/{owner}--{name}/snapshots/{rev}/...``),
consistent with CLI ``ms download`` behavior.

When ``local_dir`` is explicitly set, files go directly there.
Otherwise the standard cache hierarchy is used.
 )repo_id	cache_dir	local_dirapis       _/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/modelscope_hub/compat/file_download.py_resolve_legacy_pathsr      s         F)r   r   cookiestokenendpointlocal_files_only
user_agentc                  Ub  [         R                  " S[        SS9  [        XgS9n
Uc!  U(       d   U
R	                  U SS9n[        XgS9n
[        U UUU
5      u  p U
R                  U [        R                  UUUUUU	S9n[!        U5      $ ! [
         a     NLf = f! [        [        [        4 a8  n[        R                  R                  [!        U5      [#        US	S5      S
9UeSnAff = f)z0Download a single model file (legacy signature).NGThe 'cookies' parameter is deprecated and ignored. Use 'token' instead.r   
stacklevelr   r   model	repo_typer!   	file_pathrevisionr   r   r   r   responser%   )warningswarnDeprecationWarningr   resolve_endpoint_for_read	Exceptionr   download_filer   MODELr   r   r	   	_requests
exceptions	HTTPErrorstrgetattr)model_idr#   r$   r   r   r   r   r   r   r   r   effective_cacheeffective_localresultes                  r   model_file_downloadr8   %   s    U	
 u
0C 0	44X4QHu8C (=	($Oc""nn%%-! # 	
 v;+  		& .0EF c"",,SVgaUY>Z,[abbcs)   B $B 
BBC(03C##C()r   r   r$   r   r   r   r   r   c                  Ub  [         R                  " S[        SS9  [        XgS9n
Uc!  U(       d   U
R	                  U SS9n[        XgS9n
[        U UUU
5      u  p U
R                  U [        R                  UU=(       d    [        UUUU	S9n[#        U5      $ ! [
         a     NYf = f! [        [        [        4 a8  n[        R                  R!                  [#        U5      [%        US	S5      S
9UeSnAff = f)z2Download a single dataset file (legacy signature).Nr   r   r   r   datasetr    r"   r%   r&   )r'   r(   r)   r   r*   r+   r   r,   r   DATASETr   r   r   r	   r.   r/   r0   r1   r2   )
dataset_idr#   r   r   r$   r   r   r   r   r   r   r4   r5   r6   r7   s                  r   dataset_file_downloadr=   W   s    U	
 u
0C 0	44Z94UHu8C (=	($Oc""&&9!9%%-! # 	
 v;+  		& .0EF c"",,SVgaUY>Z,[abbcs)   B 1B( 
B%$B%(C5=3C00C5)
r   r1   r   
str | Noner   r>   r   r   returnztuple[str | None, str | None])N)r3   r1   r#   r1   r$   r>   r   r>   r   r>   r   dict | Noner   r>   r   r>   r   boolr   dict | str | Noner?   r1   )r<   r1   r#   r1   r   r>   r   r>   r$   r>   r   r@   r   r>   r   r>   r   rA   r   rB   r?   r1   )__doc__
__future__r   r'   requestsr.   r   r   	constantsr   errorsr   r   r	   r   r   r8   r=   r   r   r   <module>rH      sq   #      N N /      
	 
 # *  /
 ! "$(/// /
 / / / / / / "/ 	/l ! "$(/// 	/
 / / / / / / "/ 	/r   