???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................ó
{fc           @   sI  d  Z  d d l Z d d l m Z d d l m Z d d l Td d d d	 g Z e j j	 d
 ƒ d d d g Z
 e j j	 d ƒ d d d g Z d „  Z d „  Z d d „ Z d d „ Z d d „ Z d d „ Z d d „ Z d d „ Z d d „ Z d d „ Z d d „ Z d d d „ Z d d d „ Z d „  Z e d  k rEe ƒ  n  d S(!   s   
dyld emulation
iÿÿÿÿN(   t   framework_info(   t
   dylib_info(   t   *t	   dyld_findt   framework_findR    R   s   ~/Library/Frameworkss   /Library/Frameworkss   /Network/Library/Frameworkss   /System/Library/Frameworkss   ~/libs   /usr/local/libs   /libs   /usr/libc         C   s    t  |  t ƒ r |  j d ƒ S|  S(   sC   Not all of PyObjC and Python understand unicode paths very well yett   utf8(   t
   isinstancet   unicodet   encode(   t   s(    (    s,   /usr/lib64/python2.7/ctypes/macholib/dyld.pyt   ensure_utf8   s    c         C   sD   |  d  k r t j }  n  |  j | ƒ } | d  k r7 g  S| j d ƒ S(   Nt   :(   t   Nonet   ost   environt   gett   split(   t   envt   vart   rval(    (    s,   /usr/lib64/python2.7/ctypes/macholib/dyld.pyt   dyld_env%   s    c         C   s%   |  d  k r t j }  n  |  j d ƒ S(   Nt   DYLD_IMAGE_SUFFIX(   R   R   R   R   (   R   (    (    s,   /usr/lib64/python2.7/ctypes/macholib/dyld.pyt   dyld_image_suffix-   s    c         C   s   t  |  d ƒ S(   Nt   DYLD_FRAMEWORK_PATH(   R   (   R   (    (    s,   /usr/lib64/python2.7/ctypes/macholib/dyld.pyt   dyld_framework_path2   s    c         C   s   t  |  d ƒ S(   Nt   DYLD_LIBRARY_PATH(   R   (   R   (    (    s,   /usr/lib64/python2.7/ctypes/macholib/dyld.pyt   dyld_library_path5   s    c         C   s   t  |  d ƒ S(   Nt   DYLD_FALLBACK_FRAMEWORK_PATH(   R   (   R   (    (    s,   /usr/lib64/python2.7/ctypes/macholib/dyld.pyt   dyld_fallback_framework_path8   s    c         C   s   t  |  d ƒ S(   Nt   DYLD_FALLBACK_LIBRARY_PATH(   R   (   R   (    (    s,   /usr/lib64/python2.7/ctypes/macholib/dyld.pyt   dyld_fallback_library_path;   s    c         C   s2   t  | ƒ } | d k r |  S|  | d „ } | ƒ  S(   s>   For a potential path iterator, add DYLD_IMAGE_SUFFIX semanticsc         s   sM   xF |  D]> } | j  d ƒ r7 | t d ƒ  | d Vn	 | | V| Vq Wd  S(   Ns   .dylib(   t   endswitht   len(   t   iteratort   suffixt   path(    (    s,   /usr/lib64/python2.7/ctypes/macholib/dyld.pyt   _injectC   s
    	N(   R   R   (   R!   R   R"   R$   (    (    s,   /usr/lib64/python2.7/ctypes/macholib/dyld.pyt   dyld_image_suffix_search>   s
    c         c   s…   t  |  ƒ } | d  k	 rJ x/ t | ƒ D] } t j j | | d ƒ Vq% Wn  x4 t | ƒ D]& } t j j | t j j |  ƒ ƒ VqW Wd  S(   Nt   name(   R    R   R   R   R#   t   joinR   t   basename(   R&   R   t	   frameworkR#   (    (    s,   /usr/lib64/python2.7/ctypes/macholib/dyld.pyt   dyld_override_searchL   s    c         c   s@   |  j  d ƒ r< | d  k	 r< t j j | |  t d ƒ ƒ Vn  d  S(   Ns   @executable_path/(   t
   startswithR   R   R#   R'   R    (   R&   t   executable_path(    (    s,   /usr/lib64/python2.7/ctypes/macholib/dyld.pyt   dyld_executable_path_search]   s    c         c   s  |  Vt  |  ƒ } | d  k	 rU t | ƒ } x) | D] } t j j | | d ƒ Vq0 Wn  t | ƒ } x. | D]& } t j j | t j j |  ƒ ƒ Vqh W| d  k	 rÑ | rÑ x) t D] } t j j | | d ƒ Vq¬ Wn  | sx1 t	 D]& } t j j | t j j |  ƒ ƒ VqÞ Wn  d  S(   NR&   (
   R    R   R   R   R#   R'   R   R(   t   DEFAULT_FRAMEWORK_FALLBACKt   DEFAULT_LIBRARY_FALLBACK(   R&   R   R)   t   fallback_framework_pathR#   t   fallback_library_path(    (    s,   /usr/lib64/python2.7/ctypes/macholib/dyld.pyt   dyld_default_searchd   s    $c         C   s†   t  |  ƒ }  t  | ƒ } xT t t t |  | ƒ t |  | ƒ t |  | ƒ ƒ | ƒ D] } t j j | ƒ rO | SqO Wt	 d |  f ƒ ‚ d S(   s:   
    Find a library or framework using dyld semantics
    s   dylib %s could not be foundN(
   R
   R%   t   chainR*   R-   R2   R   R#   t   isfilet
   ValueError(   R&   R,   R   R#   (    (    s,   /usr/lib64/python2.7/ctypes/macholib/dyld.pyR   z   s    	c         C   sÁ   y t  |  d | d | ƒSWn t k
 r/ } n X|  j d ƒ } | d k rd t |  ƒ } |  d 7}  n  t j j |  t j j |  |  ƒ ƒ }  y t  |  d | d | ƒSWn t k
 r¼ | ‚ n Xd S(   s·   
    Find a framework using dyld semantics in a very loose manner.

    Will take input such as:
        Python
        Python.framework
        Python.framework/Versions/Current
    R,   R   s
   .frameworkiÿÿÿÿN(   R   R5   t   rfindR    R   R#   R'   R(   (   t   fnR,   R   t   et
   fmwk_index(    (    s,   /usr/lib64/python2.7/ctypes/macholib/dyld.pyR   ‰   s    	%c          C   s
   i  }  d  S(   N(    (   R   (    (    s,   /usr/lib64/python2.7/ctypes/macholib/dyld.pyt   test_dyld_find    s    t   __main__(   t   __doc__R   R)   R    t   dylibR   t	   itertoolst   __all__R#   t
   expanduserR.   R/   R
   R   R   R   R   R   R   R   R%   R*   R-   R2   R   R   R:   t   __name__(    (    (    s,   /usr/lib64/python2.7/ctypes/macholib/dyld.pyt   <module>   s<   
					