ž ¬ÿf+c@sgdZddlZddlmZddlmZddlTdddd gZejj d ƒd d d gZ ejj dƒdddgZ dd„Z ddd„Zddd„Zddd„Zddd„Zddd„Zddd„Zdd d!„Zdd"d#„Zdd$d%„Zddd&d„Zddd'd„Zd(d)„Zed*krceƒndS(+u dyld emulation iN(uframework_info(u dylib_info(u*u dyld_finduframework_finduframework_infou dylib_infou~/Library/Frameworksu/Library/Frameworksu/Network/Library/Frameworksu/System/Library/Frameworksu~/libu/usr/local/libu/libu/usr/libcCsD|dkrtj}n|j|ƒ}|dkr7gS|jdƒS(Nu:(uNoneuosuenvironugetusplit(uenvuvarurval((u9/opt/alt/python33/lib64/python3.3/ctypes/macholib/dyld.pyudyld_envs    udyld_envcCs%|dkrtj}n|jdƒS(NuDYLD_IMAGE_SUFFIX(uNoneuosuenvironuget(uenv((u9/opt/alt/python33/lib64/python3.3/ctypes/macholib/dyld.pyudyld_image_suffix's  udyld_image_suffixcCs t|dƒS(NuDYLD_FRAMEWORK_PATH(udyld_env(uenv((u9/opt/alt/python33/lib64/python3.3/ctypes/macholib/dyld.pyudyld_framework_path,sudyld_framework_pathcCs t|dƒS(NuDYLD_LIBRARY_PATH(udyld_env(uenv((u9/opt/alt/python33/lib64/python3.3/ctypes/macholib/dyld.pyudyld_library_path/sudyld_library_pathcCs t|dƒS(NuDYLD_FALLBACK_FRAMEWORK_PATH(udyld_env(uenv((u9/opt/alt/python33/lib64/python3.3/ctypes/macholib/dyld.pyudyld_fallback_framework_path2sudyld_fallback_framework_pathcCs t|dƒS(NuDYLD_FALLBACK_LIBRARY_PATH(udyld_env(uenv((u9/opt/alt/python33/lib64/python3.3/ctypes/macholib/dyld.pyudyld_fallback_library_path5sudyld_fallback_library_pathcCs5t|ƒ}|dkr|S||dd„}|ƒS(u>For a potential path iterator, add DYLD_IMAGE_SUFFIX semanticscssSxL|D]D}|jdƒr=|dtdƒ …|dVn ||V|VqWdS(Nu.dylib(uendswithulen(uiteratorusuffixupath((u9/opt/alt/python33/lib64/python3.3/ctypes/macholib/dyld.pyu_inject=s  ! u)dyld_image_suffix_search.._injectN(udyld_image_suffixuNone(uiteratoruenvusuffixu_inject((u9/opt/alt/python33/lib64/python3.3/ctypes/macholib/dyld.pyudyld_image_suffix_search8s   udyld_image_suffix_searchccs…t|ƒ}|dk rJx/t|ƒD]}tjj||dƒVq%Wnx4t|ƒD]&}tjj|tjj|ƒƒVqWWdS(Nuname(uframework_infouNoneudyld_framework_pathuosupathujoinudyld_library_pathubasename(unameuenvu frameworkupath((u9/opt/alt/python33/lib64/python3.3/ctypes/macholib/dyld.pyudyld_override_searchFs   udyld_override_searchccsF|jdƒrB|dk rBtjj||tdƒd…ƒVndS(Nu@executable_path/(u startswithuNoneuosupathujoinulen(unameuexecutable_path((u9/opt/alt/python33/lib64/python3.3/ctypes/macholib/dyld.pyudyld_executable_path_searchWsudyld_executable_path_searchccs|Vt|ƒ}|dk rUt|ƒ}x)|D]}tjj||dƒVq0Wnt|ƒ}x.|D]&}tjj|tjj|ƒƒVqhW|dk rÑ| rÑx)tD]}tjj||dƒVq¬Wn|s x1t D]&}tjj|tjj|ƒƒVqÞWndS(Nuname( uframework_infouNoneudyld_fallback_framework_pathuosupathujoinudyld_fallback_library_pathubasenameuDEFAULT_FRAMEWORK_FALLBACKuDEFAULT_LIBRARY_FALLBACK(unameuenvu frameworkufallback_framework_pathupathufallback_library_path((u9/opt/alt/python33/lib64/python3.3/ctypes/macholib/dyld.pyudyld_default_search^s      $  udyld_default_searchcCsnxTttt||ƒt||ƒt||ƒƒ|ƒD]}tjj|ƒr7|Sq7Wtd|fƒ‚dS(u: Find a library or framework using dyld semantics udylib %s could not be foundN( udyld_image_suffix_searchuchainudyld_override_searchudyld_executable_path_searchudyld_default_searchuosupathuisfileu ValueError(unameuexecutable_pathuenvupath((u9/opt/alt/python33/lib64/python3.3/ctypes/macholib/dyld.pyu dyld_findts    cCsÚyt|d|d|ƒSWn%tk rA}zWYdd}~XnX|jdƒ}|dkrvt|ƒ}|d7}ntjj|tjj|d|…ƒƒ}yt|d|d|ƒSWntk rÕ|‚YnXdS(u· Find a framework using dyld semantics in a very loose manner. Will take input such as: Python Python.framework Python.framework/Versions/Current uexecutable_pathuenvNu .frameworkiiÿÿÿÿ(u dyld_findu ValueErrorurfindulenuosupathujoinubasename(ufnuexecutable_pathuenvueu fmwk_index((u9/opt/alt/python33/lib64/python3.3/ctypes/macholib/dyld.pyuframework_finds    + cCs i}dS(N((uenv((u9/opt/alt/python33/lib64/python3.3/ctypes/macholib/dyld.pyutest_dyld_find˜sutest_dyld_findu__main__(u__doc__uosuctypes.macholib.frameworkuframework_infouctypes.macholib.dylibu dylib_infou itertoolsu__all__upathu expanduseruDEFAULT_FRAMEWORK_FALLBACKuDEFAULT_LIBRARY_FALLBACKudyld_envuNoneudyld_image_suffixudyld_framework_pathudyld_library_pathudyld_fallback_framework_pathudyld_fallback_library_pathudyld_image_suffix_searchudyld_override_searchudyld_executable_path_searchudyld_default_searchu dyld_finduframework_findutest_dyld_findu__name__(((u9/opt/alt/python33/lib64/python3.3/ctypes/macholib/dyld.pyus: