ó
šxTc           @   s&  d  d l  m Z m Z d  d l Z d  d l Z d  d l Z d  d l m Z e j d e j	 e j
 Be j Bƒ Z d Z e j j d ƒ rè d  d l m Z xP e j d d e j ƒ j D]/ Z e j ƒ  j d	 ƒ r² e j ƒ  d
 Z Pq² q² Wn  e d „ Z e d ƒ Z y e j Z Wn e k
 r n Xy e j Z Wn e k
 rAn Xd e j k r^e j ƒ  n  d e  f d „  ƒ  YZ! d „  Z" e" ƒ  Z" d e  f d „  ƒ  YZ# e j$ j% Z& e j' ƒ  Z' e( e' ƒ d
 k sÌt) ‚ d „  Z* e* d ƒ Z+ d e  f d „  ƒ  YZ, d e  f d „  ƒ  YZ- d d „ Z. e. ƒ  Z/ d S(   iÿÿÿÿ(   t   divisiont   with_statementN(   t   cpp_function_names$   [Ss]ymbol[ ]not[ ]found: \s* (\w+) $t   linux(   t   easy_runt   commands   /usr/bin/ldd "%s"s   libstdc++.soi    c         C   s/  |  j  d ƒ } t | ƒ d k r; t d j | d  ƒ ƒ n  d  } t j j d ƒ ro t j ƒ  } t j	 d ƒ n  y t |  ƒ } Wn¾ t
 k
 r?} | r› d  St | ƒ } t j | ƒ } | rù | | j d ƒ  t j | j d ƒ ƒ | | j d ƒ } n  t
 d j d |  | f d	 g g  t j D] } d
 | ^ qƒ ƒ ‚ n Xx! | d D] }	 t | |	 ƒ } qKW| d  k	 r€t j	 | ƒ n  t d  k	 r+t | d d  ƒ }
 |
 d  k	 r+x{ t j d d |
 ƒ j D]] } | j ƒ  j d ƒ rÄ| j  ƒ  d } | t k rt d t j t |
 | f ƒ ‚ n  PqÄqÄWq+n  | S(   Nt   .i   iÿÿÿÿR   i   i   s   
  s   __import__("%s"): %ss	   sys.path:s     t   __file__R   s   /usr/bin/ldd "%s"s   libstdc++.soi    s/   FATAL: libstdc++.so mismatch:
  %s: %s
  %s: %si  (   t   splitt   lent
   __import__t   joint   Nonet   syst   platformt
   startswitht   getdlopenflagst   setdlopenflagst   ImportErrort   strt   symbol_not_found_patt   searcht   startR   t   demanglet   groupt   endt   patht   getattrt   python_libstdcxx_soR   t   fully_bufferedt   stdout_linest   stript   SystemErrort
   executable(   t   namet   optionalt
   componentst   previous_dlopenflagst   modt   et	   error_msgt   mt   pt   compt   mod_filet   linet   mod_libstdcxx_so(    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyt
   import_ext   sH      =+t   boost_python_meta_extt   BOOST_ADAPTBX_SIGNALS_DEFAULTt   floating_point_exceptions_typec           B   sf   e  Z i e d  6Z d „  Z d „  Z e e ƒ  �  Z d „  Z e e ƒ  �  Z d „  Z e e ƒ  �  Z RS(   t   initialisedc         C   s¶   |  j  |  _ |  j s² d t j k rB |  j } |  j } |  j } nQ d t j k r] |  j } n6 d t j k rx |  j } n d t j k r“ |  j } n  t j	 | | | ƒ t
 |  _ n  d  S(   Nt   BOOST_ADAPTBX_FPE_DEFAULTt"   BOOST_ADAPTBX_FE_DIVBYZERO_DEFAULTt    BOOST_ADAPTBX_FE_INVALID_DEFAULTt!   BOOST_ADAPTBX_FE_OVERFLOW_DEFAULT(   t-   _floating_point_exceptions_type__shared_statet   __dict__R3   t   ost   environt   division_by_zero_trappedt   invalid_trappedt   overflow_trappedt   extt   trap_exceptionst   True(   t   selft   division_by_zerot   invalidt   overflow(    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyt   __init__H   s    			c          C   s   d „  }  d „  } t  ƒ  S(   Nc         S   s
   t  j ƒ  S(   N(   R?   t   is_division_by_zero_trapped(   RB   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyt   fgetY   s    c         S   s9   | |  j  k r d  St j d | d |  j d |  j ƒ d  S(   NRC   RD   RE   (   R<   R?   R@   R=   R>   (   RB   t   flag(    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyt   fset[   s
     	(   t   locals(   RH   RJ   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyR<   X   s    		c          C   s   d „  }  d „  } t  ƒ  S(   Nc         S   s
   t  j ƒ  S(   N(   R?   t   is_invalid_trapped(   RB   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyRH   d   s    c         S   s<   | |  j  ƒ  k r d  St j d |  j d | d |  j ƒ d  S(   NRC   RD   RE   (   RH   R?   R@   R=   R>   (   RB   RI   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyRJ   f   s
     (   RK   (   RH   RJ   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyR=   c   s    		c          C   s   d „  }  d „  } t  ƒ  S(   Nc         S   s
   t  j ƒ  S(   N(   R?   t   is_overflow_trapped(   RB   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyRH   o   s    c         S   s<   | |  j  ƒ  k r d  St j d |  j d |  j d | ƒ d  S(   NRC   RD   RE   (   RH   R?   R@   R>   R=   (   RB   RI   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyRJ   q   s
     	(   RK   (   RH   RJ   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyR>   n   s    		(	   t   __name__t
   __module__t   FalseR8   RF   R<   t   propertyR=   R>   (    (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyR2   D   s   							c          C   sC   d d  l  }  |  j j ƒ  r$ t } n t } t d | d | d | ƒ S(   NiÿÿÿÿRC   RD   RE   (   t   libtbx.load_envt   envt   is_development_environmentRA   RP   R2   (   t   libtbxRI   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyt   floating_point_exceptionsy   s    	t   trappingc           B   s2   e  Z d  Z e e e d „ Z d „  Z d „  Z RS(   s   Synopsis:

      >>> import boost.python
      >>> from scitbx.array_family import flex
      >>> a = flex.double((0, 0, 0))
      >>> with boost.python.trapping(division_by_zero=False):
      >>>   b = 1/a
      >>> tuple(b)
      (inf, inf, inf)
      >>> 1/a
      ... CRASH ...
  c         C   sD   t  j ƒ  |  _ t  j ƒ  |  _ t  j ƒ  |  _ t  j | | | ƒ d  S(   N(   R?   RG   RC   RL   RD   RM   RE   R@   (   RB   RC   RD   RE   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyRF   ‘   s    c         C   s   |  S(   N(    (   RB   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyt	   __enter__˜   s    c         C   s    t  j |  j |  j |  j ƒ d  S(   N(   R?   R@   RC   RD   RE   (   RB   t   exc_typet   exc_valt   exc_tb(    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyt   __exit__›   s    (   RN   RO   t   __doc__RA   RF   RX   R\   (    (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyRW   „   s   	c         C   sX   d |  } x7 t  j ƒ  D] } | j | ƒ r Pq q Wt d | ƒ ‚ t | t | ƒ ƒ S(   Ns   sizeof(%s) = s+   boost.python.platform_info: "%s" not found.(   t   platform_infot
   splitlinesR   t   RuntimeErrort   intR	   (   t   typenamet   patternR-   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyt   c_sizeof£   s    
s   void*t   gcc_versionc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s¥   d d  l  } d } | j d | f d t | j | j B| j Bƒ } | sd d \ |  _ |  _ |  _	 n= t
 g  | j ƒ  D] } t | ƒ ^ qt ƒ \ |  _ |  _ |  _	 d  S(   Niÿÿÿÿs    \s* = \s* (\d+) \s+s4   __GNUC__ %s __GNUC_MINOR__ %s __GNUC_PATCHLEVEL__ %si   (   NNN(   t   reR   R^   t   Xt   Mt   SR   t   majort   minort
   patchlevelt   tuplet   groupsRa   (   RB   Rf   t   patR)   t   x(    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyRF   ±   s    	c         C   s   |  j  d  k	 S(   N(   Rj   R   (   RB   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyt   __nonzero__½   s    c         C   s(   |  r  d |  j  |  j |  j f Sd Sd  S(   Ns   %i.%i.%is   GCC, it is not(   Rj   Rk   Rl   (   RB   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyt   __str__À   s    (   RN   RO   RF   Rq   Rr   (    (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyRe   ¯   s   		t   injectorc           B   s   e  Z d  e f d „  ƒ  YZ RS(   t   __metaclass__c           B   s   e  Z d  „  Z RS(   c            sp   t  | ƒ d k rZ | d ‰  ‡  f d †  } | | ƒ x" | d D] } | | j ƒ q@ Wn  t j |  | d i  ƒ S(   Ni   c            s[   xT |  j  ƒ  D]F \ } } | d k r | d k s= | d  k	 rS t ˆ  | | ƒ qS q q Wd  S(   NRF   t   __del__RO   R   R9   R]   (   s   __init__s   __del__s
   __module__s   __file__s   __dict__(   t   itemsR   t   setattr(   t   dt   kt   v(   t   target(    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyt   setattr_from_dictÏ   s        	i   (    (   R	   R9   t   typeRF   (   RB   R"   t   basest   dictR|   t   b(    (   R{   s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyRF   Ë   s    


(   RN   RO   RF   (    (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyRt   É   s   (   RN   RO   t
   meta_classRt   (    (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyRs   Ç   s   t   BOOST_ADAPTBX_DOCSTRING_OPTIONSc         C   s·   t  j j |  ƒ } | d  k r" d  Sy" t d | i  i t j d 6ƒ SWnl t k
 rZ ‚  nY t k
 r² } d d l	 m
 } t d |  | | ƒ f d t | ƒ d d |  ƒ ‚ n Xd  S(	   Ns   docstring_options(%s)t   docstring_optionsiÿÿÿÿ(   t   show_strings   Error processing %s=%s
s     Exception: %s
s     Valid example:
s5       %s="show_user_defined=True,show_signatures=False"(   R:   R;   t   getR   t   evalR?   Rƒ   t   KeyboardInterruptt	   Exceptiont   libtbx.str_utilsR„   R`   R   (   t   env_vart   from_envR'   R„   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyt   process_docstring_optionsÞ   s      (0   t
   __future__R    R   R   R:   Rf   RU   R   t   compileRg   Rh   Ri   R   R   R   R   R   R   R   R!   R   R-   R   R   RP   R/   R?   t	   streambuft   AttributeErrort   ostreamR;   t$   enable_signals_backtrace_if_possiblet   objectR2   RV   RW   t   holdert	   __class__R�   R^   R	   t   AssertionErrorRd   t   sizeof_void_ptrRe   Rs   RŒ   Rƒ   (    (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/boost/python.pyt   <module>   sL   (    5				