Viewing File: /opt/alt/python312/lib64/python3.12/ctypes/macholib/__pycache__/dyld.cpython-312.pyc

�

<��i���>�dZddlZddlmZddlmZddl�	ddlmZgd�Z
ejjd	�d
ddgZ
ejjd
�dddgZd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zy#e	$rd�ZY�|wxYw)z
dyld emulation
�N)�framework_info)�
dylib_info)�*)� _dyld_shared_cache_contains_pathc��t��N)�NotImplementedError)�argss �;/opt/alt/python312/lib64/python3.12/ctypes/macholib/dyld.pyrrs��!�!�)�	dyld_find�framework_findrrz~/Library/Frameworksz/Library/Frameworksz/Network/Library/Frameworksz/System/Library/Frameworksz~/libz/usr/local/libz/libz/usr/libc�r�|�tj}|j|�}|�gS|jd�S)N�:)�os�environ�get�split)�env�var�rvals   r�dyld_envr$s5��
�{��j�j���7�7�3�<�D��|��	��:�:�c�?�rc�H�|�tj}|jd�S)N�DYLD_IMAGE_SUFFIX)rrr�rs r�dyld_image_suffixr,s ��
�{��j�j���7�7�&�'�'rc��t|d�S)N�DYLD_FRAMEWORK_PATH�rrs r�dyld_framework_pathr 1s���C�.�/�/rc��t|d�S)N�DYLD_LIBRARY_PATHrrs r�dyld_library_pathr#4s���C�,�-�-rc��t|d�S)N�DYLD_FALLBACK_FRAMEWORK_PATHrrs r�dyld_fallback_framework_pathr&7s���C�7�8�8rc��t|d�S)N�DYLD_FALLBACK_LIBRARY_PATHrrs r�dyld_fallback_library_pathr):s���C�5�6�6rc�:�t|�}|�|S||fd�}|�S)z>For a potential path iterator, add DYLD_IMAGE_SUFFIX semanticsc3�K�|D]6}|jd�r|dtd�|zdz��n||z��|���8y�w)Nz.dylib)�endswith�len)�iterator�suffix�paths   r�_injectz)dyld_image_suffix_search.<locals>._injectBsH�����D��}�}�X�&��?�S��]�N�+�f�4�x�?�?��V�m�#��J��s�=?)r)r.rr/r1s    r�dyld_image_suffix_searchr2=s*��
�s�
#�F�
�~���!�&���9�rc#�.K�t|�}|�5t|�D]'}tjj	||d����)t|�D]A}tjj	|tjj
|�����Cy�w�N�name)rr rr0�joinr#�basename)r5r�	frameworkr0s    r�dyld_override_searchr9Ksv�����t�$�I���'��,�D��'�'�,�,�t�Y�v�%6�7�7�-�
"�#�&���g�g�l�l�4����!1�!1�$�!7�8�8�'�s�BBc#�K�|jd�r2|�/tjj||t	d�d���yyy�w)Nz@executable_path/)�
startswithrr0r6r-)r5�executable_paths  r�dyld_executable_path_searchr=\sF�������*�+��0K��g�g�l�l�?�D��5H�1I�1J�,K�L�L�1L�+�s�AAc#�@K�|��t|�}|�7t|�}|D]'}tjj	||d����)t|�}|D]A}tjj	|tjj
|�����C|�2s0tD]'}tjj	||d����)|sKtD]A}tjj	|tjj
|�����Cyy�wr4)	rr&rr0r6r)r7�DEFAULT_FRAMEWORK_FALLBACK�DEFAULT_LIBRARY_FALLBACK)r5rr8�fallback_framework_pathr0�fallback_library_paths      r�dyld_default_searchrCcs�����
�J��t�$�I���">�s�"C��+�D��'�'�,�,�t�Y�v�%6�7�7�,�7�s�;��%���g�g�l�l�4����!1�!1�$�!7�8�8�&���%<�.�D��'�'�,�,�t�Y�v�%6�7�7�/�!�,�D��'�'�,�,�t�R�W�W�%5�%5�d�%;�<�<�-�!�s�DDc
��ttt||�t||�t	||��|�D]5}t
jj|�r|cS	t|�r|cS�7td|�d���#t$rY�RwxYw)z:
    Find a library or framework using dyld semantics
    zdylib z could not be found)r2�chainr9r=rCrr0�isfilerr	�
ValueError)r5r<rr0s    rr
r
ys���)��$�T�3�/�+�D�/�B�#�D�#�.�*��	���7�7�>�>�$���K�	�/��5���6���d�<�
=�=��#�	��	�s�A=�=	B	�B	c�n�d}	t|||��S#t$r}|}Yd}~nd}~wwxYw|jd�}|dk(rt|�}|dz
}tj
j
|tj
j|d|��}	t|||��d}S#t$r|�wxYw#d}wxYw)z�
    Find a framework using dyld semantics in a very loose manner.

    Will take input such as:
        Python
        Python.framework
        Python.framework/Versions/Current
    N)r<rz
.framework���)r
rG�rfindr-rr0r6r7)�fnr<r�error�e�
fmwk_indexs      rrr�s���
�E����_�#�F�F������������,�'�J��R����W�
�
�l���	�����b�"�'�'�*�*�2�k�z�?�;�	<�B����_�#�F������������s(�
�	'�"�'�
B!�!B-�-B0�0B4r)NN)�__doc__r�ctypes.macholib.frameworkr�ctypes.macholib.dylibr�	itertools�_ctypesr�ImportError�__all__r0�
expanduserr?r@rrr r#r&r)r2r9r=rCr
r�rr�<module>rXs����
�4�,��"�8�
���G�G���-�.��!� �	���G�G���w���
��	���(�
0�.�9�7��9�"M�=�,>�(��E�"�"�"�s�B�B�B
Back to Directory File Manager