�
�~�e � � � d Z ddlmZ d� Zd� Zy)z-Helpers for dealing with software versioning.� )�
StrictVersionc �t � | j d� } |j d� }t | � t |� k\ S )a6 Check if a version is higher than another.
This takes two software versions in the usual b"x.y" form
and split them on the decimal character, converting both parts
to ints, e.g. b"3.2" becomes (3, 2).
It then does a comparison of the two tuples, and returns C{True} if
C{version1} is greater than or equal to C{version2}.
@param version1: The first version to compare as C{bytes}.
@param version2: The second version to compare as C{bytes}.
@return: C{True} if the first version is greater than or equal to
the second.
�ascii)�decoder )�version1�version2s �:/usr/lib/python3/dist-packages/landscape/lib/versioning.py�is_version_higherr
s5 � � ���w�'�H����w�'�H���"�m�H�&=�=�=� c
�� � t | D �cg c] }t |j d� � �� c}d�� }|D �cg c] }t |� j d� �� c}S c c}w c c}w )z�Sort a list of software versions in from the highest to the lowest.
@param version: a C{list} of C{bytes} describing a version.
r T)�reverse)�sortedr r �str�encode)�versions�version�strict_versions�strict_versions r �
sort_versionsr se � �
�?G�H�G��w�~�~�g�.� /�H���O� .��� �N��"�"�7�+�� �� I��s
�!A�!A!N)�__doc__�distutils.versionr r
r � r r �<module>r s �� 3� +�>�(r |