B
    d                 @   s  d Z ddlmZmZmZ dd Zdd ZG dd deZe	d	kred
sNt
edsZt
edrft
ed
grtt
edrt
yddlmZ W n* ek
r   ddlZedejd Y nX eedst
dd Zeeed
d
d
st
eeed
dddrt
ed dS )z@ Functions useful to write assertions, especially preconditions     )absolute_importdivisionprint_functionc             C   s>   y| d  W n( t k
r"    Y n tk
r4   dS X dS d S )Ng      ?FT)KeyboardInterrupt	Exception)x r   r/mnt/filia/a/genomebrowser/www/genomebrowser/fleming/tools/molprobity/modules/cctbx_project/libtbx/assert_utils.py
is_numeric   s       r
   c             C   s>   y| d  W n( t k
r"    Y n tk
r4   dS X dS d S )N FT)r   r   )sr   r   r	   	is_string
   s       r   c               @   s   e Zd Zdd Zdd ZdS )shall_raisec             G   s   || _ || _d S )N)func
exceptions)selfr   r   r   r   r	   __init__   s    zshall_raise.__init__c             O   sX   y| j || W n> tk
r&    Y n. tk
rN   dd l}| d | jkS X dS d S )Nr   F)r   r   r   sysexc_infor   )r   argskwdsr   r   r   r	   __call__   s      zshall_raise.__call__N)__name__
__module____qualname__r   r   r   r   r   r	   r      s   r   __main__   g      ?1)r   )flexNz4scitbx library not available:some tests were skipped)file)r         c             C   s   || |   d S )Nr   )r   yzr   r   r	   f.   s    r$   )r   r"   r#   OK)__doc__
__future__r   r   r   r
   r   objectr   r   AssertionErrorscitbx.array_familyr   ImportErrorr   printstderrdoubler$   ZeroDivisionErrorr   r   r   r	   <module>   s*   
