ó
v™xTc           @   sx   d  d l  m Z d  d l m Z d  d l m Z d e f d „  ƒ  YZ e d k rt d  d l Z e e j	 d ƒ Z
 n  d S(	   iÿÿÿÿ(   t   division(   t   DetectorImageBase(   t
   MARIPImaget   CBFImagec           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s’   t  j |  | ƒ y# d d l m } | | ƒ |  _ Wn- t k
 rb d d l m } | ƒ  |  _ n Xd |  _ |  j	 ƒ  t
 |  j j ƒ  ƒ |  _ d  S(   Niÿÿÿÿ(   t
   CBFAdaptor(   t   NullAdaptort   CBF(   R   t   __init__t   cbflib_adaptbxR   t   adaptort	   Exceptiont   iotbx.detectors.marIPR   t
   vendortypet
   readHeadert   intt   undefined_valuet   vendor_specific_null_value(   t   selft   filenameR   R   (    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/cbf.pyR      s    	
c         C   s   |  j  j |  j  j ƒ  S(   N(   R	   t   beam_index_slowt
   pixel_size(   R   (    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/cbf.pyt   beam_center_slow#   s    c         C   s   |  j  j |  j  j ƒ  S(   N(   R	   t   beam_index_fastR   (   R   (    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/cbf.pyt   beam_center_fast&   s    c         C   sš   |  j  j ƒ  } | j t k s$ t ‚ | j t k s9 t ‚ d d l m } | |  j ƒ } | j	 d ƒ j
 ƒ  } | j t k r‰ | j ƒ  n  |  j | ƒ d  S(   Niÿÿÿÿ(   t   cbf_binary_adaptort   buffer_based(   R	   t   transform_flagst   reverse_fastt   Falset   AssertionErrort   reverse_slowR   R   R   t   uncompress_implementationt   uncompress_datat	   transposet   Truet   matrix_transpose_in_placet   bin_safe_set_data(   R   t   TR   t   Mt   data(    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/cbf.pyt   read)   s    (   t   __name__t
   __module__R   R   R   R(   (    (    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/cbf.pyR      s   			t   __main__Ni   (   t
   __future__R    t   iotbx.detectors.detectorbaseR   R   R   R   R)   t   syst   argvt   C(    (    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/cbf.pyt   <module>   s   6