
    謜i                         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dede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          _/mnt/e/genesis-system/.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 ]  }t        |t              s|j                         }|j	                  d      rX|dd  }t
        j                  d|        |dk(  r y |dk(  rt
        j                  d       st
        j                  d|        t
        j                  |        y )Nzevent:   zSafetensors conversion status: complete	heartbeat	HeartbeatzUnknown status )
iter_lines
isinstancestrdecode
startswithloggerdebug)_sse_connectionliner   s      r   startzspawn_conversion.<locals>.start   s    #..0 	#DdC({{}x(ab>vhGHZ'{*LL-LL?6(!;<T"	#r!   dataT)follow_redirectsjsonevent_idGET/z*Spawning safetensors automatic conversion.zError during conversion: )
r.   infohttpxpostr5   streamr/   	Exceptionwarningrepr)r   r"   r   safetensors_convert_space_urlsse_urlr2   r3   resultr6   sse_connectiones              r   spawn_conversionrE      s    
KKMN$J!./y9G#" Xw./DZZ$TBGGIFj!H	ey(4	5 B	BLLEF.!B B  	BNN6tAwi@AA	B	B Bs0   -C/B	C	!C?CC		CCc                 l   | j                  |      j                  }t        j                  d       d}|j	                  d      }t        | |||      }||s,|j                  dk7  rt        |||       t        | |||      }nt        j                  d       |t        d      d|j                   }|S )	Nz(Attempting to create safetensors variantz*Adding `safetensors` variant of this modelr   r   SFconvertbotzSafetensors PR existszCould not create safetensors conversion PR. The repo does not appear to have a file named pytorch_model.bin or model.safetensors.If you are loading with variant, use `use_safetensors=False` to load the original model.zrefs/pr/)

model_infor"   r.   r9   getr    authorrE   OSErrornum)r   r   kwargsr"   r   r   prshas           r   get_conversion_pr_referencerP   ;   s    nnX&..G
KK:;;HJJwE
 
S(HE	:B	z'bii>&A2h>+,	zg
 	

 RVVH
CJr!   pretrained_model_name_or_pathignore_errors_during_conversionsafe_weights_namesafe_weights_index_namec                 ,   	 t        |j                  d      dt               i      }t        || fi |}|y||d<   |d= |j	                  | |||j                  d            }|r|n|}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_hashr   )r   rI   r	   rP   file_existsr   r=   )rQ   rR   rS   rT   cached_file_kwargsr   rO   shardedfilenameresolved_archive_filerD   s              r   auto_conversionr]   W   s    ,009LRaRcCde)#/LcPbc;),:&~. //)#$((1	 " 
 /6*;L +,I8 jWi j$c722 .G /s   5A< AA< <	BBB)Fzmodel.safetensorszmodel.safetensors.index.json)typingr   r:   huggingface_hubr   r   r   utilsr   r	   r
   
get_logger__name__r.   r+   r    boolrE   rP   r]    r!   r   <module>re      s      C C 8 8 
		H	%U c S  R^I_ !BC !B$ !B# !BHU c < -20#A	#&%)  !	r!   