)K 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 Z e j dg d Zd ed ed fdZ G d de Z G d d Z! G d de! Z" ej# dej$ Z%ddddddZ&ded ee fdZ'd ed efdZ(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)CallableIteratorListOptionalSupportsIntTupleUnion )InfinityInfinityTypeNegativeInfinityNegativeInfinityType)parseVersion LegacyVersionInvalidVersionVERSION_PATTERN._Version)epochreleasedevprepostlocalversionreturn)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 /builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el9.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_vendor/packaging/version.pyr r * sD &w &