ó
P™xTc           @   s°   d  d l  m Z d  d l m Z d  d l 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 d „ Z e e e d	 „ Z d e e e d
 „ Z d S(   iÿÿÿÿ(   t   division(   t   sgtbx(   t   parse_options(   t   format_cpu_timesNc      A   C   s¿   | r< i  } t  t j j t j j d ƒ d ƒ | ƒ | d S| re g  t j ƒ  D] } | j	 ƒ  ^ qO S|  r} t
 d d ƒ } n | rŒ dO } n dP } g  | D] } t j | ƒ j	 ƒ  ^ q™ dN g S(Q   Nt   phenix_regressions   settings.pyt   settingsi   iç   i   i   i   i   i   i   i   i   i   i   i   i   iK   iL   iM   iN   iO   iP   iY   iZ   i[   i\   i]   i^   i_   i`   ia   ib   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Å   iÆ   iÇ   iÏ   iÐ   iÑ   iÒ   iÓ   iÔ   iÕ   iÖ   i   i   iJ   iŽ   i�   i§   iÂ   iæ   s   Hall: -F 4 21 (1,5,3)(A   i   i   i   i   i   i   i   i   i   i   i   i   i   iK   iL   iM   iN   iO   iP   iY   iZ   i[   i\   i]   i^   i_   i`   ia   ib   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Å   iÆ   iÇ   iÏ   iÐ   iÑ   iÒ   iÓ   iÔ   iÕ   iÖ   (   i   i   i   i   i   iJ   iK   iL   iŽ   i�   i�   i�   i§   i¨   iÂ   iÃ   iæ   (   t   execfilet   ost   patht   joint   libtbxt   envt   find_in_repositoriesR   t   space_group_symbol_iteratort   universal_hermann_mauguint   xranget   space_group_symbols(   t   flag_AllSpaceGroupst   flag_ChiralSpaceGroupst   flag_AllSettingst   flag_UnusualSettingst	   namespacet   symbolst
   sg_numberst   n(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/development/debug_utils.pyt   get_test_space_group_symbols   s*    	      	i   c         C   si   g  } x; t  d ƒ D]- } | j d d | t j | ƒ | f ƒ q Wd j | ƒ } |  j t j | ƒ ƒ S(   Ni   s   %s+%d/%dt   xyzt   ,(   R   t   appendt   randomt	   randrangeR	   t   change_basisR   t   change_of_basis_op(   t   space_group_infot   gridR   t   i(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/development/debug_utils.pyt   random_origin_shift#   s
    +c         K   s&  g  } d } d }	 | j  t k r3 t | j  ƒ } n  | j t k rT t | j ƒ }	 n  | d k rl |	 | k  sr t ‚ t | j ƒ }
 |
 d k r• d GHn  | j s® t j d ƒ n  t	 |  ƒ d | j
 k rÐ |  } n! t | j | j | j | j ƒ } d } x
| D]} | j d ƒ rqþ n  | d 7} | | |	 k r9qþ n  t j | ƒ } t j j ƒ  | rkt j | IJn  t j j ƒ  | r“| GHt j j ƒ  n  | | | | � } t j j ƒ  y | \ } } Wn t k
 râ| d  } } n X| j | ƒ | t k rþ Pqþ qþ W| rt ƒ  GHn  t j j ƒ  | S(   Ni   i    s:   ** Warning: multi-threaded space-group looping disabled **iÿÿÿÿs   --(   t	   ChunkSizet   Falset   intt   ChunkMembert   AssertionErrort   Threadst
   RandomSeedR   t   seedt   lenR   R   t   AllSpaceGroupst   ChiralSpaceGroupst   AllSettingst   UnusualSettingst
   startswithR   R!   t   syst   stdoutt   flusht   stderrt	   TypeErrort   NoneR   R   (   t   argvt   flagst	   call_backt   symbols_to_stdoutt   symbols_to_stderrt   show_cpu_timest   kwdst   call_back_resultst
   chunk_sizet   chunk_membert	   n_threadsR   t   i_loopt   symbolR!   t   call_back_resultt   continue_flag(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/development/debug_utils.pyt   loop_space_groups*   s`    	 	 
  c         K   s;   t  d |  d d | d t ƒ } t |  | | | | | | � S(   NR9   t   keywordst   Verboset   DebugR*   R%   R(   R+   R.   R/   R0   R1   t   case_sensitive(
   RJ   RK   s   Threadss	   ChunkSizes   ChunkMembers
   RandomSeeds   AllSpaceGroupss   ChiralSpaceGroupss   AllSettingss   UnusualSettings(   R   R&   RH   (   R9   R;   RI   R<   R=   R>   R?   R:   (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/development/debug_utils.pyt   parse_options_loop_space_groups`   s              
	(    (   t
   __future__R    t   cctbxR   t    scitbx.python_utils.command_lineR   t   libtbx.utilsR   t   libtbx.load_envR
   R3   R   R   R   R$   t   TrueR&   RH   RM   (    (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/development/debug_utils.pyt   <module>   s   $	3