HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //proc/self/root/lib/python3.6/site-packages/ipaplatform/__pycache__/osinfo.cpython-36.pyc
3

�d[e��@s�dZddlmZddlmZddlZddlZddlZddlZddl	Z	ddl
Z
yddlmZWne
k
rtdZYnXejd�Zd
dd	�ZGd
d�de�Ze�Zeje
_edkr�ddlZejee��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-releasecCs�i}t|��:}x2|D]*}tj|�}|dk	r|jd�||jd�<qWWdQRXd|krvtdd�|djd�D��|d<nf|d<|jdd	�|jd
d�|jdd
�|jdd
�|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|]}|j�r|j�VqdS)N)�strip)�.0�v�r�/usr/lib/python3.6/osinfo.py�	<genexpr>;sz#_parse_osrelease.<locals>.<genexpr>� �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 


"r#c@s�eZdZd*Zd+Zd	d
�Zdd�Zd
d�Zdd�Zdd�Z	dd�Z
dd�Zdd�Ze
dd��Ze
dd��Ze
dd��Ze
dd ��Ze
d!d"��Ze
d#d$��Ze
d%d&��Ze
d'd(��Zd)S),�OSInfo�_info�	_platform�
_container�freebsd�openbsd�netbsd�	dragonfly�gnukfreebsdcCs|tjjd�r|j�}nPtjdkr*|j�}n<tjdkr>|j�}n(tjj|j�rV|j�}ntdj	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__cCsByt�Stk
r<}ztjdj|��ddd�Sd}~XnXdS)z7Detect Linux distribution from /etc/os-release
        z"Failed to read /etc/os-release: {}rr)rrN)r#�	Exception�warnings�warnr8)r9�errr
r2dszOSInfo._handle_linuxcCs
ddd�S)z%Windows 32 or 64bit platform
        ZWindowsr-)rrr)r9rrr
r3pszOSInfo._handle_win32cCs
ddd�S)z'Handle macOS / Darwin platform
        ZmacOSZmacos)rrr)r9rrr
r4xszOSInfo._handle_darwincCs6tj}|jd�}g}||kr&|j|�||t|�d�S)z"Handle BSD-like platforms
        �
0123456789)rrr)r/r0�rstrip�appendr)r9r0Zsimple�id_likerrr
r6�s

zOSInfo._handle_bsdcCs
|j|S)N)r%)r9�itemrrr
�__getitem__�szOSInfo.__getitem__cCs
t|j�S)N)�iterr%)r9rrr
�__iter__�szOSInfo.__iter__cCs
t|j�S)N)�lenr%)r9rrr
�__len__�szOSInfo.__len__cCs
|jdS)zOS name (user)
        r)r%)r9rrr
r�szOSInfo.namecCs
|jdS)z!Lower case OS identifier
        r)r%)r9rrr
�id�sz	OSInfo.idcCs|jjdf�S)zRelated / similar OS
        r)r%�get)r9rrr
rC�szOSInfo.id_likecCs|jjd�S)z1Version number and name of OS (for user)
        r)r%rK)r9rrr
�version�szOSInfo.versioncCs,|jjd�}|sfStdd�|jd�D��S)z1Version number tuple based on version_id
        rcss|]}t|�VqdS)N)�int)r
�prrr
r�sz(OSInfo.version_number.<locals>.<genexpr>�.)r%rKrr)r9Z
version_idrrr
�version_number�szOSInfo.version_numbercCsbg}tjjd�}|r|j|�tdk	r8t|kr8|jt�|j|krN|j|j�|j|j�t|�S)zAOrdered tuple of detected platforms (including override)
        ZIPAPLATFORM_OVERRIDEN)	�os�environrKrBrrJ�extendrCr)r9Z	platforms�envrrr
�platform_ids�s


zOSInfo.platform_idscCsn|jdk	r|jSxB|jD]8}ytjdj|��Wntk
rDYqX||_|SqWtdjdj|j����dS)Nzipaplatform.{}z!No ipaplatform available for "{}"z, )r&rU�	importlib�
import_moduler8�ImportError�join)r9r0rrr
r0�s
zOSInfo.platformcCsN|jdk	r|jSddlm}y|j�|_Wntk
rFtd��YnX|jS)Nr)�tasksz.Platform does not support detecting containers)r'Zipaplatform.tasksrZZdetect_container�NotImplementedError)r9rZrrr
�	container�s
zOSInfo.containerN)r%r&r')r(r)r*r+r,)�__name__�
__module__�__qualname__�	__slots__r5r;r2r3r4r6rErGrI�propertyrrJrCrLrPrUr0r\rrrr
r$Is,	r$�__main__)r)�__doc__Z
__future__r�collections.abcrrV�rerQr/r=ZipaplatformZipaplatform.overriderrX�compilerr#r$Zosinfor0rr]�pprint�dictrrrr
�<module>s,