� ��^i�x � �n � d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZm Z m Z mZmZm Z mZmZmZ ddlmZ ddlmZmZmZ eeef Zeeeef Z ede�� � Zeeegef Z G d� d e� � Z G d � de j �� � Z G d � de � � Z! G d� de!� � Z"dedeegef dedeegef fd�Z# G d� de!� � Z$ ej% d� � Z&dede e fd�Z'dedefd�Z(de e de e dee e e e f fd�Z) G d� de � � Z*dS ) � N)�Callable�Dict�Iterable�Iterator�List�Optional�Pattern�Set�Tuple�TypeVar�Union� )�canonicalize_version)� LegacyVersion�Version�parse�VersionTypeVar)�boundc � � e Zd ZdZdS )�InvalidSpecifierzH An invalid specifier was found, users should refer to PEP 440. N)�__name__� __module__�__qualname__�__doc__� � ��/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_vendor/packaging/specifiers.pyr r ! s � � � � � �� � � r r c � � e Zd Zej defd�� � Zej defd�� � Zej de de fd�� � Zej de de fd�� � Zej dee fd�� � Zej de dd fd �� � Zej ddedee de fd �� � Zej ddee dee dee fd�� � Zd S )� BaseSpecifier�returnc � � dS )z� Returns the str representation of this Specifier like object. This should be representative of the Specifier itself. Nr ��selfs r �__str__zBaseSpecifier.__str__( � � � � r c � � dS )zF Returns a hash value for this Specifier like object. Nr r" s r �__hash__zBaseSpecifier.__hash__/ r% r �otherc � � dS )zq Returns a boolean representing whether or not the two Specifier like objects are equal. Nr �r# r( s r �__eq__zBaseSpecifier.__eq__5 r% r c � � dS )zu Returns a boolean representing whether or not the two Specifier like objects are not equal. Nr r* s r �__ne__zBaseSpecifier.__ne__<