
Gq]c        3   @   s  d  Z  d d l Z d d l Z d d l Z d d l Z d d l j j Z d d l	 m
 Z
 d d l m Z d d l	 m Z d d l m Z d d l m Z d d	 l m Z d d
 l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m  Z  g  Z! e ri e j" e j# 6e j$ e j% 6e j& e j' 6e j( e j) 6e j* e j+ 6e j, e j- 6e j. e j/ 6Z0 n e se rHi e j" e j# 6e j& e j' 6e j( e j) 6e j* e j1 6e j* e j+ 6e j2 e j% 6e j$ e j3 6Z0 nj e ri e j" e j# 6e j$ e j4 6e j* e j5 6e j( e j) 6e j* e j+ 6e j6 e j1 6e j7 e j8 6Z0 n  i e j9 e j: 6e j; e j< 6e j= e j> 6e j? e j@ 6e jA e jB 6e jC e jD 6e jE e jF 6e jG e jH 6e jI e jJ 6e jK e jL 6e jM e jN 6e jO e jP 6ZQ e rle jR d  ZS n e jR d  ZS e jT ZT eU e d  ZV eU e d  ZW eU e d  ZX eU e d  ZY eZ d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK dL  Z[ d Z] d Z^ d Z_ d Z` e
 dM dN dO dP dQ dR dS dT dU dV dW dX g  Za e
 dY dZ d[ d\ d] d^ g  Zb e
 d_ d? dA d` da db g  Zc ec Zd e
 dc dZ d\ dd de g  Ze e
 df dg  Zf e
 dh di  Zg e rOe
 dj dk dl dm dn do dp dq g  Zh n e
 dj dk dl dm dn g  Zh dr   Zi ds   Zj dt   Zk eV rdu   Zl n dv   Zl em el _n dw   Zo e se rdx   Zp n	 dy   Zp dz   Zq em d{  Zr e js Zs e jt Zt e ju Zu e jv Zv d|   Zw d}   Zx e rBd~   Zy d   Zz d   Z{ n  d   Z| d   Z} e d    Z~ d   Z e sxe rd   Z n	 e j Z d   Z e j d    Z d e f d     YZ d S(   s5   FreeBSD, OpenBSD and NetBSD platforms implementation.iN(   t
   namedtuple(   t   AF_INET(   t   defaultdicti   (   t   _common(   t   _psposix(   t   _psutil_bsd(   t   _psutil_posix(   t   AF_INET6(   t	   conn_tmap(   t   FREEBSD(   t   memoize(   t   memoize_when_activated(   t   NETBSD(   t   OPENBSD(   t   sockfam_to_enum(   t   socktype_to_enum(   t   usage_percent(   t   whicht   SC_PAGESIZEt   SC_PAGE_SIZEt   per_cpu_timest   proc_num_threadst   proc_open_filest   proc_num_fdst   ppidi    t   statust   real_uidi   t   effective_uidi   t	   saved_uidi   t   real_gidi   t   effective_gidi   t	   saved_gidi   t   ttynri   t   create_timei	   t   ctx_switches_voli
   t   ctx_switches_unvoli   t   read_io_counti   t   write_io_counti   t	   user_timei   t   sys_timei   t   ch_user_timei   t   ch_sys_timei   t   rssi   t   vmsi   t   memtexti   t   memdatai   t   memstacki   t   cpunumi   t   namei   t   svmemt   totalt	   availablet   percentt   usedt   freet   activet   inactivet   bufferst   cachedt   sharedt   wiredt	   scputimest   usert   nicet   systemt   idlet   irqt   pmemt   textt   datat   stackt	   pcputimest   children_usert   children_systemt   pmmap_groupeds*   path rss, private, ref_count, shadow_countt	   pmmap_exts6   addr, perms path rss, private, ref_count, shadow_countt   sdiskiot
   read_countt   write_countt
   read_bytest   write_bytest	   read_timet
   write_timet	   busy_timec          C   s  t  j   }  |  \ } } } } } } } } t r t d d  p }	 xf |	 D]^ }
 |
 j d  r{ t |
 j   d  d } qI |
 j d  rI t |
 j   d  d } qI qI WWd QXn  | | | } | | | } t | | | d d } t | | | | | | | | | | |  S(	   s&   System virtual memory as a namedtuple.s   /proc/meminfot   rbs   Buffers:i   i   s
   MemShared:Nt   round_(	   t   cextt   virtual_memR   t   opent
   startswitht   intt   splitR   R1   (   t   memR2   R6   R7   R8   R<   R:   R9   R;   t   ft   linet   availR5   R4   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   virtual_memory   s    *c          C   sL   t  j   \ }  } } } } t | |  d d } t j |  | | | | |  S(   s@   System swap memory as (total, used, free, sin, sout) namedtuple.RU   i   (   RV   t   swap_memR   R   t   sswap(   R2   R5   R6   t   sint   soutR4   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   swap_memory   s    c          C   s1   t  j   \ }  } } } } t |  | | | |  S(   s+   Return system per-CPU times as a namedtuple(   RV   t	   cpu_timesR=   (   R>   R?   R@   RA   RB   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyRf      s    c          C   s[   g  }  xN t  j   D]@ } | \ } } } } } t | | | | |  } |  j |  q W|  S(   s'   Return system CPU times as a namedtuple(   RV   R   R=   t   append(   t   rett   cpu_tR>   R?   R@   RA   RB   t   item(    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyR      s    c           C   sD   t    d k r t   g St j r1 t d   n  t t _ t   g S(   s'   Return system CPU times as a namedtuplei   s&   supported only starting from FreeBSD 8(   t   cpu_count_logicalRf   R   t
   __called__t   NotImplementedErrort   True(    (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyR      s    
		c           C   s
   t  j   S(   s0   Return the number of logical CPUs in the system.(   RV   Rk   (    (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyRk      s    c           C   s   t    d k r d Sd  S(   Ni   (   Rk   t   None(    (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   cpu_count_physical  s    c          C   s   d }  t j   } | d k	 r | j d  } | d k r | | d  } t j |  } z t | j d   pq d }  Wd | j   Xq n  |  s t	   d k r d Sn  |  S(   s1   Return the number of physical CPUs in the system.s	   </groups>ii	   s   group/children/group/cpuNi   (
   Ro   RV   t   cpu_count_physt   rfindt   ETt
   fromstringt   lent   findallt   clearRk   (   Rh   t   st   indext   root(    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyRp     s    c    	      C   s   t  r$ t j   \ }  } } } } n t r t j   \ }  } } } } } } t d d  @ } x6 | D]. } | j d  rd t | j   d  } qd qd WWd QXn* t r t j   \ }  } } } } } } n  t	 j
 |  | | |  S(   s*   Return various CPU stats as a named tuple.s
   /proc/statRT   t   intri   N(   R	   RV   t	   cpu_statsR   RX   RY   RZ   R[   R   R   t	   scpustats(	   t   ctxswt   intrst
   soft_intrst   syscallst   trapst   faultst   forksR]   R^   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyR|   #  s    !&$c   	      C   s^   g  } t  j   } xE | D]= } | \ } } } } t j | | | |  } | j |  q W| S(   s   Return mounted disk partitions as a list of namedtuples.
    'all' argument is ignored, see:
    https://github.com/giampaolo/psutil/issues/906
    (   RV   t   disk_partitionsR   t	   sdiskpartRg   (	   t   allt   retlistt
   partitionst	   partitiont   devicet
   mountpointt   fstypet   optst   ntuple(    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyR   F  s    c          C   s   t    j   }  i  } x |  D] } y7 t j |  } t j |  } t j |  \ } } Wn+ t k
 r } | j t j k r   q q Xt	 t
 d  r t
 j |  } n  t
 j | | | |  | | <q W| S(   s)   Get NIC stats (isup, duplex, speed, mtu).t	   NicDuplex(   t   net_io_counterst   keyst
   cext_posixt
   net_if_mtut   net_if_flagst   net_if_duplex_speedt   OSErrort   errnot   ENODEVt   hasattrR   R   t	   snicstats(   t   namesRh   R0   t   mtut   isupt   duplext   speedt   err(    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   net_if_statsa  s    
 c      	   C   s,  t  r g  } x t   D]| } y t |  j |   } Wn t t f k
 rQ q q Xx= | D]5 } t |  } | j |  | j t j	 |    qY Wq W| S|  t j
 k r t d |  d j g  t
 D] } t |  ^ q  f   n  t
 |  \ } } t   } t rt j d  } n t j   } x | D] }	 |	 \ }
 } } } } } } | | k r(| | k r(y t | } Wn t k
 rt t j } n X| t t f k r| rt j |   } n  | rt j |   } qn  t |  } t |  } t j	 |
 | | | | | |  } | j |  q(q(Wt |  S(   s    System-wide network connections.s+   invalid %r kind argument; choose between %ss   , i(   R   t   pidst   Processt   connectionst   NoSuchProcesst   ZombieProcesst   listRg   R   t   sconnR   t
   ValueErrort   joint   reprt   setR   RV   t   net_connectionst   TCP_STATUSESt   KeyErrort   PSUTIL_CONN_NONER   R   t   addrR   R   t   add(   t   kindRh   t   pidt   const   connt   xt   familiest   typest   rawlistRj   t   fdt   famt   typet   laddrt   raddrR   t   nt(    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyR   u  sJ    5	!c          C   s   y t  j   \ }  } } Wn t k
 r- d SX| d k } | rL t j } n" | d k rd t j } n
 | d } t j |  | |  S(   s   Return battery info.i   ii<   N(   RV   t   sensors_batteryRm   Ro   R   t   POWER_TIME_UNLIMITEDt   POWER_TIME_UNKNOWNt   sbattery(   R4   t   minsleftt   power_pluggedt   secsleft(    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyR     s    
c          C   s   t  t  }  t   } x t |  D]u } y[ t j |  \ } } | d k rU d } n  d | } |  d j t j	 | | | |   Wq" t
 k
 r q" Xq" W|  S(   s?   Return CPU cores temperatures if available, else an empty dict.i    s   Core %st   coretempN(   R   R   Rk   t   rangeRV   t   sensors_cpu_temperatureRo   Rg   R   t   shwtempRm   (   Rh   t   num_cpust   cput   currentt   highR0   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   sensors_temperatures  s    		

c          C   s  g  }  t    } x t |  D] } y t j |  \ } } Wn t k
 rQ q n X| r y* t | j d  d j d  d  } Wn t t f k
 r d } n Xy* t | j d  d j d  d  } Wq t t f k
 r d } q Xn  |  j
 t j | | |   q W|  S(   s   Return frequency metrics for CPUs. As of Dec 2018 only
        CPU 0 appears to be supported by FreeBSD and all other cores
        match the frequency of CPU 0.
        t    it   /i    N(   Rk   R   RV   t   cpu_frequencyRm   RZ   R[   t
   IndexErrorR   Ro   Rg   R   t   scpufreq(   Rh   R   R   R   t   available_freqt   min_freqt   max_freq(    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   cpu_freq  s$    	*
* c           C   s
   t  j   S(   s:   The system boot time expressed in seconds since the epoch.(   RV   t	   boot_time(    (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyR     s    c    	      C   s   g  }  t  j   } x | D]| } | \ } } } } } | d k rU t sL t  d } n  | d k rg q n  t j | | py d | | |  } |  j |  q W|  S(   s:   Return currently connected users as a list of namedtuples.it   ~N(   RV   t   usersR   t   AssertionErrorRo   R   t   suserRg   (	   R   R   Rj   R>   t   ttyt   hostnamet   tstampR   R   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyR     s    	!c           C   sB   y t  d  j   Wn# t k
 r( t St k
 r9 t SXt Sd  S(   Ni    (   R   R0   R   t   Falset   AccessDeniedRn   (    (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   _pid_0_exists  s    c          C   s>   t  j   }  t r: d |  k r: t   r: |  j d d  n  |  S(   s7   Returns a list of PIDs currently running on the system.i    (   RV   R   R   R   t   insert(   Rh   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyR     s    c         C   s*   t  j |   } | s" |  t   k St Sd S(   s   Return True if pid exists.N(   R   t
   pid_existsR   Rn   (   R   t   exists(    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyR     s    c            s"   t  j      f d    } | S(   s`   Decorator which translates bare OSError exceptions into
    NoSuchProcess and AccessDenied.
    c            s   y   |  | |  SWn t  k
 r } |  j d k rb d t   k r\ t |  j |  j   qb   n  | j t j k r t |  j  s t |  j |  j   q t	 |  j |  j |  j
   n  | j t j t j f k r t |  j |  j   n    n Xd  S(   Ni    (   R   R   R   R   t   _nameR   t   ESRCHR   R   R   t   _ppidt   EPERMt   EACCES(   t   selft   argst   kwargsR   (   t   fun(    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   wrapper.  s    (   t	   functoolst   wraps(   R   R   (    (   R   s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   wrap_exceptions*  s    c         c   s   y	 d VWn t  k
 r } | j t j t j f k r{ t |  j  s] t |  j |  j   q{ t |  j |  j |  j	   n  | j t j
 t j f k r t |  j |  j   n    n Xd S(   s8   Same as above, for routines relying on reading /proc fs.N(   t   EnvironmentErrorR   t   ENOENTR   R   R   R   R   R   R   R   R   R   (   t   instR   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   wrap_exceptions_procfsC  s    	R   c           B   sB  e  Z d  Z d d d d g Z d   Z d   Z e e d     Z d   Z	 d	   Z
 e d
    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e r e d    Z n  e d    Z e Z e d    Z e d    Z e d    Z e d    Z e d d   Z e d) d   Z e d    Z e d    Z e d    Z  e d    Z! e d    Z" e# d  d!  Z$ e# d  d"  Z% d#   Z& e' re d$    Z( n e& Z( e) re d%    Z* n e& Z* e r@e d&    Z+ e d'    Z, e d(    Z- n  RS(*   s1   Wrapper class around underlying C implementation.R   R   R   t   _cachec         C   s   | |  _  d  |  _ d  |  _ d  S(   N(   R   Ro   R   R   (   R   R   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   __init__[  s    		c         C   s   t  j |  j  d S(   s+   Raise NSP if the process disappeared on us.N(   RV   t	   proc_nameR   (   R   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   _assert_alive`  s    c         C   s4   t  j |  j  } t |  t t  k s0 t  | S(   s;   Retrieves multiple process info in one shot as a raw tuple.(   RV   t   proc_oneshot_infoR   Ru   t   kinfo_proc_mapR   (   R   Rh   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   oneshotf  s    c         C   s   |  j  j |   d  S(   N(   R   t   cache_activate(   R   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   oneshot_entern  s    c         C   s   |  j  j |   d  S(   N(   R   t   cache_deactivate(   R   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   oneshot_exitq  s    c         C   s4   |  j    t d } | d  k	 r$ | St j |  j  S(   NR0   (   R   R   Ro   RV   R   R   (   R   R0   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyR0   t  s    c         C   s   t  r t j |  j  St rY |  j d k r/ d St |    t j d |  j  SWd  QXn$ |  j   } | ry t	 | d  Sd Sd  S(   Ni    t    s   /proc/%s/exe(
   R	   RV   t   proc_exeR   R   R   t   ost   readlinkt   cmdlineR   (   R   R	  (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   exey  s    c         C   s   t  r |  j d k r g  St r y t j |  j  SWq t k
 r } | j t j k r t |  j  s~ t	 |  j |  j
   q t |  j |  j
 |  j   q   q Xn t j |  j  Sd  S(   Ni    (   R   R   R   RV   t   proc_cmdlineR   R   t   EINVALR   R   R   R   R   (   R   R   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyR	    s    
c         C   sE   |  j    t d } t j   } y | | SWn t k
 r@ d  SXd  S(   NR    (   R   R   R   t   get_terminal_mapR   Ro   (   R   t   tty_nrt   tmap(    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   terminal  s    c         C   s   |  j    t d |  _ |  j S(   NR   (   R   R   R   (   R   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyR     s    c         C   s7   |  j    } t j | t d | t d | t d  S(   NR   R   R   (   R   R   t   puidsR   (   R   t   rawtuple(    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   uids  s
    c         C   s7   |  j    } t j | t d | t d | t d  S(   NR   R   R   (   R   R   t   pgidsR   (   R   R  (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   gids  s
    c         C   sB   |  j    } t j | t d | t d | t d | t d  S(   NR&   R'   R(   R)   (   R   R   RG   R   (   R   R  (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyRf     s    c         C   s   |  j    t d S(   NR/   (   R   R   (   R   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   cpu_num  s    c         C   sJ   |  j    } t | t d | t d | t d | t d | t d  S(   NR*   R+   R,   R-   R.   (   R   RC   R   (   R   R  (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   memory_info  s    c         C   s   |  j    t d S(   NR!   (   R   R   (   R   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyR!     s    c         C   s*   t  r t j |  j  St |  j    Sd  S(   N(   t   HAS_PROC_NUM_THREADSRV   R   R   Ru   t   threads(   R   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   num_threads  s    c         C   s,   |  j    } t j | t d | t d  S(   NR"   R#   (   R   R   t   pctxswR   (   R   R  (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   num_ctx_switches  s    c         C   sk   t  j |  j  } g  } x9 | D]1 \ } } } t j | | |  } | j |  q Wt rg |  j   n  | S(   N(   RV   t   proc_threadsR   R   t   pthreadRg   R   R   (   R   R   R   t	   thread_idt   utimet   stimeR   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyR    s    t   inetc         C   s  | t  k rG t d | d j g  t  D] } t |  ^ q"  f   n  t rt  | \ } } t   } t j |  j  } x| D]} | \ } }	 }
 } } } } | |  j k s t	  |	 | k r |
 | k r y t
 | } Wn t k
 r t
 t j } n X|	 t t f k rA| r&t j |   } n  | rAt j |   } qAn  t |	  }	 t |
  }
 t j | |	 |
 | | |  } | j |  q q W|  j   t |  St  | \ } } t j |  j | |  } g  } x | D] } | \ } }	 }
 } } } |	 t t f k r7| rt j |   } n  | r7t j |   } q7n  t |	  }	 t |
  }
 t
 | } t j | |	 |
 | | |  } | j |  qWt r|  j   n  | S(   Ns+   invalid %r kind argument; choose between %ss   , (   R   R   R   R   R   R   RV   R   R   R   R   R   R   R   R   R   R   R   R   t   pconnR   R   R   t   proc_connectionsRg   R   (   R   R   R   R   R   Rh   R   Rj   R   R   R   R   R   R   R   R   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyR     sX    5	


c         C   s   t  j |  j | |  j  S(   N(   R   t   wait_pidR   R   (   R   t   timeout(    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   wait-  s    c         C   s   t  j |  j  S(   N(   R   t   getpriorityR   (   R   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   nice_get1  s    c         C   s   t  j |  j |  S(   N(   R   t   setpriorityR   (   R   t   value(    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   nice_set5  s    c         C   s$   |  j    t d } t j | d  S(   NR   t   ?(   R   R   t   PROC_STATUSESt   get(   R   t   code(    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyR   9  s    c         C   s2   |  j    } t j | t d | t d d d  S(   NR$   R%   i(   R   R   t   pioR   (   R   R  (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   io_counters?  s    c         C   s   t  r |  j d k r d St rI t |    t j d |  j  SWd QXn4 t re t j	 |  j  pd d St
 t rt d n d   d S(   s)   Return process current working directory.i    s   /proc/%s/cwdNs&   supported only starting from FreeBSD 8R  (   R   R   Ro   R   R   R  R  t   HAS_PROC_OPEN_FILESRV   t   proc_cwdRm   R	   (   R   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   cwdH  s    t   mmaps*   path rss, private, ref_count, shadow_counts6   addr, perms path rss, private, ref_count, shadow_countc         C   s
   t   d  S(   N(   Rm   (   R   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   _not_implemented`  s    c         C   s;   t  j |  j  } g  | D] \ } } t j | |  ^ q S(   s8   Return files opened by process as a list of namedtuples.(   RV   R   R   R   t	   popenfile(   R   R   t   pathR   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt
   open_filesf  s    c         C   s)   t  j |  j  } t r% |  j   n  | S(   s=   Return the number of file descriptors opened by this process.(   RV   R   R   R   R   (   R   Rh   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   num_fdsq  s    c         C   s   t  j |  j  S(   N(   RV   t   proc_cpu_affinity_getR   (   R   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   cpu_affinity_get  s    c         C   s   t  t t t      } x3 | D]+ } | | k r" t d | | f   q" q" Wy t j |  j |  Wnj t k
 r } | j	 t	 j
 t	 j f k r x6 | D]+ } | | k r t d | | f   q q Wn    n Xd  S(   Ns#   invalid CPU #%i (choose between %s)(   t   tupleR   Ru   R   R   RV   t   proc_cpu_affinity_setR   R   R   R  t   EDEADLK(   R   t   cpust   allcpusR   R   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   cpu_affinity_set  s    c         C   s   t  j |  j  S(   N(   RV   t   proc_memory_mapsR   (   R   (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   memory_maps  s    N(.   t   __name__t
   __module__t   __doc__t	   __slots__R   R   R   R   R   R  R  R0   R
  R	  R  R   R  R  Rf   R	   R  R  t   memory_full_infoR!   R  R  R  R   Ro   R'  R)  R,  R   R2  R5  R    t   nt_mmap_groupedt   nt_mmap_extR7  R3  R:  t   HAS_PROC_NUM_FDSR;  R=  RC  RE  (    (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyR   V  s`   						
0		(   RH  t
   contextlibR   R   R  t   xml.etree.ElementTreet   etreet   ElementTreeRs   t   collectionsR    t   socketR   R   R  R   R   R   RV   R   R   R   R   R	   R
   R   R   R   R   R   R   t   _compatR   t   __extra__all__t   STATUS_IDLEt   SIDLt   STATUS_RUNNINGt   SRUNt   STATUS_SLEEPINGt   SSLEEPt   STATUS_STOPPEDt   SSTOPt   STATUS_ZOMBIEt   SZOMBt   STATUS_WAITINGt   SWAITt   STATUS_LOCKEDt   SLOCKR.  t   SDEADt   STATUS_WAKINGt   SONPROCt   SACTIVEt   SDYINGt   STATUS_DEADt   STATUS_SUSPENDEDt
   SSUSPENDEDt   CONN_ESTABLISHEDt   TCPS_ESTABLISHEDt   CONN_SYN_SENTt   TCPS_SYN_SENTt   CONN_SYN_RECVt   TCPS_SYN_RECEIVEDt   CONN_FIN_WAIT1t   TCPS_FIN_WAIT_1t   CONN_FIN_WAIT2t   TCPS_FIN_WAIT_2t   CONN_TIME_WAITt   TCPS_TIME_WAITt
   CONN_CLOSEt   TCPS_CLOSEDt   CONN_CLOSE_WAITt   TCPS_CLOSE_WAITt   CONN_LAST_ACKt   TCPS_LAST_ACKt   CONN_LISTENt   TCPS_LISTENt   CONN_CLOSINGt   TCPS_CLOSINGt	   CONN_NONER   R   t   sysconft   PAGESIZEt   AF_LINKR   t   HAS_PER_CPU_TIMESR  R3  RM  t   dictR   Ro   R   R   R   t   TimeoutExpiredR1   R=   RC   t   pfullmemRG   RJ   RK   RL   R`   Re   Rf   R   R   Rl   Rk   Rp   R|   R   t
   disk_usaget   disk_io_countersR   t   net_if_addrsR   R   R   R   R   R   R   R   R   R   R   t   contextmanagerR   t   objectR   (    (    (    s,   lib/python2.7/site-packages/psutil/_psbsd.pyt   <module>   s6  												#						6					

		