ó
˛,]c           @   sĘ   d  Z  d d l Z d d l m Z d   Z d   Z e j d d  rO e Z n$ e j d k rg e Z n e	 d	   e
 d
 k rĆ d d GHe j  GHe   GHe j d k rĆ d d GHe j  GHe   GHqĆ n  d S(   s   Operating system utilitiesi˙˙˙˙N(   t   programsc             s   d d l  m }  m } m  m } m } d d l m   d | f    f d     Y} |   } | |  | _ |  j	 j
 | |   t | j  S(   sH   Return physical memory usage (float)
    Works on Windows platforms onlyi˙˙˙˙(   t   windllt	   Structuret   c_uint64t   sizeoft   byref(   t   DWORDt   MemoryStatusc        
      s_   e  Z d    f d   f d  f d  f d  f d  f d  f d  f d  f g	 Z RS(	   t   dwLengtht   dwMemoryLoadt   ullTotalPhyst   ullAvailPhyst   ullTotalPageFilet   ullAvailPageFilet   ullTotalVirtualt   ullAvailVirtualt   ullAvailExtendedVirtual(   t   __name__t
   __module__t   _fields_(    (   R   R   (    s2   lib/python2.7/site-packages/spyder/utils/system.pyR      s   								(   t   ctypesR   R   R   R   R   t   ctypes.wintypesR   R   t   kernel32t   GlobalMemoryStatusExt   floatR	   (   R   R   R   R   R   t   memorystatus(    (   R   R   s2   lib/python2.7/site-packages/spyder/utils/system.pyt   windows_memory_usage   s    (
	c          C   s<   d d l  }  y |  j   j } Wn |  j   j } n X| S(   s   
    Return physical memory usage (float)
    Requires the cross-platform psutil (>=v0.3) library
    (https://github.com/giampaolo/psutil)
    i˙˙˙˙N(   t   psutilt   virtual_memoryt   percentt   phymem_usage(   R   R   (    (    s2   lib/python2.7/site-packages/spyder/utils/system.pyt   psutil_phymem_usage'   s    R   s   >=0.3.0t   nts5   Feature requires psutil 0.3+ on non Windows platformst   __main__t   *iP   (   t   __doc__t   ost   spyder.utilsR    R   R   t   is_module_installedt   memory_usaget   namet   ImportErrorR   (    (    (    s2   lib/python2.7/site-packages/spyder/utils/system.pyt   <module>   s"   						