o
    iV)                  
   @  s  d dl m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 d dl	m
Z
 d dlZd dlZd dlZd dlmZ d dlmZ d dlmZmZmZ zed\ZZeoXed	d
dkZW n eeefyj   d ZZY nw ejdd
dkZ ed\Z!Z"e"re!j#ndZ$g dZ%dd Z&dd Z'ej(fddZ)dd Z*d/ddZ+ej(fd0d d!Z,d/d"d#Z-ej(fd0d$d%Z.ej(fd0d&d'Z/ed(d)d*d+G d,d- d-Ze0d.kre/  dS dS )1    )annotationsN)OrderedDict)TextIO)
deprecated)
IgniteInfo)OptionalImportErrorget_package_versionoptional_importzmonai._CZBUILD_MONAI01FUSE_META_DICTpsutilz!NOT INSTALLED or UNKNOWN VERSION.)	print_configget_system_infoprint_system_infoget_gpu_infoprint_gpu_infoprint_debug_infoUSE_COMPILEDr   r   c                  C  s*   t  } tj| d< tjj| d< tj| d< | S )z6
    Read the package versions into a dictionary.
    ZMONAIZNumpyZPytorch)r   monai__version__npversionfull_versiontorchoutput r   [/home/dell461/cl/sdc2/last_ska_mid/HISourceFinder-master-l/src/monai/config/deviceconfig.pyget_config_values6   s
   

r   c                  C  s   t  } td| d< td| d< td| d< td| d< td	| d	< td
| d< td| d< td| d< td| d< td| d< td| d< t| d< td| d< td| d< td| d< td| d< td| d< td| d< | S )z?
    Read the optional package versions into a dictionary.
    ignitezPytorch IgniteZitkZITKZnibabelZNibabelZskimagezscikit-imagescipyPILZPillowtensorboardZTensorboardZgdowntorchvisionZTorchVisiontqdmZlmdbr   pandasZeinopsZtransformersZmlflowZnrrdZpynrrdZclearml)r   r   psutil_versionr   r   r   r   get_optional_config_valuesC   s(   r(   c                 C  s   t   D ]\}}t| d| | dd qtdt dt dt  tdtj  t	 }t
|dtj}td	| | dd td
| dd t  D ]\}}t| d| | dd qMtd| dd td| dd dS )z~
    Print the package versions to `file`.

    Args:
        file: `print()` text stream file. Defaults to `sys.stdout`.
    z
 version: TfileflushzMONAI flags: HAS_EXT = z, USE_COMPILED = z, USE_META_DICT = zMONAI rev id: z
<username>zMONAI __file__: z
Optional dependencies:zF
For details about installing the optional dependencies, please visit:z^    https://docs.monai.io/en/latest/installation.html#installing-the-recommended-dependencies
N)r   itemsprintHAS_EXTr   r   r   __revision_id__getpassZgetuserresub__file__r(   )r*   kvusernameZmasked_file_pathr   r   r   r   _   s    
r   c                 C  s:   zt |r| n|| |< W d S  ty   d| |< Y d S w )NzUNKNOWN for given OS)callableBaseException)in_dictkeyfnr   r   r   _dict_appendx   s
   r<   returnr   c                    s,  t  } t| dtj | d dkr$t| dtj ttdr#t| dtj n7| d dkr3t| ddd	  n(td
}t	d|
  W d   n1 sJw   Y   r[t| d fdd	 t| dtj t| dtj t| dtj t| dtj tst| ddd	  | S t }|  t| d|j t| d|j t| d|j t| ddd	  t| ddd	  t| ddd	  t| ddd	  t| d d!d	  t| d"d#d	  t| d$d%d	  t| d&d'd	  t t| d(fd)d	 t| d*fd+d	 t| d,fd-d	 W d   | S 1 sw   Y  | S ).z3
    Get system info as an ordered dictionary.
    SystemWindowszWin32 versionwin32_editionzWin32 editionDarwinzMac versionc                   S  s   t  d S )Nr   )platformmac_verr   r   r   r   <lambda>       z!get_system_info.<locals>.<lambda>z/etc/os-releasezPRETTY_NAME="(.*)"NzLinux versionc                     s
     dS )N   )groupr   )	linux_verr   r   rD      s   
 ZPlatformZ	ProcessorZMachinezPython versionz`psutil` missingc                   S  s   dS )Nzrun `pip install monai[psutil]`r   r   r   r   r   rD          zProcess nameZCommandz
Open fileszNum physical CPUsc                   S     t jddS )NFlogicalr   	cpu_countr   r   r   r   rD      rE   zNum logical CPUsc                   S  rJ   )NTrK   rM   r   r   r   r   rD      rE   zNum usable CPUsc                   S  s   t t  S N)lenr   ProcessZcpu_affinityr   r   r   r   rD          zCPU usage (%)c                   S  rJ   )NTZpercpu)r   Zcpu_percentr   r   r   r   rD      rE   zCPU freq. (MHz)c                   S  s   t tjddd S )NFrS   r   )roundr   Zcpu_freqr   r   r   r   rD      s    z#Load avg. in last 1, 5, 15 mins (%)c                   S  s   dd t  D S )Nc                 S  s"   g | ]}t |t  d  dqS )d   rF   )rT   r   rN   ).0xr   r   r   
<listcomp>   s   " 5get_system_info.<locals>.<lambda>.<locals>.<listcomp>)r   
getloadavgr   r   r   r   rD      s    zDisk usage (%)c                   S  s   t t jS rO   )r   
disk_usageosgetcwdpercentr   r   r   r   rD      rR   zAvg. sensor temp. (Celsius)c                   S  s$   t t dd t  D dS )Nc                 S  s   g | ]
}|D ]}|j qqS r   )current)rV   Zsublistitemr   r   r   rX      s    rY   rF   )r   rT   meanr   Zsensors_temperaturesvaluesr   r   r   r   rD      s    zTotal physical memory (GB)c                        t  jd dS N   @rF   )rT   totalr   memr   r   rD      rR   zAvailable memory (GB)c                     rc   rd   )rT   	availabler   rg   r   r   rD      rR   zUsed memory (GB)c                     rc   rd   )rT   usedr   rg   r   r   rD      rR   )r   r<   rB   system	win32_verhasattrr@   openr1   searchread	processormachinepython_version
has_psutilr   rQ   ZoneshotnameZcmdline
open_filesvirtual_memory)r   Zrel_fpr   )rH   rh   r   r      sd   



r   r*   r   Nonec                 C  sF   t std| dd dS t  D ]\}}t| d| | dd qdS )z
    Print system info to `file`. Requires the optional library, `psutil`.

    Args:
        file: `print()` text stream file. Defaults to `sys.stdout`.
    z)`psutil` required for `print_system_info`Tr)   : N)rt   r-   r   r,   r*   r4   r5   r   r   r   r      s
   r   c                    s  t  } tj t| dfdd t| ddd  | d r&t| ddd  tjj  t| d fd	d t| d
tj	
d
 t| dtj	
d  rVt| d fdd dkrjt| dtjj t| dtjj tD ]Y}tj|}t| d| d|j t| d| dt|j t| d| dt|j t| d| d|j t| d| dt|jd d t| d| d|j d|j  qn| S )NzNum GPUsc                         S rO   r   r   )num_gpusr   r   rD      rI   zget_gpu_info.<locals>.<lambda>zHas CUDAc                   S  s   t tj S rO   )boolr   cudais_availabler   r   r   r   rD      s    zCUDA versionc                   S  s   t jjS rO   )r   r   r   r   r   r   r   rD          zcuDNN enabledc                     s   t  S rO   )r~   r   	cudnn_verr   r   rD      r   ZNVIDIA_TF32_OVERRIDEZ TORCH_ALLOW_TF32_CUBLAS_OVERRIDEzcuDNN versionc                     r|   rO   r   r   r   r   r   rD      rI   r   zCurrent devicez'Library compiled for CUDA architectureszGPU z Namez Is integratedz Is multi GPU boardz Multi processor countz Total memory (GB)re   rF   z CUDA capability (maj.min).)r   r   r   device_countr<   backendscudnnr   r\   environgetcurrent_deviceget_arch_listrangeget_device_propertiesru   r~   is_integratedis_multi_gpu_boardmulti_processor_countrT   total_memorymajorminor)r   gpuZgpu_infor   )r   r}   r   r      s0   
 $r   c                 C  s0   t   D ]\}}t| d| | dd qdS )zr
    Print GPU info to `file`.

    Args:
        file: `print()` text stream file. Defaults to `sys.stdout`.
    rz   Tr)   N)r   r,   r-   r{   r   r   r   r      s   r   c                 C  s   t d| dd t d| dd t d| dd t|  t d| dd t d t d| dd t|  t d| dd t d t d| dd t|  dS )	z
    Print config (installed dependencies, etc.) and system info for debugging.

    Args:
        file: `print()` text stream file. Defaults to `sys.stdout`.
    z ================================Tr)   zPrinting MONAI config...z!
================================zPrinting system config...zPrinting GPU config...N)r-   r   r   r   )r*   r   r   r   r      s   r   z1.4.0z1.6.0z2Please use `monai.utils.enums.IgniteInfo` instead.)sinceremoved
msg_suffixc                   @  s   e Zd ZdZejZdS )r   zXDeprecated Import of IgniteInfo enum, which was moved to `monai.utils.enums.IgniteInfo`.N)__name__
__module____qualname____doc___IgniteInfoOPT_IMPORT_VERSIONr   r   r   r   r   
  s    
r   __main__)r=   r   )r*   r   r=   ry   )1
__future__r   r0   r\   rB   r1   syscollectionsr   typingr   numpyr   r   r   Zmonai.utils.deprecate_utilsr   monai.utils.enumsr   r   monai.utils.moduler   r   r	   _r.   getenvr   ImportErrorAttributeErrorr   r   r   r   rt   r   r'   __all__r   r(   stdoutr   r<   r   r   r   r   r   r   r   r   r   r   <module>   sL   
;
"
