grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026o
®û|jU ã @ sÜ d Z ddlZddlZddlZg d¢ZdZdZdZd.dd„Zd/d
d„Z dd
„ Z
dadd„ Zda
dd„ Zdd„ Zdd„ Zdadd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ ZdS )0zShared OS X support functions.é N)Úcompiler_fixupÚcustomize_config_varsÚcustomize_compilerÚget_platform_osx)
ÚCFLAGSZLDFLAGSZCPPFLAGSZ
BASECFLAGSÚ BLDSHAREDÚLDSHAREDÚCCÚCXXZ PY_CFLAGSZ
PY_LDFLAGSZPY_CPPFLAGSZPY_CORE_CFLAGSZPY_CORE_LDFLAGS)r r r r
Z_OSX_SUPPORT_INITIAL_c C sˆ |du r t jd }| t j¡}t j | ¡\}}tjdkr$|dkr$| d } t j | ¡sB|D ]}t j || ¡}t j |¡r?| S q,dS | S )zÚTries to find 'executable' in the directories listed in 'path'.
A string listing directories separated by 'os.pathsep'; defaults to
os.environ['PATH']. Returns the complete filename or None if not found.
NÚPATHZwin32z.exe)
ÚosÚenvironÚsplitÚpathsepÚpathÚsplitextÚsysÚplatformÚisfileÚjoin)Ú
executabler ÚpathsÚbaseZextÚpÚf© r ú3/opt/alt/python310/lib64/python3.10/_osx_support.pyÚ_find_executable s
þr Fc C s´ ddl }z
ddl}| ¡ }W n ty! tdt ¡ f dƒ}Y nw | |¡�)}|r2d| |jf }nd| |jf }t |¡sG|
¡ d¡ ¡ ndW d ƒ S 1 sSw Y dS )z0Output from successful command execution or Noner Nz/tmp/_osx_support.%szw+bz
%s >'%s' 2>&1z%s 2>/dev/null >'%s'úutf-8)
Ú
contextlibÚtempfileZNamedTemporaryFileÚImportErrorÚopenr ÚgetpidÚclosingÚnameÚsystemÚreadÚdecodeÚstrip)Z
commandstringZcapture_stderrr r ÚfpÚcmdr r r Ú_read_output7 s" ÿÿÿ$ûr, c C s t | ƒptd| f ƒpdS )z0Find a build tool on current path or using xcrunz/usr/bin/xcrun -find %sÚ )r r, )Ztoolnamer r r Ú_find_build_toolM s
ÿþr. c C s„ t du r@da ztddd�} W n
ty Y t S w zt d| ¡ ¡}W | ¡ n| ¡ w |dur@d | d¡ d¡dd … ¡a t S )
z*Return the OS X system version as a stringNr- z0/System/Library/CoreServices/SystemVersion.plistr )Úencodingz=ProductUserVisibleVersion\s*(.*?)Ú.é é )
Ú_SYSTEM_VERSIONr" ÚOSErrorÚreÚsearchr' Úcloser Úgroupr )r Úmr r r Ú_get_system_versionV s
òÿr: c C sN t du r%tƒ } | r%ztdd„ | d¡D ƒƒa W t S ty$ da Y t S w t S )z}
Return the macOS system version as a tuple
The return value is safe to use to compare
two version numbers.
Nc s ó � | ]}t |ƒV qd S ©N©Úint©Ú.0Úir r r Ú � ó € z,_get_system_version_tuple..r0 r )Ú_SYSTEM_VERSION_TUPLEr: Útupler Ú
ValueError©Zosx_versionr r r Ú_get_system_version_tupleu s ýýrH c C s" t | ƒD ]
}| t¡r| |= qdS )z-Remove original unmodified values for testingN)ÚlistÚ
startswithÚ_INITPRE)Ú_config_varsÚkr r r Ú_remove_original_valuesˆ s
€þrN c C s8 | |d¡}||krt| | vr|| t| <