ó
–™xTc           @   sp   d  d l  m Z d  d l m Z d  d l m Z d  d l m Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ	 d	 S(
   iÿÿÿÿ(   t   division(   t   miller(   t   crystal(   t   flext   index_fobs_sigma_linec           B   s   e  Z d  „  Z RS(   c         C   sI  t  |  _ | j d d ƒ j ƒ  } t | ƒ d k r7 d  S| d j ƒ  d k rQ d  S| d j ƒ  d k rk d  S| d	 j ƒ  d
 k r… d  S| d | d	 g |  _ y3 t g  | d d !D] } t | ƒ ^ q° ƒ |  _	 Wn t
 k
 rã d  SXy t | d ƒ |  _ Wn t
 k
 rd  SXy t | d ƒ |  _ Wn t
 k
 r;d  SXt |  _ d  S(   Nt   =t    i   i    t   indet   indexi   t   fobsi   t   sigmai   i   i   (   R   s   index(   t   Falset   is_completet   replacet   splitt   lent   lowert   namest   tuplet   intR   t	   Exceptiont   floatR	   R
   t   True(   t   selft   raw_linet   fldst   i(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cns/index_fobs_sigma_reader.pyt   __init__   s0    	     3     (   t   __name__t
   __module__R   (    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cns/index_fobs_sigma_reader.pyR      s   t   readerc           B   sJ   e  Z d d d  d „ Z d „  Z d „  Z d „  Z d e e d d „ Z	 RS(   i   c         C   si  | | g j  d  ƒ d k s! t ‚ | d  k r< t | ƒ } n  d  |  _ t j ƒ  |  _ t j ƒ  |  _	 t j ƒ  |  _
 t } d |  _ xÏ | D]Ç } |  j d 7_ t | ƒ } | j sò | j ƒ  j ƒ  d k rÎ Pn  |  j | k sã | rOt d ‚ qOqˆ |  j d  k r| j |  _ n  |  j j | j ƒ |  j	 j | j ƒ |  j
 j | j ƒ t } qˆ W| set d ‚ n  d  S(   Ni   i    t   ends   Unkown file format.s   No data found in file.(   t   countt   Nonet   AssertionErrort   opent   _namesR   t   miller_indext   _indicest   doublet   _datat   _sigmasR   t   n_linesR   R   t   stripR   t   RuntimeErrorR   t   appendR   R	   R
   R   (   R   t	   file_namet   file_objectt   max_header_linest	   have_dataR   t   ifs(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cns/index_fobs_sigma_reader.pyR      s2    !			 
c         C   s   |  j  S(   N(   R&   (   R   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cns/index_fobs_sigma_reader.pyt   indices5   s    c         C   s   |  j  S(   N(   R(   (   R   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cns/index_fobs_sigma_reader.pyt   data8   s    c         C   s   |  j  S(   N(   R)   (   R   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cns/index_fobs_sigma_reader.pyt   sigmas;   s    c         C   s©   | d  k r t j ƒ  } n  | d  k r< t j d d ƒ } n  t j d | d |  j ƒ  ƒ j ƒ  } t j d | d |  j	 ƒ  d |  j
 ƒ  ƒ j | j d |  j ƒ ƒ j ƒ  g S(	   Nt   source_typet   cns_index_fobs_sigmat   crystal_symmetryR3   t
   miller_setR4   R5   t   labels(   R!   R   t   symmetryR   t
   array_infot   setR3   t   auto_anomaloust   arrayR4   R5   t   set_infot   customized_copyR$   t#   set_observation_type_xray_amplitude(   R   R8   t   force_symmetryt   merge_equivalentst   base_array_infoR9   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cns/index_fobs_sigma_reader.pyt   as_miller_arrays>   s    		N(
   R   R   R!   R   R3   R4   R5   R   R   RF   (    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cns/index_fobs_sigma_reader.pyR      s   			N(
   t
   __future__R    t   cctbxR   R   t   cctbx.array_familyR   t   objectR   R   (    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cns/index_fobs_sigma_reader.pyt   <module>   s
   