
    g                         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dS )    )OptionalN)
DiscussionHfApiget_repo_discussions   )cached_filehttp_user_agentloggingapimodel_idpr_titletokenreturnr   c                    |                      ||          d         j        }t          ||          D ]Q}|j        |k    rD|j        dk    r9|j        r2|                      ||j        |          }||d         j        k    r|c S Rd S )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          _/var/www/html/ai-engine/env/lib/python3.11/site-packages/transformers/safetensors_conversion.pyprevious_prr       s    '''>>qAKK*85III " "
x''J,=,G,GJLf,G++Hz?W_d+eeGgaj222!!!!4    privatec                    t                               d           d}| d}d }d||| gi}t          j        |d|                                          }|d         }t          j        | d	| d
          5 }		 t                               d            ||	           nA# t          $ r4}
t                               dt          |
                      Y d }
~
nd }
~
ww xY wd d d            d S # 1 swxY w Y   d S )Nz;Attempting to convert .bin model on the fly to safetensors.z$https://safetensors-convert.hf.spacez	/call/runc                    |                                  D ]}|                                }|                    d          ro|dd          }t                              d|            |dk    r d S |dk    rt                              d           |t                              d|            t                              |           d S )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0 	# 	#D;;==Dx(( #abbGvGGHHHZ''FF{**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NN$J!.999G# # #  Xw./D]74d;;;@@BBFj!H	--8--d	;	;	; B~	BLLEFFFE.!!!! 	B 	B 	BNN@tAww@@AAAAAAAA	B	B B B B B B B B B B B B B B B B B Bs<   8C.:%B C. 
C**CC.CC..C25C2c                 r   |                      |          j        }t                              d           d}|                    d          }t          | |||          }||s0|j        dk    r%t          |||           t          | |||          }nt                              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'zbi>&A&A222h>>>+,,,
RV

CJr!   Fpretrained_model_name_or_pathc                 ^   	 t          |                    d          dt                      i          }t          || fi |}|dS ||d<   |d= |                    | d||                    d                    }|rdnd	}t          | |fi |}|||fS # t          $ r}|s|Y d }~d S 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99LRaRcRcCdeee)#/LccPbcc;:),:&~. //)*$((11	 " 
 
 6=U11BU +,I8 j jWi j j$c722   . 	G	 	 	 	 	 	s   AB AB 
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 C C C C C C C C 8 8 8 8 8 8 8 8 8 8 
	H	%	%U c S  R^I_     BC  B$  B#  B  B  B  BFU c    . 3      r!   