????
Current Path : /opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/__pycache__/ |
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/__pycache__/evr_utils.cpython-311.pyc |
� �j�ew � � � d dl mZ d dlmZmZmZmZmZ dgZdee deee fd�Z deee ef defd�Zd eee ee ef defd �Zdee dee fd�Z d S )� )�absolute_import)�Union�List�AnyStr�Tuple�Optional� serialize_evr�intgr�returnc �� � g }| }|dk r.t |d� � \ }}|� |� � |dk �.|� dt |� � z � � |� � � |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 �lst�number� remainders ��/builddir/build/BUILDROOT/alt-python27-cllib-3.3.15-1.el8.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/evr_utils.py�"encode_int_to_real_numbers_segmentr sx � � �C� �F� �1�*�*�"�6�3�/�/��� �� � �9���� �1�*�*� �J�J�s�S��X�X�~�����K�K�M�M�M��J� �rpm_datac �( � g }| D ]�}t |t � � r#|� t |� � � � n�t |t � � rD|� � � r0|� t t |� � � � � � nGt |t � � r |� d� |D � � � � nt d|z � � �|� d� � ��d� d� |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 3 �4 K � | ]}t |� � V � �d S )N)�ord)�.0�chs r � <genexpr>zevr_to_float.<locals>.<genexpr>9 s( � � � �.�.�2�s�2�w�w�.�.�.�.�.�.r z ThisStrange: r � c � � g | ]}d |z ��S )z%02x� )r �ns r � <listcomp>z evr_to_float.<locals>.<listcomp>= s � �,�,�,�1�F�Q�J�,�,�,r ) � isinstance�int�extendr �str�isdigit� NameErrorr �join)r �evr�elems r �evr_to_floatr. * s � � �C�� � ���d�C� � � 4��J�J�9�$�?�?�@�@�@�@� ��c� "� "� 4�t�|�|�~�~� 4��J�J�9�#�d�)�)�D�D�E�E�E�E� ��c� "� "� 4��J�J�.�.��.�.�.�.�.�.�.��O�d�2�3�3�3�� � �1� � � � � �7�7�,�,��,�,�,�-�-�-r r, c � � d}t | t t f� � s| g} | D ]$}|t t |� � � � dz z }�%|S )aw Converts epoch, version and release of package to unique string. Ex: ['1', '2.4.4', '34'] -> '810100008102008104008104000081220000' ['0', '2.2.3', '76.el5_9.cloudlinux'] -> 80000081020081020081030000814c00656c00810500810900636c6f75646c696e75780000 @param evr: List from epoch, version and release @return: str for given list r �00)r% �list�tupler. �split_segments)r, �ret�is r r r @ s[ � � �C��c�D�%�=�)�)� ��e�� � 6� 6���|�N�1�-�-�.�.��5�5����Jr �stringc �� � | �g S | d }d}g }t | � � D ]�\ }}t ||z � � � � � s$t ||z � � � � � r|}�P| ||� � � � r|� | ||� � � |}| | }��| |d� � � � r|� | |d� � � |S )a Split str of epoch or version or release to numbers and strings. Ex: '76.el5_9.cloudlinux.2' -> ['76', 'el', '5', '9', 'cloudlinux', '2'] @param string: str of epoch or version or release @return: List strings and numbers from EVR Nr )� enumerater( r) �isalpha�isalnumr )r6 � prev_symb�begin_index�segmentsr5 �els r r3 r3 S s � � �~�� ��q� �I��K��H��6�"�"� (� (���2� �y�2�~���&�&�(�(� �C� �B��,?�,?�,G�,G�,I�,I� ��I���+�a�-� �(�(�*�*� 3��O�O�F�;�q�=�1�2�2�2����;�'� � � �k�l�l��#�#�%�%� .�����{�|�|�,�-�-�-��Or N)� __future__r �typingr r r r r �__all__r&