a
     ³Šaˆ  ã                   @   sr   d Z ddlZddlZdd„ Zdd„ Zedkrnedƒ eej ƒ eeƒ ƒ ejd	krnedƒ eej ƒ eeƒ ƒ dS )
z&
Operating-system-specific utilities.
é    Nc                     sh   ddl m} m}m‰m}m} ddlm‰  G ‡ ‡fdd„d|ƒ}|ƒ }||ƒ|_| j	 
||ƒ¡ t|jƒS )zk
    Return physical memory usage (float).

    It works on Windows platforms only and without psutil.
    r   )ÚwindllÚ	StructureÚc_uint64ÚsizeofÚbyref)ÚDWORDc                
       sF   e Zd Zd” fd” fd”fd”fd”fd”fd”fd”fd	”fg	Zd
S )z*windows_memory_usage.<locals>.MemoryStatusÚdwLengthÚdwMemoryLoadZullTotalPhysZullAvailPhysZullTotalPageFileZullAvailPageFileZullTotalVirtualZullAvailVirtualZullAvailExtendedVirtualN)Ú__name__Ú
__module__Ú__qualname__Z_fields_© ©r   r   r   ú2lib/python3.9/site-packages/spyder/utils/system.pyÚMemoryStatus   s   ør   )Zctypesr   r   r   r   r   Zctypes.wintypesr   r   Zkernel32ZGlobalMemoryStatusExÚfloatr	   )r   r   r   r   r   Zmemorystatusr   r   r   Úwindows_memory_usage   s    

r   c                  C   s*   zt  ¡ j} W n   t  ¡ j} Y n0 | S )z%Return physical memory usage (float).)ÚpsutilZvirtual_memoryÚpercentZphymem_usage)r   r   r   r   Úmemory_usage.   s
    r   Ú__main__zP********************************************************************************Únt)Ú__doc__Úosr   r   r   r
   ÚprintÚnamer   r   r   r   Ú<module>   s   



