
    sg                         d dl mZ d dlZd dlmZmZmZ ddlmZm	Z	m
Z
  e
j                  e      Zdededed	ed
ed   f
dZd	ededefdZdedefdZddefdZy)    )OptionalN)
DiscussionHfApiget_repo_discussions   )cached_filehttp_user_agentloggingapimodel_idpr_titletokenreturnr   c                 *   | j                  ||      d   j                  }t        ||      D ]c  }|j                  |k(  s|j                  dk(  s#|j
                  s0| j                  ||j                  |      }||d   j                  k(  sa|c S  y )Nr   r   )repo_idr   openrevisionr   r   )list_repo_commits	commit_idr   titlestatusis_pull_requestgit_reference)r   r   r   r   main_commit
discussioncommitss          V/var/www/html/venv/lib/python3.12/site-packages/transformers/safetensors_conversion.pyprevious_prr       s    '''>qAKKK*85I "
x'J,=,=,GJLfLf++Hz?W?W_d+eGgaj222!!"     privatec                    t         j                  d       d}| d}d }d||| gi}t        j                  |d|      j	                         }|d   }t        j
                  | d	| d
      5 }		 t         j                  d        ||	       d d d        y # t        $ r+}
t         j                  dt        |
              Y d }
~
8d }
~
ww xY w# 1 sw Y   y xY w)Nz;Attempting to convert .bin model on the fly to safetensors.z$https://safetensors-convert.hf.spacez	/call/runc                 J   | j                         D ]  }|j                         }|j                  d      rX|dd  }t        j	                  d|        |dk(  r y |dk(  rt        j	                  d       ct        j	                  d|        |t        j	                  |        y )Nzevent:   zSafetensors conversion status: complete	heartbeat	HeartbeatzUnknown status )
iter_linesdecode
startswithloggerdebug)_sse_connectionliner   s      r   startzspawn_conversion.<locals>.start   s    #..0 	#D;;=Dx(ab>vhGHZ'{*LL-LL?6(!;<T"	#r!   dataT)streamjsonevent_id/)r2   z*Spawning safetensors automatic conversion.zError during conversion: )
r,   inforequestspostr3   getr-   	Exceptionwarningrepr)r   r"   r   safetensors_convert_space_urlsse_urlr0   r1   resultr4   sse_connectiones              r   spawn_conversionrB      s    
KKMN$J!./y9G#  Xw./D]]74d;@@BFj!H		8*-d	; B~	BLLEF.!B B  	BNN6tAwi@AA	B	B Bs0   .C0B	C
!C CC

CCc                 R   | j                  |      j                  }t        j                  d       d}|j	                  d      }t        | |||      }||s,|j                  dk7  rt        |||       t        | |||      }nt        j                  d       d|j                   }|S )Nz(Attempting to create safetensors variantz*Adding `safetensors` variant of this modelr   r   SFConvertBotzSafetensors PR existszrefs/pr/)	
model_infor"   r,   r6   r9   r    authorrB   num)r   r   kwargsr"   r   r   prshas           r   get_conversion_pr_referencerK   :   s    nnX&..G
KK:;;HJJwE
 
S(HE	:B	z'bii>&A2h>+,RVVH
CJr!   pretrained_model_name_or_pathc                 ,   	 t        |j                  d      dt               i      }t        || fi |}|y||d<   |d= |j	                  | d||j                  d            }|rdnd	}t        | |fi |}|||fS # t        $ r}|s|Y d }~y d }~ww xY w)
Nr   z
user-agent)r   headers)NNr   _commit_hashzmodel.safetensors.index.jsonr   zmodel.safetensors)r   r9   r	   rK   file_existsr   r:   )	rL   ignore_errors_during_conversioncached_file_kwargsr   rJ   shardedfilenameresolved_archive_filerA   s	            r   auto_conversionrV   Q   s    ,009LRaRcCde)#/LcPbc;),:&~. //)*$((1	 " 
 6=1BU +,I8 jWi j$c722 .G /s   5A< AA< <	BBB)F)typingr   r7   huggingface_hubr   r   r   utilsr   r	   r
   
get_logger__name__r,   strr    boolrB   rK   rV    r!   r   <module>r_      s      C C 8 8 
		H	%U c S  R^I_  BC  B$  B#  BFU c .3 r!   