ó
–™xTc           @   s‚   d  d l  m Z d  d l m Z d  d l m Z d j ƒ  Z d d Z d d d Z	 d	 d
 d „ Z
 d „  Z d „  Z d „  Z d S(   iÿÿÿÿ(   t   division(   t
   cns_format(   t   crystals   a b c alpha beta gammas2   sg=\s*(\S+)\s*a=\s*(\S+)\s*b=\s*(\S+)\s*c=\s*(\S+)s2   \s*alpha=\s*(\S+)\s*beta=\s*(\S+)\s*gamma=\s*(\S+)s$   a=\s*(\S+)\s*b=\s*(\S+)\s*c=\s*(\S+)s   \s*sg=\s*(\S+)i   i   c         C   s™   |  d  k	 s t ‚ y6 g  t d ƒ D] } t |  j | | ƒ ƒ ^ q" } Wn t k
 r\ d  SXy# t j d | d |  j | ƒ ƒ SWn t k
 r” d  SXd  S(   Ni   t	   unit_cellt   space_group_symbol(	   t   Nonet   AssertionErrort   xranget   floatt   groupt
   ValueErrorR   t   symmetryt   RuntimeError(   t   mt   i_sgt   i_uct   iR   (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cns/crystal_symmetry_utils.pyt   crystal_symmetry_from_re_match   s     6 	c         C   s—   |  j  ƒ  } |  j ƒ  } | d  k r4 d g d } n# g  | j ƒ  D] } d | ^ qA } t d | ƒ } | d  k r� t | ƒ j d d ƒ } n  | | f S(   NR   i   s   %.6gt   space_group_infot    t    (   R   R   R   t
   parametersR   t   strt   replace(   t   crystal_symmetryt   ut   st   uct   vt   sg(    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cns/crystal_symmetry_utils.pyt   crystal_symmetry_as_sg_uc_list   s     # c         C   sN   t  d |  ƒ \ } } d | d d j g  t t | ƒ D] } d | ^ q6 ƒ S(   NR   s   sg=R   s   %s=%s(   R   t   joint   zipt   uc_param_names(   R   R   R   t   kv(    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cns/crystal_symmetry_utils.pyt   crystal_symmetry_as_sg_uc"   s    c         C   sQ   t  d |  ƒ \ } } d | g } x( t t | ƒ D] } | j d | ƒ q2 W| S(   NR   s   {===>} sg="%s";s   {===>} %s=%s;(   R   R    R!   t   append(   R   R   R   t   resultR"   (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cns/crystal_symmetry_utils.pyt#   crystal_symmetry_as_cns_inp_defines'   s
    N(   t
   __future__R    t   iotbx.cns.space_group_symbolsR   t   cctbxR   t   splitR!   t   re_sg_uct   re_uc_sgR   R   R#   R&   (    (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cns/crystal_symmetry_utils.pyt   <module>   s   			