HEX
Server: LiteSpeed
System: Linux shams.tasjeel.ae 5.14.0-611.5.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 11 08:09:09 EST 2025 x86_64
User: infowars (1469)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //proc/self/root/lib/python3.9/site-packages/ipaplatform/__pycache__/osinfo.cpython-39.pyc
a

}�f�@s�dZddlmZddlmZddlZddlZddlZddlZddl	Z	ddl
Z
zddlmZWne
yrdZYn0e�d�Zd
dd	�ZGd
d�de�Ze�Zeje
_edkr�ddlZe�ee��dS)a�Distribution information

Known Linux distros with /etc/os-release
----------------------------------------

- alpine
- centos (like rhel, fedora)
- debian
- fedora
- rhel
- ubuntu (like debian)

The platform ids for ipaplatform providers are based on:

1) IPAPLATFORM_OVERRIDE env var
2) ipaplatform.override.OVERRIDE value
3) ID field of /etc/os-release (Linux)
4) ID_LIKE fields of /etc/os-release (Linux)
�)�absolute_import)�MappingN)�OVERRIDEzF^(?!#)(?P<name>[a-zA-Z0-9_]+)=(?P<quote>["']?)(?P<value>.+)(?P=quote)$�/etc/os-releasecCs�i}t|��@}|D]*}t�|�}|dur|�d�||�d�<qWd�n1sR0Yd|vr�tdd�|d�d�D��|d<nd|d<|�d	d
�|�dd�|�d
d�|�dd�|S)z}Parser for /etc/os-release for Linux distributions

    https://www.freedesktop.org/software/systemd/man/os-release.html
    N�value�name�ID_LIKEcss|]}|��r|��VqdS�N)�strip)�.0�v�r
�6/usr/lib/python3.9/site-packages/ipaplatform/osinfo.py�	<genexpr>:s�z#_parse_osrelease.<locals>.<genexpr>� r
�NAME�Linux�ID�linux�VERSION��
VERSION_ID)�open�_osrelease_line�match�group�tuple�split�
setdefault)�filename�release�f�line�mor
r
r�_parse_osrelease.s 

4�r$c@s�eZdZdZdZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Ze
dd��Ze
dd��Ze
dd��Ze
dd��Ze
dd��Ze
dd��Ze
dd ��Ze
d!d"��Zd#S)$�OSInfo)�_info�	_platform�
_container)ZfreebsdZopenbsdZnetbsdZ	dragonflyZgnukfreebsdcCs|tj�d�r|��}nPtjdkr*|��}n<tjdkr>|��}n(tj�|j�rV|��}ntd�	tj���||_
d|_d|_dS)Nr�win32�darwinzUnsupported platform: {})
�sys�platform�
startswith�
_handle_linux�
_handle_win32�_handle_darwin�
bsd_family�_handle_bsd�
ValueError�formatr&r'r()�self�infor
r
r�__init__Ts





zOSInfo.__init__c
CsLzt�WStyF}z&t�d�|��ddd�WYd}~Sd}~00dS)z7Detect Linux distribution from /etc/os-release
        z"Failed to read /etc/os-release: {}rr�rrN)r$�	Exception�warnings�warnr4)r5�er
r
rr.ds�zOSInfo._handle_linuxcCs
ddd�S)z%Windows 32 or 64bit platform
        ZWindowsr)r8r
�r5r
r
rr/ps�zOSInfo._handle_win32cCs
ddd�S)z'Handle macOS / Darwin platform
        ZmacOSZmacosr8r
r=r
r
rr0xs�zOSInfo._handle_darwincCs6tj}|�d�}g}||kr&|�|�||t|�d�S)z"Handle BSD-like platforms
        �
0123456789)rrr)r+r,�rstrip�appendr)r5r,�simple�id_liker
r
rr2�s

�zOSInfo._handle_bsdcCs
|j|Sr	�r&)r5�itemr
r
r�__getitem__�szOSInfo.__getitem__cCs
t|j�Sr	)�iterr&r=r
r
r�__iter__�szOSInfo.__iter__cCs
t|j�Sr	)�lenr&r=r
r
r�__len__�szOSInfo.__len__cCs
|jdS)zOS name (user)
        rrCr=r
r
rr�szOSInfo.namecCs
|jdS)z!Lower case OS identifier
        rrCr=r
r
r�id�sz	OSInfo.idcCs|j�dd�S)zRelated / similar OS
        rr
�r&�getr=r
r
rrB�szOSInfo.id_likecCs|j�d�S)z1Version number and name of OS (for user)
        rrKr=r
r
r�version�szOSInfo.versioncCs,|j�d�}|sdStdd�|�d�D��S)z1Version number tuple based on version_id
        rr
css|]}t|�VqdSr	)�int)r�pr
r
rr��z(OSInfo.version_number.<locals>.<genexpr>�.)r&rLrr)r5Z
version_idr
r
r�version_number�szOSInfo.version_numbercCsbg}tj�d�}|r|�|�tdur8t|vr8|�t�|j|vrN|�|j�|�|j�t|�S)zAOrdered tuple of detected platforms (including override)
        ZIPAPLATFORM_OVERRIDEN)	�os�environrLr@rrJ�extendrBr)r5Z	platforms�envr
r
r�platform_ids�s


zOSInfo.platform_idsc	Csl|jdur|jS|jD]:}zt�d�|��Wnty@Yq0||_|Sqtd�d�|j����dS)Nzipaplatform.{}z!No ipaplatform available for "{}"z, )r'rW�	importlib�
import_moduler4�ImportError�join)r5r,r
r
rr,�s



�zOSInfo.platformcCsL|jdur|jSddlm}z|��|_WntyDtd��Yn0|jS)Nr)�tasksz.Platform does not support detecting containers)r(Zipaplatform.tasksr\Zdetect_container�NotImplementedError)r5r\r
r
r�	container�s
�
zOSInfo.containerN)�__name__�
__module__�__qualname__�	__slots__r1r7r.r/r0r2rErGrI�propertyrrJrBrMrRrWr,r^r
r
r
rr%Is4






r%�__main__)r)�__doc__Z
__future__r�collections.abcrrX�rerSr+r:ZipaplatformZipaplatform.overriderrZ�compilerr$r%Zosinfor,rr_Zpprint�dictr
r
r
r�<module>s.
�