????
Your IP : 3.21.34.214
o
��e��@spdZddlZddlZzddlZWn
eyddlZYnwdd�Zdd�Zdd�Zd d
�Z dd�Z
d
d�ZdS)zShared AIX support functions.�NcCs0tjdkrdnd}d�|d|d|d||�S)Ni���� �@zaix-{:1x}{:1d}{:02d}-{:04d}-{}r��)�sys�maxsize�format)Zvrtl�bdZ_sz�r
�3/opt/alt/python310/lib64/python3.10/_aix_support.py�_aix_tagsrcCs2|�d�dd�\}}}t|d�t|�t|�gS)N�.����)�split�int)�vrmf�v�rZtlr
r
r� _aix_vrtlsrcCs>t�gd��}|�d�}|���d�}t|d�t|d�fS)z�
Return a Tuple[str, int] e.g., ['7.1.4.34', 1806]
The fileset bos.mp64 is the AIX kernel. It's VRMF and builddate
reflect the current ABI levels of the runtime environment.
)z/usr/bin/lslppz-Lqczbos.mp64zutf-8�:rr)�
subprocessZcheck_output�decode�stripr�strr)�outr
r
r�_aix_bosmp64s
rcCst�\}}tt|�|�S)a�
AIX filesets are identified by four decimal values: V.R.M.F.
V (version) and R (release) can be retreived using ``uname``
Since 2007, starting with AIX 5.3 TL7, the M value has been
included with the fileset bos.mp64 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.mp64.
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
)rrr)rr r
r
r�aix_platform,s
rcCs t�d�}|std��t|d�S)NZBUILD_GNU_TYPEzBUILD_GNU_TYPE is not defined)r)� sysconfig�get_config_var�
ValueErrorr)Zgnu_typer
r
r�_aix_bgtDs
r!c CsDt�d�}zt|�}Wnttfytd|����wtt�|�S)zD
Return the platform_tag of the system Python was built on.
Z
AIX_BUILDDATEz)AIX_BUILDDATE is not defined or invalid: )rrrr � TypeErrorrr!)Z
build_dater
r
r�aix_buildtagLs
��r#)�__doc__rrr�ImportErrorZ_bootsubprocessrrrrr!r#r
r
r
r�<module>s�