ó
>™xTc           @   sV   d  d l  m Z 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   complex_math(   t   io_utils(   t	   cgi_utilsc      
   C   s=   t  j |  d d d d d d d f ƒ } t  j |  ƒ | _ | S(   Nt   ucparamss   1 1 1 90 90 90t   sgsymbolt   P1t
   conventiont    t   d_mint   1t   min_distance_sym_equivs   0.5t	   algorithmt	   automatict	   coor_type(   R   s   1 1 1 90 90 90(   R   R   (   R   R   (   s   d_minR
   (   s   min_distance_sym_equivs   0.5(   s	   algorithmR   (   R   N(   R   t   inp_from_formt   Nonet   coordinates_from_formt   coordinates(   t   formt   inp(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/structure_factors.pyt   interpret_form_data   s    	c         C   s­  d GHt  j | ƒ } | j ƒ  d G| j ƒ  GHHt | j ƒ } d G| GH| d k r^ t d ‚ n  Ht  j | | | ƒ } | j } | d k r³ | j	 ƒ  j
 ƒ  d k rª d } qÈ d  } n | d k rÈ d  } n  | j d
 t d | d | ƒ } | j ƒ  } | j ƒ  j ƒ  Hd G| j ƒ  j
 ƒ  GHHd G| j d t ƒ GHHd GHt | _ d GHd GHxK t | j ƒ  ƒ D]7 \ }	 }
 d GHd |
 t j | j ƒ  |	 d t ƒGHqZWd GHt | _ Hd GHd  S(   Ns   <pre>s8   Minimum distance between symmetrically equivalent sites:s   Minimum d-spacing:g        s$   d-spacing must be greater than zero.R   id   t   directt   fftt   anomalous_flagR	   R   s   Number of Miller indices:s   Structure factor algorithm:t   verboses$   </pre><table border=2 cellpadding=2>s   <tr>s   <th>hkl<th>Amplitude<th>Phases+   <td>%3d %3d %3d<td>%.6g<td align=right>%.3ft   degs   </table><pre>s   </pre>(   R   R   (   R   t"   special_position_settings_from_inpt   show_summaryR   t   floatR	   t
   ValueErrort   structure_from_inpR   t
   scattererst   sizeR   t   structure_factorst   Falset   f_calct   scattering_type_registryt   showt   indicest   Truet   in_tablet	   enumerateR   t   abs_argt   data(   t   server_infoR   t   statust   special_position_settingsR	   t	   structureR   t   f_calc_managerR$   t   it   h(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/structure_factors.pyt   run   sR    
							'	N(	   t
   __future__R    t   libtbxR   t	   cctbx.webR   R   R   R4   (    (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/structure_factors.pyt   <module>   s
   	