a
    Ady                     @   s   d dl Z d dlZd dlZd dlZd dlZ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mZmZmZ dZh dZd ddZdd	 Zed
Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZedZdd Zdd Zdd Z dS )!    N)paths_internaltimershared
extensionserrorsZADontStealMyGamePlz__WINNERS_DONT_USE_DRUGS__DONT_COPY_THAT_FLOPPY>   	BLIP_REPOK_DIFFUSION_REPOTORCH_INDEX_URLGRADIO_ANALYTICS_ENABLEDZWEBUI_LAUNCH_LIVE_OUTPUT	REQS_FILEOPENCLIP_PACKAGEZ	INDEX_URLCODEFORMER_COMMIT_HASHSTABLE_DIFFUSION_COMMIT_HASHCODEFORMER_REPOCOMMANDLINE_ARGSSTABLE_DIFFUSION_REPOTORCH_COMMANDBLIP_COMMIT_HASHCLIP_PACKAGEZIGNORE_CMD_ARGS_ERRORSK_DIFFUSION_COMMIT_HASHXFORMERS_PACKAGE
PYTHONPATHGITBc                 C   s@   dD ]6}t | dk s|dkr2| d| |   S | d } qd S )N)	 KMGTPEZYi   r"   z.0f)abs)numsuffixunit r'   7/var/www/html/stable-diffusion-webui/modules/sysinfo.pypretty_bytes)   s    r)   c                  C   s:   t  } tj| ddd}t|d}|t| }|S )NF   )ensure_asciiindentutf8)	get_dictjsondumpshashlibsha256encodereplacechecksum_token	hexdigest)restexthr'   r'   r(   get0   s
    r:   z"Checksum": "([0-9a-fA-F]{64})"c                 C   sL   t t| }|sdS t tdt d| }t|d}| |	dkS )NFz"Checksum": ""r-      )
researchre_checksumsubr5   r1   r2   r3   r6   group)xmreplacedr9   r'   r'   r(   check>   s    rE   c                     s   t   t t t t tjtj	tj
tt t t t t jddt jddd fdddD tddtddt t tjtd	d
 tjD d} | S )NT)logicalF)modelzcount logicalzcount physicalc                    s.   i | ]&}t  |d d kr|tt  |d qS )r   )getattrr)   .0rB   ramr'   r(   
<dictcomp>]   s   zget_dict.<locals>.<dictcomp>)totalusedfreeactiveinactivebufferscachedr   )enabledc                 S   s   g | ]}|j  d |j qS )z==)keyversion)rJ   pkgr'   r'   r(   
<listcomp>e       zget_dict.<locals>.<listcomp>)PlatformPythonVersionCommitzScript pathz	Data pathzExtensions dirZChecksumZCommandlinezTorch env infoZ
ExceptionsCPUZRAM
ExtensionszInactive extensionsEnvironmentConfigZStartupZPackages)psutilvirtual_memoryplatformpython_versionlaunchgit_tagcommit_hashr   script_path	data_pathextensions_dirr5   get_argvget_torch_sysinfoget_exceptions	processor	cpu_countget_extensionsget_environment
get_configr   startup_recordsortedpkg_resourcesworking_set)r7   r'   rK   r(   r.   I   s6    


r.   c                 C   s   dd t | D S )Nc                 S   s,   g | ]$}|j  d |j d|j |jgqS )z, line z, )filenamelinenonamelinerI   r'   r'   r(   rY   l   rZ   z$format_traceback.<locals>.<listcomp>)	traceback
extract_tb)tbr'   r'   r(   format_tracebackk   s    r   c                 C   s   t | t|dS )N)	exceptionr}   )strr   )er   r'   r'   r(   format_exceptiono   s    r   c               
   C   sB   zt ttjW S  ty< }  zt| W  Y d } ~ S d } ~ 0 0 d S N)listreversedr   exception_records	Exceptionr   r   r'   r'   r(   ro   s   s    ro   c                   C   s   dd t tjD S )Nc                 S   s    i | ]}|t v r|tj| qS r'   )environment_whitelistosenviron)rJ   kr'   r'   r(   rM   {   rZ   z#get_environment.<locals>.<dictcomp>)rv   r   r   r'   r'   r'   r(   rs   z   s    rs   c                  C   s^   g } t jD ]N}tjjr.tjj|kr.| d q
tjjrNtjj|krN| d q
| | q
| S )Nz<hidden>)sysargvr   cmd_optsgradio_authappendapi_auth)r7   vr'   r'   r(   rm   ~   s    


rm   z\r*\nc               
   C   s^   z,dd l } | jj  }dd | D W S  tyX } zt|W  Y d }~S d }~0 0 d S )Nr   c                 S   s2   i | ]*\}}|d t |v r*ttt |n|qS )
)r   r=   split
re_newline)rJ   r   r   r'   r'   r(   rM      rZ   z%get_torch_sysinfo.<locals>.<dictcomp>)Ztorch.utils.collect_envutilsZcollect_envZget_env_info_asdictitemsr   r   )torchinfor   r'   r'   r(   rn      s    rn   c              
      sZ   z(t jddd fddt j D W S  tyT } zt|W  Y d }~S d }~0 0 d S )NrB   c                 S   s   | j | j| j| j| jdS )Nr{   pathrW   branchremoter   r   r'   r'   r(   to_json   s    zget_extensions.<locals>.to_jsonc                    s$   g | ]}|j s|j kr|qS r'   )
is_builtinrU   rI   rU   r   r'   r(   rY      rZ   z"get_extensions.<locals>.<listcomp>)r   	Extensionr   r   )rU   r   r'   r   r(   rr      s
    	rr   c               
   C   s<   z
t jjW S  ty6 }  zt| W  Y d } ~ S d } ~ 0 0 d S r   )r   optsdatar   r   r   r'   r'   r(   rt      s    
rt   )r   )!r/   r   r   r}   re   r1   rw   rc   r=   rg   modulesr   r   r   r   r   r5   r   r)   r:   compiler?   rE   r.   r   r   ro   rs   rm   r   rn   rr   rt   r'   r'   r'   r(   <module>   s4   

"

