File: //opt/alt/python37/lib/python3.7/site-packages/clcommon/__pycache__/evr_utils.cpython-37.opt-1.pyc
B
���£�� @ s� d dl mZ d dlmZmZmZmZmZ dgZee eee d�dd�Z
eee ef ed�dd �Zeee ee ef ed
�dd�Zee ee d�d
d�Z
dS )� )�absolute_import)�Union�List�AnyStr�Tuple�Optional�
serialize_evr)�intgr�returnc C sL g }| }x$|dkr,t |d�\}}|�|� q
W |�dt|� � |�� |S )z�
Encode int in real-numbers segment.
See http://en.wikipedia.org/wiki/Arithmetic_coding.
@param intgr: int for coding in Float an segment [seg_begin, seg_end]
@return: list encoding segment
r � � )�divmod�append�len�reverse)r ZlstZnumberZ remainder� r ��/builddir/build/BUILDROOT/alt-python27-cllib-3.4.1-1.el9.cloudlinux.x86_64/opt/alt/python37/lib/python3.7/site-packages/clcommon/evr_utils.py�"encode_int_to_real_numbers_segment s
r )�rpm_datar
c C s� g }x�| D ]z}t |t�r(|�t|�� nRt |t�rN|�� rN|�tt|��� n,t |t�rn|�dd� |D �� ntd| ��|�d� q
W d�dd� |D ��S )z�
Encode List of parts of Version or Epoch or Release in real-numbers segment.
See http://en.wikipedia.org/wiki/Arithmetic_coding.
@param rpm_data: list to convert in double
@return: Converted string
c s s | ]}t |�V qd S )N)�ord)�.0Zchr r r � <genexpr>9 s zevr_to_float.<locals>.<genexpr>z
ThisStrange: r � c S s g | ]}d | �qS )z%02xr )r �nr r r �
<listcomp>= s z evr_to_float.<locals>.<listcomp>) �
isinstance�int�extendr �str�isdigit� NameErrorr �join)r �evr�elemr r r �evr_to_float* s
r$ )r"