QfDdZddlZddlZd dZdZdZdZdZdZd Z y) zShared AIX support functions.Nc.ddl}ddl}td|jd}|j |5}|r|d|j d}n|d|j d}|j |s|jndcdddS#1swYyxYw) z0Output from successful command execution or NonerNz/tmp/_aix_support.zw+bz >'z' 2>&1z 2>/dev/null >'')os contextlibopengetpidclosingnamesystemread) commandstringcapture_stderrrrfpcmds 3/opt/alt/python312/lib64/python3.12/_aix_support.py_read_cmd_outputrs|    B   B 2 %2BGG%%&KL **W C ))+  C Cb'R-#c"g,TC AK  ><=>sA11BBcFt\}}tt||S)a AIX filesets are identified by four decimal values: V.R.M.F. V (version) and R (release) can be retrieved using ``uname`` Since 2007, starting with AIX 5.3 TL7, the M value has been included with the fileset bos.rte and represents the Technology Level (TL) of AIX. The F (Fix) value also increases, but is not relevant for comparing releases and binary compatibility. For binary compatibility the so-called builddate is needed. Again, the builddate of an AIX release is associated with bos.rte. AIX ABI compatibility is described as guaranteed at: https://www.ibm.com/ support/knowledgecenter/en/ssw_aix_72/install/binary_compatability.html For pep425 purposes the AIX platform tag becomes: "aix-{:1x}{:1d}{:02d}-{:04d}-{}".format(v, r, tl, builddate, bitsize) e.g., "aix-6107-1415-32" for AIX 6.1 TL7 bd 1415, 32-bit and, "aix-6107-1415-64" for AIX 6.1 TL7 bd 1415, 64-bit )r7r r,)r(rs r aix_platformr9?s &~HD" IdOR ((r!c^tjd}|s tdt|S)NBUILD_GNU_TYPEzBUILD_GNU_TYPE is not defined)r() sysconfigget_config_var ValueErrorr,)gnu_types r_aix_bgtr@Ws-''(89H 899 ( ##r!ctjd} t|}t t |S#ttf$rtd|wxYw)zD Return the platform_tag of the system Python was built on. AIX_BUILDDATEz)AIX_BUILDDATE is not defined or invalid: )r<r=r'r> TypeErrorr r@) build_dates r aix_buildtagrE_sc))/:J,_  HJ ++  ",D&>+, ,,s 6A)F) __doc__rr<rr r,r7r9r@rEr!rrHs2# 9$X) *)0$ ,r!