a lj8 @ sP d dl Z d dlZd dlZd dlZd dlmZmZmZmZm Z m Z mZ ddlm Z mZmZmZ g dZeeef Zeee eef f Zeeeef Zeee eee eef e eef f df f Ze ee edf eeeef Ze ee edf f Zeeeef eeef gef Ze dg dZeed d ddZG d d deZ G dd dZ!G dd de!Z"e#dej$Z%ddddddZ&eee dddZ'eed ddZ(dZ)G dd de!Z*eeee+e f ee eef d d!d"Z,e#d#Z-eee d$d%d&Z.ee edf ee eef ee eef ee eef ee e ed'd(d)Z/dS )* N)CallableIteratorListOptionalSupportsIntTupleUnion )InfinityInfinityTypeNegativeInfinityNegativeInfinityType)parseVersion LegacyVersionInvalidVersionVERSION_PATTERN._Version)epochreleasedevprepostlocal)r r versionreturnc C s* z t | W S ty$ t| Y S 0 dS )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. N)r r r )r r A/usr/lib/python3.9/site-packages/pip/_vendor/packaging/version.pyr * s r c @ s e Zd ZdZdS )r zF An invalid version was found, users should refer to PEP 440. N)__name__ __module____qualname____doc__r r r r r 6 s r c @ s e Zd ZU eeef ed<