ó
=™xTc           @   sw   d  d l  m Z d  d l m Z d  d l m Z d  d l Z d  d l m Z d  d l	 Z d „  Z
 d „  Z d „  Z d S(	   iÿÿÿÿ(   t   division(   t   crystal(   t	   cgi_utilsN(   t
   validationc      
   C   ss   t  j |  d	 d
 d d t f d t f d t f d f ƒ } | j d k | _ | j d k | _ | j d k | _ | S(   Nt   cif_filet   cif_textt   cif_dict   extract_miller_arrayst   extract_crystal_structurest   extract_pdb_hierarchyt   diffraction_index_equivalentt   True(   s   cif_fileN(   s   cif_textN(   s   cif_dicN(   R
   N(   R   t   inp_from_formt   Nonet   FalseR   R   R	   (   t   formt   inp(    (    sJ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/iotbx_cif_validate.pyt   interpret_form_data   s    				c         C   sŽ  | j  } | d  k r! | j } n  t j j d | d t ƒ } | j ƒ  r¨ d GH| j j	 ƒ  } | j
 | j j ƒ  ƒ x/ t | ƒ D]! \ } } | GH| d k r Pq q Wd  Sd GH| j d  k	 r-t j d | j ƒ } Hd | j GH| j ƒ  }	 |	 j | d t ƒ}
 t |
 j ƒ t |
 j ƒ d	 k r)d
 GHn  Hn  | j r·d GHy | j ƒ  } Wn+ t j j j k
 rx} d t | ƒ GHq·Xx | D] } | GH| j ƒ  q€Wt | ƒ d	 k r³d GHn  Hn  | j rId GHy | j ƒ  } Wn+ t j j j k
 r} d t | ƒ GHnC Xx% | j ƒ  D] } | j ƒ  j  ƒ  HqWt | ƒ d	 k rEd GHn  Hn  | j! rŠd GHt j" j# j$ |	 j% j ƒ  d	 ƒ j& } | j' ƒ  Hn  d  S(   Nt   input_stringt   raise_if_errorss"   Errors encountered during parsing:i2   s   No parsing errors.t   names   Validating CIF against %s:t   show_warningsi    s   No validation errors found.s   Extracting Miller arrays:s   CifBuilderError: %ss   No Miller arrays found.s   Extracting crystal structures:s   No crystal structures found.s   Extracting pdb.hierarchy:((   R   R   R   t   iotbxt   cift   readerR   t   error_countt   parsert   lexer_errorst   extendt   parser_errorst	   enumerateR   R   t   smart_load_dictionaryt   modelt   validateR   t   lent   warningst   errorsR   t   as_miller_arrayst   builderst   CifBuilderErrort   strt   show_comprehensive_summaryR   t   build_crystal_structurest   valuest   show_summaryt   show_scatterersR	   t   pdbt   mmcift   pdb_hierarchy_buildert   blockst	   hierarchyt   show(   t   server_infoR   t   statusR   R   R$   t   it   errorR   t	   cif_modelt   error_handlert   miller_arrayst   et   mat   crystal_structurest   xsR2   (    (    sJ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/iotbx_cif_validate.pyt   run_implementation   sj    	 "			
c         C   s'   d GHt  d |  d | d | ƒ d GHd  S(   Ns   <pre>R4   R   R5   s   </pre>(   R?   (   R4   R   R5   (    (    sJ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/iotbx_cif_validate.pyt   runW   s    (   t
   __future__R    t   cctbxR   t	   cctbx.webR   t	   iotbx.cifR   R   t   iotbx.pdb.mmcifR   R?   R@   (    (    (    sJ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/iotbx_cif_validate.pyt   <module>   s   		?