%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /snap/core20/2379/lib/python3/dist-packages/probert/__pycache__/
Upload File :
Create Path :
Current File : //snap/core20/2379/lib/python3/dist-packages/probert/__pycache__/utils.cpython-38.pyc

U

T{)_<"�@sddlmZddlZddlZddlZddlZddlZddddddd	d
ddd
ddddddddddddgZddddddgZd d!d"d#d$d%d&d'gZ	d(Z
d)d*�Zejd+kr�d,d-�Z
nd.d-�Z
ed/fd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Zd<d=�Zd>d?�Zd@dA�ZdBdC�ZdS)D�)�deepcopyNZaddressZnetmaskZ	broadcastZnetworkZmetricZgatewayZpointtopointZmediaZmtuZhostnameZ
leasehoursZ	leasetimeZvendorZclientZbootfile�serverZhwaddrZprovider�frameZnetnumZendpointZlocalZttlzpre-upZupzpost-upZdownzpre-downz	post-downZ
bridge_ageingZbridge_bridgeprioZ	bridge_fdZ
bridge_gcinitZbridge_helloZ
bridge_maxageZbridge_maxwaitZ
bridge_stpicCs�t|�}t|t�r*t|t�r*|�|�|S|��D]v\}}||kr�t||t�rnt|t�rnt|||�||<q�t||t�r�t|t�r�tt|||��||<q2|||<q2|S�N)r�
isinstance�list�extend�items�dict�
dict_merge�set)Zonto�source�target�key�value�r�//usr/lib/python3/dist-packages/probert/utils.pyrs

r)r�cCs>i}|jD].}|j�|�}t|t�r0|�dd�}|||<q
|S�Nzutf-8�replace)�
attributes�getr�bytes�decode��device�rr�valrrr�udev_get_attributes1s


rcCs@i}|jjD].}|j�|�}t|t�r2|�dd�}|||<q|Sr)rZavailable_attributesrrrrrrrrr:s

�cs(dd�tt��fdd�|D�|��D�S)Ncss |]\}}dd�||�VqdS)cs�fdd�|D�S)Nc3s|]\}}|�kr|VqdSrr)�.0Zpred�item��irr�	<genexpr>Fsz:partitionn2.<locals>.<genexpr>.<lambda>.<locals>.<genexpr>r)r#�teerr"r�<lambda>F�z'partitionn2.<locals>.<genexpr>.<lambda>Nr)r �x�trrrr$Fs�zpartitionn2.<locals>.<genexpr>c3s|]}�|�|fVqdSrr)r r!��	predicaterrr$Gs�)�	enumerate�	itertoolsr%�r	r+�nrr*r�partitionn2Es���r0cs>|���t��fdd�dd�}dd�|D�}|\\}}||fS)z{Unpack a partition into a tuple of (first partition, second partition)

    param: partition iterator from partitionn2
    cs��|�dkS)Nr)�index)r(�r	rrr&Ur'z#partition_to_pair.<locals>.<lambda>rr.cSsg|]}t|��qSr)r)r �prrr�
<listcomp>Wsz%partition_to_pair.<locals>.<listcomp>)�splitr0)�inputZ
partitions�datarrrr2r�partition_to_pairNs
�
r8cCsdd�|�d�D�S)NcSs&g|]}t|�r|�d�d���qS)�;r)�lenr5�strip)r r(rrrr4^s�z3disentagle_data_from_whitespace.<locals>.<listcomp>�
)r5)r7rrr�disentagle_data_from_whitespace\sr=cCszi}i}t|�D]V}t|�dkr"qt|�\}}|dkrN|�|d|di�qd�|�}|�||i�q|�d|i�|S)zuTransform lease string into dictionary of attributes

    params: lease: string if a dhcp lease structure { to }
    r�option�� �options)r=r:r8�update�join)�leaseZ
lease_dictrA�linerrrrr�
dictify_leasebs
rFcCsdd�t�d|�dd��D�S)z�Parses dhclient leases file data, returning dictionary of leases

    :param leasesdata: string of lease data read from leases file
    cSsg|]}t|��qSr)rF)r rDrrrr4}sz.parse_dhclient_leases_file.<locals>.<listcomp>z
{([^{}]*)}�"�)�re�findallr)�	leasedatarrr�parse_dhclient_leases_filexs�rLcCsNi}|�d�D]:}|�d�st|�dkr*q|�d�}|d||d��<q|S)z6Parses systemd/networkd/netif lease data, returns dictr<�#r?�=r)r5�
startswithr:�lower)rKrDrEZkeyvaluerrr�parse_networkd_lease_file�s
rQcCs*ddg}|D]}tj�|�r|SqdS)Nz
/var/lib/dhcpz/var/lib/dhclient)�os�path�exists)Zsupported_dirs�drrr�get_dhclient_d�s

rVcCsd}|}|��D�]�}|��}|�d�r*q|�d�}|d}|dkrXtj�||d�}q|dkr�tj�||d�}t�|�D]B}	t|	d��}
|
�	���}W5QRXt
||tj�tj�|	���q|q|d	k�r�|dd�D] }||kr�i||<d
||d	<q�q|dk�r`|dd�\}}
}||k�r,i||<nd
||k�rBt
d��|
||d
<|||d<|}q|dk�r||d||d<q|tk�r�|d|||<q|tk�r�|||k�r�g|||<|||�d�|dd���q|�d��r�d||k�ri||d<|dk�rJg||dd<|dd�D]}||dd�|��q*nD|dk�r�g||dd<|dd�D]}||dd�|��qpq|�d�rd||k�r�i||d<|tk�r�|�dd�}|d||d|<q|dk�r&g||dd<|dd�D]}||dd�|��qq|dk�rX|d��dk�rX|d||dd<q|dk�r�d ||dk�r�i||dd <|d||dd |d<q|d!krd"||dk�r�i||dd"<|d||dd"|d<q|��D] }d	||k�r�d#||d	<�q�dS)$z�Parses the file contents, placing result into ifaces.

    :param ifaces: interface dictionary
    :param contents: contents of interfaces file
    :param path: directory interfaces file was located
    NrMr@rzsource-directoryr?r
r�autoT�iface��familyz!Cannot define %s interface again.�methodZ	hwaddresszdns-Zdnsz
dns-search�searchzdns-nameserversZnameserversZbridge_ZbridgerHZbridge_portsZportsZ	bridge_hwZmacrZbridge_pathcostZpathcostZbridge_portprioZportprioF)�
splitlinesr;rOr5rRrSrC�glob�open�read�parse_etc_network_interfaces�dirname�abspath�	Exception�NET_CONFIG_OPTIONS�NET_CONFIG_COMMANDS�append�NET_CONFIG_BRIDGE_OPTIONSrrP�keys)Zifaces�contentsrSZcurrifZsrc_dirrEr5r>Zsrc_pathZsrc_file�fpZsrc_datarXrZr[ZdomainrZ
bridge_optionrrrra�s�

�






"





rac	CsPtj�dtj�|��}tj�|d�}t|��}t|�����t}W5QRX|S)zA /sys/class/block/<device>/size and return integer value in bytes�/sys/class/block�size)	rRrSrC�basenamer_�intr`r;�SECTOR_SIZE_BYTES)r�
device_dirZ
blockdev_sizerUrmrrr�read_sys_block_size_bytes�s

rrcCs*tj�dtj�|��}t�tj�|d��S)NrlZslaves)rRrSrCrn�listdir)rrqrrr�read_sys_block_slaves�srt)�copyrr^r-rRrIZpyudevrerfrhrprZ__version_info__rror0r8r=rFrLrQrVrarrrtrrrr�<module>sx���

				S

Zerion Mini Shell 1.0