ó
ã™xTc           @   s÷   d  d l  m Z d  d l m Z d  d l m Z m Z m Z d  d l m	 Z	 d  d l
 Z
 d  d l 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 e d k ró d  d l Z e d e j d ƒ n  d S(   iÿÿÿÿ(   t   division(   t   utils(   t   Exception_expectedt   approx_equalt	   show_diff(   t   StringIONc          C   sš   d d  l  }  |  j } t | g  g  ƒ ƒ g  k s6 t ‚ t | d d g d g ƒ ƒ d d g k sf t ‚ t | d g d d g ƒ ƒ d d g k s– t ‚ d  S(	   Niÿÿÿÿi   i   i   (   i   i   (   i   N(   i   i   (   Ni   (   t	   itertoolst   izip_longestt   listt   AssertionErrort   None(   R   t   f(    (    s>   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/tst_utils.pyt   exercise_forward_compatibility
   s
    	!0c    "   	   C   s  t  j ƒ  j d d ƒ d }  xW t d ƒ D]I } |  d }  t  j d |  ƒ \ } } t t  j | | ƒ |  ƒ s) t ‚ q) Wt  j } t  j	 } t  j
 } d „  } | | d ƒ d ƒ | | d ƒ d	 ƒ | | d t ƒ d
 ƒ | | d t ƒ d ƒ | | d ƒ d ƒ t  j } x] d d g D]O }	 y | d |	 ƒ Wn/ t k
 r]}
 t |
 ƒ d |	 k sdt ‚ qXt ‚ qW| d d ƒ d k sƒt ‚ t | d d ƒ d ƒ s¡t ‚ t | d d ƒ d ƒ s¿t ‚ y | d d ƒ Wn. t k
 r }
 t |
 ƒ j d ƒ st ‚ n Xt ‚ d } t d t | ƒ ƒ | k s.t ‚ d } t d t | ƒ ƒ | k sUt ‚ xt i	 d d 6d d 6d d 6d d  6d‰ d# 6dŒ d% 6d� d& 6d' d' 6d( d( 6j ƒ  D]' \ } } t  j | ƒ | k s¡t ‚ q¡Wt  j d ƒ d� k sçt ‚ t  j d) ƒ d‘ k st ‚ t  j d d/ d0 g ƒ d’ k s&t ‚ t  j } | d1 d2 d3 d4 d5 d2 d6 g ƒ d2 g k s_t ‚ | d1 d7 d3 d8 d5 d2 d9 d: g ƒ d2 d: g k s•t ‚ | d1 d2 d3 d; d5 d2 d6 g ƒ d2 d6 g k sÈt ‚ | d1 d< d3 d= d5 d2 d6 g ƒ d6 g k søt ‚ | d1 d> d3 d? d5 d@ d6 g ƒ d6 g k s(t ‚ | d1 dA d3 dB d5 d@ dC g ƒ d@ g k sXt ‚ t  j } xU t d d! ƒ D]D } x; t | ƒ D]- } | dD | dE | f ƒ | g k s„t ‚ q„WqqWx‰ d“ d” d• d– g D]u } | \ } } x` t | ƒ D]R } xI t | ƒ D]; } | | | } | dD | dE | ƒ | | g k sþt ‚ qþWqëWqÌWx® d— d˜ d™ dš g D]š } | \ } } } x‚ t | ƒ D]t } xk t | ƒ D]] } xT t | ƒ D]F } | | | | | } | dD | dE | ƒ | | | g k s t ‚ q Wq�WqzWqXWdG dH l m } | j dI dJ ƒ } xI | j | j g D]5 } | dK j dL ƒ sJt ‚ | dG dM k s+t ‚ q+W| j dI dN ƒ } | j ƒ  t  j } t  j  } t g  t! dO d/ ƒ D] } | dP ^ q¥| dQ dR dS ƒ ƒ sÓt ‚ t g  t! dO d› ƒ D] } | dP ^ qæ| dQ dR dS ƒ ƒ st ‚ t g  t! d/ dO dG ƒ D] } | dP ^ q*| dR dQ dT ƒ ƒ sXt ‚ t g  t! d/ dœ dG ƒ D] } | dP ^ qn| dR dQ dT ƒ ƒ sœt ‚ t g  t! dF dU ƒ D] } | dV ^ q¯| d d/ dW ƒ ƒ sÝt ‚ t g  t! dF d� ƒ D] } | dV ^ qð| d d/ dW ƒ ƒ st ‚ t g  t! dF ƒ D] } dR | dX ^ q.| dR dY dž ƒ ƒ s`t ‚ t g  t! dF ƒ D] } dR | dX ^ qp| dR dY dŸ ƒ ƒ s¢t ‚ t t! d! ƒ | d! ƒ ƒ sÃt ‚ t t! d  ƒ | d! ƒ ƒ sät ‚ t t! d[ ƒ | d[ ƒ ƒ s	t ‚ t t! d¡ ƒ | d[ ƒ ƒ s&	t ‚ t t! d d0 ƒ | d d0 ƒ ƒ sM	t ‚ t t! d d¢ ƒ | d d0 ƒ ƒ st	t ‚ t g  t! d\ d] dO ƒ D] } | dP ^ qŠ	| d^ d_ dQ ƒ ƒ s¸	t ‚ t g  t! d\ d] dO ƒ D] } | dP ^ qÎ	| d^ d_ dQ ƒ ƒ sü	t ‚ t  j" } | d` da ƒ db k s 
t ‚ | d` dc ƒ dd k s;
t ‚ | de df ƒ dg k sV
t ‚ | dh di ƒ dj k sq
t ‚ | dk dl ƒ dm k sŒ
t ‚ | dn do ƒ dp k s§
t ‚ | dn dq ƒ dr k sÂ
t ‚ x8 t dF ƒ D]* } t# t  j$ ds | ƒ ƒ | k sÏ
t ‚ qÏ
Wdt Gt  j% ƒ  GHdu Gt  j& ƒ  Gdv GHdu Gt  j& dw d¦ ƒ Gd| GHd} Gt  j' ƒ  GHd~ Gt  j( ƒ  GHd d€ } t) d� d‚ ƒ j* | ƒ t) dƒ d‚ ƒ } t  j+ d„ | d… d� ƒ | j, ƒ  t) dƒ ƒ j- ƒ  } t. }  x8 | D]0 }! d† |! k sÜt ‚ |! j d‡ ƒ rÄt }  qÄqÄW|  st ‚ d  S(§   Nt   prefixs   ### gš™™™™™ñ?i7   t   time_in_secondsc         S   s"   t  |  ƒ t  | ƒ k s t ‚ d  S(   N(   t   lenR	   (   t   stringt   expected(    (    s>   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/tst_utils.pyt   check   s    iX[KLs   Jul 24 2010 02:30 PMs   Jul 24 2010 14:30s   24-07-10 02:30 PMs   24-07-10 14:30t   Truet   FalseR   s0   Error interpreting "%s" as a numeric expression.s   -42iÖÿÿÿs   3.14g…ëQ¸	@s   cos(0)i   s   xxx(0)s5   Error interpreting "xxx(0)" as a numeric expression: s&   [0.143139, -0.125121, None, -0.308607]t   valuess)   [0.1431391, -0.1251212, None, -0.3086073]i€„ t   2000000i   t   2kt   2Kbs   2 Kbi   i   t   5Mbg      @s   2.5Gbt   1Ti'  g      @t   abcdet   at   bt   ct   dt   ei   i   t   patternt   foxt   modes   ==t   linest   foxest   ot   findt   birdt   mouset
   startswitht   xest   endswiths   es$s	   re.searcht   geeset   ges   re.matcht   angelt   i1dt   sizesi   iÿÿÿÿ(   t   easy_runt   commands"   libtbx.raise_exception_for_testingi    s   EXCEPTION_INFO: show_stack(0): s/   EXCEPTION_INFO: RuntimeError: Just for testing.s)   libtbx.raise_exception_for_testing silentiþÿÿÿg      $@gš™™™™™É¿gš™™™™™É?gš™™™™™¹?gš™™™™™¹¿i   g      @g      Ð?g      @gÍÌÌÌÌÌô?g      ð?iûÿÿÿi   i	   g       @gÍÌÌÌÌÌì?gˆ¸9•<5@g”ö_˜LU?s   21.2346(13)gHPüs×b?s	   21.235(2)i90  i-   s	   12350(50)gš™™™™™(@g333333ó?s   12.3(12)gåòÒo_Ï¿gÕxé&1ê?s   -0.2(8)gX9´Èv¾ó?gJ+‡É?s   1.2(2)gNbX9´È?s   1.23(19)t   number_of_digitss   multiprocessing problem:s   base36_timestamp():t   nowt   seconds_since_epochi�Ä g{®GáÓv@i   i<   s   year 115855 CEs   get_svn_revision():s   get_build_tag():s   
from __future__ s;   import division
import os.path

def foo () :
  print "bar"
s!   tst_libtbx_utils_python_script.pyt   ws"   tst_libtbx_utils_python_script2.pyt   outt	   file_namet
   __future__s   def fooi   i  P g      ¤@g      DAg      äAi   i   @l        (   i   (   R   R   R   R   R    (   i   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   i   iýÿÿÿi	   gUUUUUUÕ?gUUUUUUÕ?i   iúÿÿÿi   g33³m-„AgÌÌ–#DÎAgÿÿ«\á_,Bgÿ?áFã™ŠB(/   R   t   host_and_usert   showt   xranget   human_readable_timeR   t   human_readable_time_as_secondsR	   t   format_timestampt   format_timestamp_12_hourt   format_timestamp_24_hourR   t   number_from_stringt
   ValueErrort   strR   R*   t   numstrt   evalt   numstr7t   itemst   get_memory_from_stringt   tupleizet
   search_fort   n_dim_index_from_one_dimt   libtbxR2   t   fully_bufferedt   stdout_linest   stderr_linest   raise_if_errors_or_outputt   franget   samplest   ranget&   format_float_with_standard_uncertaintyR   t   random_hex_codet   detect_multiprocessing_problemt   base36_timestampt   get_svn_revisiont   get_build_tagt   opent   writet   concatenate_python_scriptt   closet	   readlinesR   ("   R   t   i_trialt
   time_unitst	   time_unitt   ftst   f12t   f24R   t   nfsR   R    t   st   it   sft   nd1dt   sizeR0   R1   t   nit   njt   jt   nkt   kR2   R   R$   RS   RT   t   fft   nt   scriptR   t   have_deft   line(    (    s>   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/tst_utils.pyt   exercise_misc   s   
						 
 !!$	!	/3:				
		AADDAABB!!!!''DD	(
c          C   s±   t  ƒ  }  t j ƒ  j d |  d d ƒ |  j ƒ  }  |  j d ƒ sF t ‚ |  j d ƒ s[ t ‚ t j ƒ  j d |  d d ƒ |  j ƒ  }  |  j d ƒ s˜ t ‚ |  j d ƒ s­ t ‚ d  S(   NR8   R   s   e: s    ss   d: (	   R   R   t   user_plus_sys_timet   show_elapsedt   getvalueR*   R	   R,   t
   show_delta(   Rh   (    (    s>   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/tst_utils.pyt   exercise_user_plus_sys_time´   s    	c          C   sX  t  ƒ  }  t j d |  ƒ } | d IJ| j ƒ  | j ƒ  } | d IJ| j ƒ  |  j ƒ  d k sg t ‚ | j ƒ  t |  j ƒ  d ƒ s� t ‚ | d I| j ƒ  t |  j ƒ  d ƒ s½ t ‚ | J| j ƒ  t |  j ƒ  d ƒ sç t ‚ | d	 I| j ƒ  t |  j ƒ  d
 ƒ st ‚ | j	 d ƒ | d IJ| j ƒ  t |  j ƒ  d ƒ sTt ‚ d  S(   Nt   file_objectt   level0t   level1t    s   level0
  level1
t   abcs   level0
  level1
  abcs   level0
  level1
  abc
t   defs   level0
  level1
  abc
  deft   hijs    level0
  level1
  abc
  def hij
(
   R   R   t   buffered_indentort   flusht   shift_rightRz   R	   t   write_bufferR   R]   (   R8   R~   R   (    (    s>   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/tst_utils.pyt   exercise_indented_display¿   s8    	











c           C   s—   t  d d ƒ s t ‚ t  d d d d ƒs0 t ‚ t  d d d d ƒsK t ‚ t  d d d d ƒsf t ‚ t  d d d g d d d g d d ƒs“ t ‚ d  S(   Ng      ð?g•dyáý¥=i   y              ð?g�•C‹lçï?y        ªñÒMbð?t   epsg{®Gáz„?y        ü©ñÒMbp?y        ú~j¼t“h?g      @g333333@y        333333@g�Âõ(\�@g333333@y        š™™™™™¹?g      @y        š™™™™™@gš™™™™™@gš™™™™™É?gì¯    ð?y      ð?      ð?y�•C‹lçï?ªñÒMbð?y�•C‹lçï?ü©ñÒMbp?y      ð?ú~j¼t“h?y333333@333333@y333333@š™™™™™¹?y      @š™™™™™@(   R   R	   (    (    (    s>   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/tst_utils.pyt   exercise_approx_equalë   s    c          C   s  d t  j ƒ  }  t  j j |  ƒ s2 t  j |  ƒ n  g  } xc d d d d g D]O } t  j j |  d | ƒ } t | d ƒ j | ƒ | j | ƒ t	 j
 d ƒ qK Wt t  j j |  d	 ƒ d ƒ } | j d
 ƒ | j ƒ  t j |  d d ƒ} t j | ƒ } | | k s	t ‚ d  S(   Ns   tmp_files_%dt   XYZR�   t   qwertyt   123s   %s.txtR7   i   s   hkl.logt   hklR!   s   .txt$(   t   ost   getpidt   patht   existst   mkdirt   joinR\   R]   t   appendt   timet   sleepR_   R   t
   find_filest   sort_files_by_mtimeR	   (   t   dir_namet   sorted_filesR   R9   R   t
   file_namest   sorted_files_2(    (    s>   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/tst_utils.pyt   exercise_file_utilsó   s    
c          C   s¥  d d d g }  x0 |  D]( } t  j j | ƒ r t  j | ƒ q q Wt j d ƒ } t  j j | ƒ d k so t ‚ t j d ƒ } t  j j | ƒ d k sœ t ‚ t j d d ƒ } t  j j | ƒ d k sÌ t ‚ x |  D] } t  j | ƒ qÓ Wd t j ƒ  t j ƒ  f } y t j	 | ƒ Wn t j
 k
 r-n Xt ‚ t  j ƒ  } t j	 d | ƒ t } t  j j d ƒ s~t  j d ƒ t } n  t  j j t  j ƒ  d ƒ } t j d	 t ƒ �[ } t j d
 ƒ t j	 d | ƒ t | ƒ d k sãt ‚ d t | d j ƒ k st ‚ Wd  QX| rt  j d ƒ n  t j ƒ  } t j | j ƒ sCt ‚ t  j j | j d ƒ } t j | ƒ sqt ‚ t  j j | j d d ƒ } t j | ƒ s¡t ‚ d  S(   Nt   tst_utils_1t   tst_utils_2t   tst_utils_45t	   tst_utilsi-   s   /cctbx/%s/%s/XXXX.pdbRš   t   Dropboxt   recordt   alwaysi   s   Dropbox directoryiÿÿÿÿt	   Downloadst   datat   lysozyme(   R�   R‘   t   isdirt   rmdirR   t   create_run_directoryt   basenameR	   t   randomt    check_if_output_directory_existst   SorryR   t   getcwdR   R’   R“   R   R”   t   warningst   catch_warningst   simplefilterR   RE   t   messageR;   t   allow_delete_directoryt   homedir(   t   dirsRš   R9   t   dir_createdR7   t	   host_infot
   target_dir(    (    s>   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/tst_utils.pyt   exercise_dir_utils  sL     	%c      	   C   s2  t  |  ƒ d k s t ‚ t ƒ  t ƒ  t j d d g ƒ i d d 6d d 6k sU t ‚ t j d ƒ d g k ss t ‚ t j d d d g ƒ d d d g k s  t ‚ t j d d d d g d g ƒ d d d d d g k sÜ t ‚ t j d d d d g d d g d d	 g g g ƒ d d d d d d d d	 g k s3t ‚ y t d
 ƒ ‚ Wn< t k
 rY‚  n/ t	 k
 r�t j
 ƒ  d k sˆt ‚ n Xt ‚ y d d k s�t ‚ Wn` t k
 r´‚  nS t	 k
 r t j
 ƒ  } | j d ƒ sât ‚ | j d ƒ d k st ‚ n Xt ‚ t ƒ  t ƒ  t ƒ  t ƒ  t j ƒ  GHd  S(   Ni    R   R   i   i   i   i   i   i   t   Trials   RuntimeError: Trials   AssertionError: s   tst_utils.py line (   R   R	   R   Rw   R   t   sequence_index_dictt	   flat_listt   RuntimeErrort   KeyboardInterruptt	   Exceptiont   format_exceptionR   R*   R'   Rˆ   RŠ   Rž   R»   t   format_cpu_times(   t   argsRh   (    (    s>   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/tst_utils.pyt   run,  s:    /-<W  t   __main__RÄ   i   (   R:   R    RN   R   t   libtbx.test_utilsR   R   R   t	   cStringIOR   R±   R­   R–   R�   R   Rw   R|   Rˆ   RŠ   Rž   R»   RÅ   t   __name__t   syst   argv(    (    (    s>   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/tst_utils.pyt   <module>   s$   		£		,			(	