ó
–™xTc           @   sF   d  d l  m Z d  d l m Z d  d l m Z d „  Z d „  Z d S(   iÿÿÿÿ(   t   division(   t   crystal_symmetry_as_sg_uc(   t   flexc         C   sB   |  j  ƒ  d  k	 s$ |  j ƒ  d  k	 r> | d t d |  ƒ IJn  d  S(   Ns   { %s }t   crystal_symmetry(   t	   unit_cellt   Nonet   space_group_infoR   (   R   t   out(    (    sD   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cns/miller_array.pyt    crystal_symmetry_as_cns_comments   s    c         C   s  | } | r% | d I| Id IJn  |  j  ƒ  d  k	 rV | d I|  j  ƒ  Id IJn  t d |  d | ƒ x$ | D] } | d I| Id IJqp W| d |  j ƒ  j ƒ  IJ|  j ƒ  rÃ | d IJn
 | d IJ|  j ƒ  d  k	 r¨| d  k rú d	 d
 g } n t | ƒ d k st ‚ t	 |  j
 ƒ  t j ƒ s0t ‚ t	 |  j ƒ  t j ƒ sNt ‚ |  j ƒ  ri|  j ƒ  } n |  } | \ }	 }
 | d |	 IJ| d |
 IJ| d  k rxÿ t | j ƒ  | j
 ƒ  | j ƒ  ƒ D]3 \ } } } | d | Id |	 | |
 | f IJqÈWq| j ƒ  j | j ƒ  ƒ s#t ‚ | d IJxèt | j ƒ  | j
 ƒ  | j ƒ  | j
 ƒ  ƒ D]F \ } } } } | d | Id |	 | |
 | f Id t | ƒ IJq[Wnp|  j ƒ  r| d  k rÌd g } n t | ƒ d k sät ‚ | d  k söt ‚ | d } | d | IJxt |  j ƒ  t j |  j
 ƒ  ƒ t j |  j
 ƒ  t ƒ ƒ D]0 \ } } } | d | Id | | | f IJqHWn™|  j ƒ  ré| d  k r¬d d d d g } n t | ƒ d k sÄt ‚ | d  k sÖt ‚ x& t d ƒ D] } | d | | IJqãW| d IJx& t d ƒ D] } | d | | IJqW| d IJxÙt |  j ƒ  |  j
 ƒ  ƒ D]Š \ } } | d | I| d | d | d f I| d | d | d f I| d | d | d f I| d | d  | d  f IJqXWn/| d  k rd! g } n t | ƒ d k st ‚ | d  k s+t ‚ t	 |  j
 ƒ  t j ƒ r^| d | d IJd" } nd t	 |  j
 ƒ  t j ƒ sŽt	 |  j
 ƒ  t j ƒ r©| d# | d IJd$ } n t d% t |  j
 ƒ  ƒ ‚ | d d& | } xA t |  j ƒ  |  j
 ƒ  ƒ D]$ \ } } | d | I| | IJqðWd  S('   Ns   { file:t   }t   {R   R   s   NREFlections=%ds   ANOMalous=TRUEs   ANOMalous=FALSet   FOBSt   SIGMAi   s/   DECLare NAME=%s DOMAin=RECIprocal TYPE=REAL ENDs   INDEx %d %d %ds   %s= %.6g %s= %.6gs1   DECLare NAME=TEST DOMAin=RECIprocal TYPE=INTE ENDs   TEST= %dt   Fi   i    s3   DECLare NAME=%s  DOMAin=RECIprocal TYPE=COMPLEX ENDs   %s= %.6g %.6gt   PAt   PBt   PCt   PDi   s0   DECLare NAME=%s  DOMAin=RECIprocal TYPE=REAL ENDs   GROUp  TYPE=HLs        OBJEct=%st   ENDs   %s= %.6gi   t   DATAs   %.6gs3   DECLare NAME=%s  DOMAin=RECIprocal TYPE=INTEger ENDs   %ds1   Cannot write array type %s to CNS reflection files   = (   t   infoR   R   t   indicest   sizet   anomalous_flagt   sigmast   lent   AssertionErrort
   isinstancet   dataR   t   doublet   is_xray_intensity_arrayt	   f_sq_as_ft   zipt   all_eqt   intt   is_complex_arrayt   abst   argt   Truet   is_hendrickson_lattman_arrayt   ranget   boolt   RuntimeErrort   type(   t   selft   file_objectt	   file_nameR   t   array_namest   r_free_flagsR   t   linet   f_obst   nft   nst   ht   ft   st   tt   nt   at   pt   it   hlt   fmtt   d(    (    sD   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cns/miller_array.pyt   export_as_cns_hkl   s       
 4+!
!$ 
(( 

(# 		(N(   t
   __future__R    t    iotbx.cns.crystal_symmetry_utilsR   t   cctbx.array_familyR   R   R@   (    (    (    sD   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cns/miller_array.pyt   <module>   s   	