ó
©G<Kc           @   sŽ   d  Z  d d l Z d d l Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d	 „  Z	 d
 „  Z
 d „  Z d „  Z d „  Z d „  Z d S(   sk  
#+
# NAME:
#	tiny
# PURPOSE:
#	Couple of trivial Python functions
# CATEGORY:
#	smei/gen/python
# CALLING SEQUENCE:
#	result = keys( a )
#	result = args( a )
#	is_there( k, a )
#	start( x, a )
#	result = run_cmd( cmd, verbose )
#	result = tomb( size )
#	result = which( program )
#	say( csay, wseif, key, message )
# INPUTS:
#	keys:	  a	: sys.argv
#	args:	  a	: sys.argv
#	is_there: a	: sys.argv
#		  k	: keyword (usually starting with dash)
#	start:	  a	: sys.argv
#		  k	: argument (usually of form 'arg=')
#	run_cmd:  cmd	: shell command to be executed
#	 	  verbose : 0 : do not print the command log
#      			    1 : print command log
# OUTPUTS:
#	keys	: result : list of keywords starting with dash (-)
#	args	: result : list of arguments not starting with dash (-)
#	is_there: result : 0 if keyword 'k' is not present in 'a'
#			   1 if keyword 'k' is present in 'a'
#		  result : 0 if 'a' does not contain entry starting with 'k'
#			   1 if 'a' contains entry starting with 'k'
#	start	: result : substring of argument in 'a' trailing 'k'
#			   blank string is 'a' does not contain 'k'
#	run_cmd	: result : command log
# MODIFICATION HISTORY:
#	MAR-2003, Paul Hick (UCSD/CASS)
#	FEB-2004, Paul Hick (UCSD/CASS)
#		Added tomb function
#	APR-2005, Paul Hick (UCSD/CASS)
#		Removed dependence on string module
#	DEC-2005, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
#		Added say.
#-
iÿÿÿÿNc         C   s;   g  } x. |  D]& } | d d k r | j  | ƒ q q W| S(   Ni    t   -(   t   append(   t   at   kt   b(    (    s'   /home/soft/smei/ucsd/gen/python/tiny.pyt   keys3   s
    c         C   s;   g  } x. |  D]& } | d d k r | j  | ƒ q q W| S(   Ni    R    (   R   (   R   R   R   (    (    s'   /home/soft/smei/ucsd/gen/python/tiny.pyt   args?   s
    c         C   s5   t  |  ƒ } d } t | ƒ | k r1 | | } n  | S(   Nt    (   R   t   len(   R   t   nR   R   (    (    s'   /home/soft/smei/ucsd/gen/python/tiny.pyt   argnJ   s
     c         C   s   | j  |  ƒ d k S(   Ni    (   t   count(   R   R   (    (    s'   /home/soft/smei/ucsd/gen/python/tiny.pyt   is_thereT   s    c         C   sH   d } x; | D]3 } | d t  |  ƒ !|  k r | t  |  ƒ } Pq q W| S(   NR   i    (   R   (   t   xR   R   R   (    (    s'   /home/soft/smei/ucsd/gen/python/tiny.pyt   startX   s    c         C   s5   | r |  GHn  t  j |  ƒ j ƒ  } | r1 | GHn  | S(   N(   t   ost   popent   read(   t   cmdt   verboset   log(    (    s'   /home/soft/smei/ucsd/gen/python/tiny.pyt   run_cmdd   s      c         C   sÞ   t  d ƒ } t |  ƒ d } |  | d k r< |  d | !}  n  t |  ƒ d } |  | d k rv t  |  d | !ƒ | }  nd |  | d k rœ t  |  d | !ƒ }  n> |  | d k rÆ t  |  d | !ƒ | }  n t  |  ƒ | | }  |  S(   Ni   i   t   Bi    t   Gt   MR   (   t   floatR   (   t   sizet   kilot   tmp(    (    s'   /home/soft/smei/ucsd/gen/python/tiny.pyt   tombk   s    c         C   s…   t  d |  d d ƒ } | j d ƒ } d } xA | D]9 } |  | k r3 d | k r3 | d 7} | rl | GHql q3 q3 Wd | Gd G|  GH| S(	   Ns   ps -efw | grep "t   "i    s   
t   grepi   s   %ds   instance(s) running:(   R   t   split(   t   nameR   t   proct   cntt   p(    (    s'   /home/soft/smei/ucsd/gen/python/tiny.pyt   count_instances   s    
c         C   s;   |  j  | ƒ r1 |  | } | d k r7 | } q7 n | } | S(   NR   (   t   has_key(   R   R!   t	   def_valuet   value(    (    s'   /home/soft/smei/ucsd/gen/python/tiny.pyt
   dict_entry”   s    
c         C   sÿ   d } d } x¿ t  j j ƒ  D]® \ } } t | ƒ } | d k r | j d ƒ d k pg | j d ƒ d k } | s… t  j j | ƒ } n  | rÊ |  j | ƒ d k rÇ | t | ƒ k rÄ | } | } qÄ qÇ qÊ q q W| d k rã |  } n d | |  t | ƒ } | S(   NR   i    s   /smeidbs   /smeidc/t   $(   R   t   environt	   iteritemsR   t   findt   patht   isdir(   t   spect
   match_namet   match_valueR!   R(   R	   t   existst   rtn(    (    s'   /home/soft/smei/ucsd/gen/python/tiny.pyt   hide_envŸ   s"    *	c         C   s.   t  j d |  d ƒ j ƒ  j d ƒ d } | S(   Ns   which s    2> /dev/nulls   
i    (   R   R   R   R    (   t   programR4   (    (    s'   /home/soft/smei/ucsd/gen/python/tiny.pyt   which¾   s    *c   
      C   sÇ  d d l  m } | d d k r3 t | d ƒ } n! | d k rN | d ƒ } n | } |  d | d | } t } g  } xz | j d	 ƒ D]i } t | ƒ d k r® | j | ƒ q† | rÖ | j d
 | d | ƒ t } q† | j d | d | ƒ q† Wd	 j | ƒ GH| j	 ƒ  j
 d ƒ d k }	 | d k rA|	 rÃt j d ƒ qÃn‚ | d k rf|	 rÃt j d ƒ qÃn] | d k r‚t j d ƒ nA | d k r§|	 rÃt j d ƒ qÃn | d k rÃt j d ƒ n  d  S(   Niÿÿÿÿ(   t   strftimei    t   #i   s   <time>s   %Y/%m/%d %H:%M:%SR    s   
t   %t    t   stopt   Wt   St   Ei   t   Ii   t   Fi   (   t   timeR8   R5   t   TrueR    R   R   t   Falset   joint   lowerR-   t   syst   exit(
   t   csayt   wseift   keyt   messageR8   t   prefixt
   first_linet   messagest   lineR<   (    (    s'   /home/soft/smei/ucsd/gen/python/tiny.pyt   sayÄ   s@    	   (   t   __doc__R   RG   R   R   R
   R   R   R   R   R%   R)   R5   R7   RQ   (    (    (    s'   /home/soft/smei/ucsd/gen/python/tiny.pyt   <module>0   s   			
								