ó
è™xTc           @   sg  d  Z  d d l m Z d „  Z d „  Z d e f d „  ƒ  YZ e d k rce d ƒ s\ t ‚ e d	 ƒ sn t ‚ e d
 ƒ s� t ‚ e d g ƒ s— t ‚ e d ƒ sª t ‚ y d d l	 m
 Z
 Wn* e k
 rê d d l Z e j d IJn Xe e
 j d ƒ ƒ st ‚ d „  Z e e e ƒ d d d ƒ s0t ‚ e e e ƒ d d d d d d ƒ s[t ‚ d GHn  d S(   s@    Functions useful to write assertions, especially preconditions iÿÿÿÿ(   t   divisionc         C   s<   y |  d Wn% t  k
 r" ‚  n t k
 r3 t SXt Sd  S(   Ng      ð?(   t   KeyboardInterruptt	   Exceptiont   Falset   True(   t   x(    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/assert_utils.pyt
   is_numeric   s       c         C   s<   y |  d Wn% t  k
 r" ‚  n t k
 r3 t SXt Sd  S(   Nt    (   R   R   R   R   (   t   s(    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/assert_utils.pyt	   is_string
   s       t   shall_raisec           B   s   e  Z d  „  Z d „  Z RS(   c         G   s   | |  _  | |  _ d  S(   N(   t   funct
   exceptions(   t   selfR   R   (    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/assert_utils.pyt   __init__   s    	c         O   sc   y |  j  | | Ž  WnD t k
 r* ‚  n5 t k
 rZ d d  l } | j ƒ  d |  j k SXt Sd  S(   Niÿÿÿÿi    (   R   R   R   t   syst   exc_infoR   R   (   R   t   argst   kwdsR   (    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/assert_utils.pyt   __call__   s      (   t   __name__t
   __module__R   R   (    (    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/assert_utils.pyR
      s   	t   __main__i   g      ð?t   1(   t   flexNs4   scitbx library not available:some tests were skippedi   i   c         C   s   | |  | d  S(   N(    (   R   t   yt   z(    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/assert_utils.pyt   f.   s    R   R   i    R   t   OK(   i   (   i   i   i   (   t   __doc__t
   __future__R    R   R	   t   objectR
   R   t   AssertionErrort   scitbx.array_familyR   t   ImportErrorR   t   stderrt   doubleR   t   ZeroDivisionError(    (    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/assert_utils.pyt   <module>   s(   			!+