�
���cI9 � �� � d dl Z d dlZd dlZd dlZd dlmZmZmZmZm Z m
Z
mZ ddlm
Z
mZmZmZ g d�Zeeef Zeee
eef f Zeeeef Zeee
eee
eef e
eef f df f Ze
ee
edf eeeef Ze
ee
edf f Zeeeef eeef gef Z e j dg d�� � Zd ed
ed fd�Z G d
� de� � Z G d� d� � Z! G d� de!� � Z" ej# dej$ � � Z%dddddd�Z&ded
ee fd�Z'd ed
efd�Z(dZ) G d� de!� � Z*dedeee+e f d
ee
eef fd �Z, ej# d!� � Z-d"ed
ee fd#�Z.d$ed%e
edf d&ee
eef d'ee
eef d(ee
eef d"ee
e d
efd)�Z/dS )*� N)�Callable�Iterator�List�Optional�SupportsInt�Tuple�Union� )�Infinity�InfinityType�NegativeInfinity�NegativeInfinityType)�parse�Version�
LegacyVersion�InvalidVersion�VERSION_PATTERN.�_Version)�epoch�release�dev�pre�post�local�version�return)r r c �` � t | � � S # t $ r t | � � cY S w xY w)z�
Parse the given version string and return either a :class:`Version` object
or a :class:`LegacyVersion` object depending on if the given version is
a valid PEP 440 version or a legacy version.
)r r r )r s �F/usr/lib/python3/dist-packages/setuptools/_vendor/packaging/version.pyr r * sD � �&��w������ &� &� &��W�%�%�%�%�%�&���s � �-�-c � � e Zd ZdZdS )r zF
An invalid version was found, users should refer to PEP 440.
N)�__name__�
__module__�__qualname__�__doc__� � r r r 6 s � � � � � �� � � r% r c � � e Zd ZU eeef ed< |