
    h=                     h    d Z ddlZddlZ	 ddlZn# e$ r ddlZY nw xY wd Zd Zd Zd Z	d Z
d ZdS )	zShared AIX support functions.    Nc                     t           j        dk    rdnd}|dk    r|nd}d                    | d         | d         | d         ||          S )	Ni    @   r   '  zaix-{:1x}{:1d}{:02d}-{:04d}-{}      )sysmaxsizeformat)vrtlbd_sz_bds       #/usr/lib/python3.11/_aix_support.py_aix_tagr      sS     ((""bCa""TC+2247DGT!WcSVWWW    c                     |                      d          d d         \  }}}t          |d                   t          |          t          |          gS )N.   )splitint)vrmfvrtls       r   	_aix_vrtlr      sC    zz#rr"HAq""JJAB((r   c                     t          j        g d          } |                     d          } |                                                     d          } | d         dk    rt          | d                   nd}t          | d                   |fS )a(  
    Return a Tuple[str, int] e.g., ['7.1.4.34', 1806]
    The fileset bos.rte represents the current AIX run-time level. It's VRMF and
    builddate reflect the current ABI levels of the runtime environment.
    If no builddate is found give a value that will satisfy pep425 related queries
    )z/usr/bin/lslppz-Lqczbos.rtezutf-8:r    r   r   )
subprocesscheck_outputdecodestripr   r   str)outr   s     r   _aix_bos_rter'      s{     
!"G"G"G
H
HC
**W

C
))++

C
 
 Cb'R--#c"g,,,TCAKKr   c                  ^    t                      \  } }t          t          |           |          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
    )r'   r   r   )r   r   s     r   aix_platformr)   .   s'    & ~~HD"IdOOR(((r   c                  l    t          j        d          } | st          d          t          |           S )NBUILD_GNU_TYPEzBUILD_GNU_TYPE is not defined)r   )	sysconfigget_config_var
ValueErrorr   )gnu_types    r   _aix_bgtr0   F   s;    '(899H :8999(####r   c                      t          j        d          } 	 t          |           } n'# t          t          f$ r t          d|           w xY wt          t                      |           S )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   r0   )
build_dates    r   aix_buildtagr5   N   s     )/::J,__

	" , , , +&+ + , , 	,, HJJ
+++s	   & $A
)__doc__r	   r,   r!   ImportError_bootsubprocessr   r   r'   r)   r0   r5    r   r   <module>r:      s    # # 



    ) ) ) ) )((((()X X X) ) )   ) ) )0$ $ $, , , , ,s    	