File: //usr/lib/python3/dist-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-310.pyc
o
@%Ne�u � @ s� d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZm Z m
Z
mZmZm
Z
mZmZmZ ddlmZ ddlmZmZmZ eeef Zeeeef Zeded�Zeeegef ZG dd � d e�ZG d
d� de jd�Z G d
d� de �Z!G dd� de!�Z"dedeegef dedeegef fdd�Z#G dd� de!�Z$e�%d�Z&dede
e fdd�Z'dedefdd�Z(de
e de
e dee
e e
e f fd d!�Z)G d"d#� d#e �Z*dS )$� N)�Callable�Dict�Iterable�Iterator�List�Optional�Pattern�Set�Tuple�TypeVar�Union� )�canonicalize_version)�
LegacyVersion�Version�parse�VersionTypeVar)�boundc @ s e Zd ZdZdS )�InvalidSpecifierzH
An invalid specifier was found, users should refer to PEP 440.
N)�__name__�
__module__�__qualname__�__doc__� r r �B/usr/lib/python3/dist-packages/pip/_vendor/packaging/specifiers.pyr ! s r c @ s� e Zd Zejdefdd��Zejdefdd��Zejde de
fdd��Zejde
e
fd d
��Zejde
ddfd
d
��Zejddede
e
de
fdd��Zej ddee de
e
dee fdd��ZdS )�
BaseSpecifier�returnc C � dS )z�
Returns the str representation of this Specifier like object. This
should be representative of the Specifier itself.
Nr ��selfr r r �__str__( � zBaseSpecifier.__str__c C r )zF
Returns a hash value for this Specifier like object.
Nr r r r r �__hash__/ r! zBaseSpecifier.__hash__�otherc C r )zq
Returns a boolean representing whether or not the two Specifier like
objects are equal.
Nr �r r# r r r �__eq__5 r! zBaseSpecifier.__eq__c C r )zg
Returns whether or not pre-releases as a whole are allowed by this
specifier.
Nr r r r r �prereleases<