
    XaJjx                        d Z g dZddlZddlmZ ddlmZ dj                  ej                  j                  d      dd	d
g      Z
dj                  ej                  j                  d      dddg      Zd Zd ZddZd Zd Zd Zy)z
dyld emulation
)dyld_frameworkdyld_library	dyld_findpathForFrameworkinfoForFramework    N)r   ) _dyld_shared_cache_contains_path:z~/Library/Frameworksz/Library/Frameworksz/Network/Library/Frameworksz/System/Library/Frameworksz~/libz/usr/local/libz/libz/usr/libc                 H    t        | t              r| j                  d      S | S )z9Not all of PyObjC understands unicode paths very well yetzutf-8)
isinstancebytesdecode)ss    T/Users/ahmed/devFolder/claude-voice/.venv/lib/python3.12/site-packages/objc/_dyld.pyensure_unicoder   "   s     !Uxx  H    c                 v    t        t        j                  j                  dd             }|| S | |fd} |       S )NDYLD_IMAGE_SUFFIXc              3   n   K   | D ],  }|j                  d      r|d d |z   dz    n||z    | . y w)Nz.dylibi)endswith)iteratorsuffixpaths      r   _injectz inject_suffixes.<locals>._inject.   sA     D}}X&3Bi&(833Vm#J s   35)r   osenvironget)r   r   r   s      r   inject_suffixesr   )   s:    BJJNN+>EFF~!&  9r   c                     t                t              t               fd}t         |             D ]4  }t        |      r|c S t        j                  j                  |      s2|c S  t        d d      )z%Find a framework using dyld semanticsc               3   b  K   t        t        j                  j                  dd             } | g| j	                  d      D ]S  }r)t        j
                  j                  |dz   d       .t        j
                  j                  |dz          U  t        t        j                  j                  dt                    } | j	                  d      D ]S  }r)t        j
                  j                  |dz   d       .t        j
                  j                  |dz          U y w)NDYLD_FRAMEWORK_PATHr	   
.frameworkVersionsDYLD_FALLBACK_FRAMEWORK_PATH)r   r   r   r   splitr   joinDEFAULT_FRAMEWORK_FALLBACK)spathr   filenameframework_nameversions     r   _searchzdyld_framework.<locals>._search?   s    rzz~~.CTJKC('',,&5"&  '',,n|;^  ) JJNN9;UV
 KK$Dggll"\1"  ggll4,)FWW %s   D,D/z
Framework  could not be found)r   r   r   r   r   existsImportError)r(   r)   r*   r+   fs   ```  r   r   r   9   su    h'H#N3NW%GX@ WY'+A.H77>>!H ( 
>"22EF
GGr   c                      t                t               fd}t         |             D ]4  }t        |      r|c S t        j                  j                  |      s2|c S  t        d  d      )z!Find a dylib using dyld semanticsc               3     K   t        t        j                  j                  dd             } | 8| j	                  d      D ]$  }t        j
                  j                  |       &  t        t        j                  j                  dt                    } | j	                  d      D ]$  }t        j
                  j                  |       & y w)NDYLD_LIBRARY_PATHr	   DYLD_FALLBACK_LIBRARY_PATH)r   r   r   r   r$   r   r%   DEFAULT_LIBRARY_FALLBACK)r'   r   r(   libnames     r   r+   zdyld_library.<locals>._searchn   s     rzz~~.A4HIC(ggll411 )JJNN79QR
 KK$D'',,tW-- %s   CCzdylib r,   )r   r   r   r   r   r-   
ValueError)r(   r5   r+   r/   s   ``  r   r   r   i   sh    h'HW%G
. WY'+A.H77>>!H	 (
 vhZ':;
<<r   c                     t         j                  j                  |       } t        |       }|r|\  }}}t	        | ||      S t        | t         j                  j                  |             S )z.Generic way to locate a dyld framework or dyld)r   r   realpathr   r   r   basename)r(   resframework_locr)   r*   s        r   r   r      sZ    ww)H
8
$C
14.~wh@@Hbgg&6&6x&@AAr   c                 x    t        t        |             \  }}}t        j                  j	                  ||dz         S )Nr!   )r   r   r   r   r%   )r   fpathnamer*   s       r   r   r      s1    +IdO<E477<<tl233r   )N)__doc____all__r   objc._frameworkr   
objc._objcr   r%   r   
expanduserr&   r4   r   r   r   r   r   r    r   r   <module>rE      s    
 , 7 !XX
12%$	  88WW "2FJG 
 -H`=2B4r   