<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
Re|                 @   sX  d dl mZmZmZ d dlZd dlZd dlZd dlZddlm	Z	m
Z
 ddlmZ ddlmZ ddlmZmZmZ erd dlmZmZmZmZmZmZmZmZmZ eeef Zeeeef Zeeege f Z!G d	d
 d
e"Z#G dd de
ej$e%Z&G dd de&Z'G dd de'Z(dd Z)G dd de'Z*ej+dZ,dd Z-dd Z.G dd de&Z/dS )    )absolute_importdivisionprint_functionN   )string_typeswith_metaclass)TYPE_CHECKING)canonicalize_version)VersionLegacyVersionparse)	ListDictUnionIterableIteratorOptionalCallableTuple	FrozenSetc               @   s   e Zd ZdZdS )InvalidSpecifierzH
    An invalid specifier was found, users should refer to PEP 440.
    N)__name__
__module____qualname____doc__ r   r   /builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el8.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/packaging/specifiers.pyr   "   s   r   c               @   s   e Zd Zejdd Zejdd Zejdd Zejdd Zej	d	d
 Z
e
jdd
 Z
ejdddZejdddZdS )BaseSpecifierc             C   s   dS )z
        Returns the str representation of this Specifier like object. This
        should be representative of the Specifier itself.
        Nr   )selfr   r   r   __str__)   s    zBaseSpecifier.__str__c             C   s   dS )zF
        Returns a hash value for this Specifier like object.
        Nr   )r   r   r   r   __hash__1   s    zBaseSpecifier.__hash__c             C   s   dS )zq
        Returns a boolean representing whether or not the two Specifier like
        objects are equal.
        Nr   )r   otherr   r   r   __eq__8   s    zBaseSpecifier.__eq__c             C   s   dS )zu
        Returns a boolean representing whether or not the two Specifier like
        objects are not equal.
        Nr   )r   r!   r   r   r   __ne__@   s    zBaseSpecifier.__ne__c             C   s   dS )zg
        Returns whether or not pre-releases as a whole are allowed by this
        specifier.
        Nr   )r   r   r   r   prereleasesH   s    zBaseSpecifier.prereleasesc             C   s   dS )zd
        Sets whether or not pre-releases as a whole are allowed by this
        specifier.
        Nr   )r   valuer   r   r   r$   P   s    Nc             C   s   dS )zR
        Determines if the given item is contained within this specifier.
        Nr   )r   itemr$   r   r   r   containsX   s    zBaseSpecifier.containsc             C   s   dS )z
        Takes an iterable of items and filters them so that only items which
        are contained within this specifier are allowed in it.
        Nr   )r   iterabler$   r   r   r   filter_   s    zBaseSpecifier.filter)N)N)r   r   r   abcabstractmethodr   r    r"   r#   abstractpropertyr$   setterr'   r)   r   r   r   r   r   (   s   r   c               @   s   e Zd Zi Zd"ddZdd Zdd Zed	d
 Zdd Z	dd Z
dd Zdd Zdd Zedd Zedd Zedd Zejdd Zdd Zd#ddZd$d d!ZdS )%_IndividualSpecifier Nc             C   sF   | j j|}|stdj||jdj |jdj f| _|| _d S )NzInvalid specifier: '{0}'operatorversion)_regexsearchr   formatgroupstrip_spec_prereleases)r   specr$   matchr   r   r   __init__l   s    z_IndividualSpecifier.__init__c             C   s0   | j d k	rdj| jnd}dj| jjt| |S )Nz, prereleases={0!r}r/   z<{0}({1!r}{2})>)r8   r4   r$   	__class__r   str)r   prer   r   r   __repr__z   s    z_IndividualSpecifier.__repr__c             C   s   dj | j S )Nz{0}{1})r4   r7   )r   r   r   r   r      s    z_IndividualSpecifier.__str__c             C   s   | j d t| j d fS )Nr   r   )r7   r	   )r   r   r   r   _canonical_spec   s    z$_IndividualSpecifier._canonical_specc             C   s
   t | jS )N)hashr@   )r   r   r   r   r       s    z_IndividualSpecifier.__hash__c             C   sP   t |tr4y| jt|}W qD tk
r0   tS X nt || jsDtS | j|jkS )N)
isinstancer   r<   r=   r   NotImplementedr@   )r   r!   r   r   r   r"      s    
z_IndividualSpecifier.__eq__c             C   sP   t |tr4y| jt|}W qD tk
r0   tS X nt || jsDtS | j|jkS )N)rB   r   r<   r=   r   rC   r7   )r   r!   r   r   r   r#      s    
z_IndividualSpecifier.__ne__c             C   s   t | dj| j| }|S )Nz_compare_{0})getattrr4   
_operators)r   opoperator_callabler   r   r   _get_operator   s    z"_IndividualSpecifier._get_operatorc             C   s   t |ttfst|}|S )N)rB   r   r
   r   )r   r1   r   r   r   _coerce_version   s    z$_IndividualSpecifier._coerce_versionc             C   s
   | j d S )Nr   )r7   )r   r   r   r   r0      s    z_IndividualSpecifier.operatorc             C   s
   | j d S )Nr   )r7   )r   r   r   r   r1      s    z_IndividualSpecifier.versionc             C   s   | j S )N)r8   )r   r   r   r   r$      s    z _IndividualSpecifier.prereleasesc             C   s
   || _ d S )N)r8   )r   r%   r   r   r   r$      s    c             C   s
   | j |S )N)r'   )r   r&   r   r   r   __contains__   s    z!_IndividualSpecifier.__contains__c             C   s@   |d kr| j }| j|}|jr(| r(dS | j| j}||| jS )NF)r$   rI   is_prereleaserH   r0   r1   )r   r&   r$   normalized_itemrG   r   r   r   r'      s    
z_IndividualSpecifier.containsc             c   s   d}g }d|d k	r|ndi}xL|D ]D}| j |}| j|f|r"|jr\|pL| j r\|j| q"d}|V  q"W | r|rx|D ]
}|V  qzW d S )NFr$   T)rI   r'   rK   r$   append)r   r(   r$   yieldedfound_prereleaseskwr1   parsed_versionr   r   r   r)      s    




z_IndividualSpecifier.filter)r/   N)N)N)r   r   r   rE   r;   r?   r   propertyr@   r    r"   r#   rH   rI   r0   r1   r$   r-   rJ   r'   r)   r   r   r   r   r.   h   s"   


r.   c               @   sv   e Zd ZdZejde d ejejB Zdddddd	d
Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd ZdS )LegacySpecifiera  
        (?P<operator>(==|!=|<=|>=|<|>))
        \s*
        (?P<version>
            [^,;\s)]* # Since this is a "legacy" specifier, and the version
                      # string can be just about anything, we match everything
                      # except for whitespace, a semi-colon for marker support,
                      # a closing paren since versions can be enclosed in
                      # them, and a comma since it's a version separator.
        )
        z^\s*z\s*$equal	not_equalless_than_equalgreater_than_equal	less_thangreater_than)z==z!=z<=z>=<>c             C   s   t |tstt|}|S )N)rB   r   r=   )r   r1   r   r   r   rI      s    
zLegacySpecifier._coerce_versionc             C   s   || j |kS )N)rI   )r   prospectiver9   r   r   r   _compare_equal&  s    zLegacySpecifier._compare_equalc             C   s   || j |kS )N)rI   )r   r\   r9   r   r   r   _compare_not_equal*  s    z"LegacySpecifier._compare_not_equalc             C   s   || j |kS )N)rI   )r   r\   r9   r   r   r   _compare_less_than_equal.  s    z(LegacySpecifier._compare_less_than_equalc             C   s   || j |kS )N)rI   )r   r\   r9   r   r   r   _compare_greater_than_equal2  s    z+LegacySpecifier._compare_greater_than_equalc             C   s   || j |k S )N)rI   )r   r\   r9   r   r   r   _compare_less_than6  s    z"LegacySpecifier._compare_less_thanc             C   s   || j |kS )N)rI   )r   r\   r9   r   r   r   _compare_greater_than:  s    z%LegacySpecifier._compare_greater_thanN)r   r   r   
_regex_strrecompileVERBOSE
IGNORECASEr2   rE   rI   r]   r^   r_   r`   ra   rb   r   r   r   r   rS     s   rS   c                s   t j  fdd}|S )Nc                s   t |tsdS  | ||S )NF)rB   r
   )r   r\   r9   )fnr   r   wrappedC  s    
z)_require_version_compare.<locals>.wrapped)	functoolswraps)rh   ri   r   )rh   r   _require_version_compare?  s    rl   c            	   @   s   e Zd ZdZejde d ejejB Zdddddd	d
ddZ	e
dd Ze
dd Ze
dd Ze
dd Ze
dd Ze
dd Ze
dd Zdd Zedd Zejdd Zd S )!	Specifiera  
        (?P<operator>(~=|==|!=|<=|>=|<|>|===))
        (?P<version>
            (?:
                # The identity operators allow for an escape hatch that will
                # do an exact string match of the version you wish to install.
                # This will not be parsed by PEP 440 and we cannot determine
                # any semantic meaning from it. This operator is discouraged
                # but included entirely as an escape hatch.
                (?<====)  # Only match for the identity operator
                \s*
                [^\s]*    # We just match everything, except for whitespace
                          # since we are only testing for strict identity.
            )
            |
            (?:
                # The (non)equality operators allow for wild card and local
                # versions to be specified so we have to define these two
                # operators separately to enable that.
                (?<===|!=)            # Only match for equals and not equals

                \s*
                v?
                (?:[0-9]+!)?          # epoch
                [0-9]+(?:\.[0-9]+)*   # release
                (?:                   # pre release
                    [-_\.]?
                    (a|b|c|rc|alpha|beta|pre|preview)
                    [-_\.]?
                    [0-9]*
                )?
                (?:                   # post release
                    (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*)
                )?

                # You cannot use a wild card and a dev or local version
                # together so group them with a | and make them optional.
                (?:
                    (?:[-_\.]?dev[-_\.]?[0-9]*)?         # dev release
                    (?:\+[a-z0-9]+(?:[-_\.][a-z0-9]+)*)? # local
                    |
                    \.\*  # Wild card syntax of .*
                )?
            )
            |
            (?:
                # The compatible operator requires at least two digits in the
                # release segment.
                (?<=~=)               # Only match for the compatible operator

                \s*
                v?
                (?:[0-9]+!)?          # epoch
                [0-9]+(?:\.[0-9]+)+   # release  (We have a + instead of a *)
                (?:                   # pre release
                    [-_\.]?
                    (a|b|c|rc|alpha|beta|pre|preview)
                    [-_\.]?
                    [0-9]*
                )?
                (?:                                   # post release
                    (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*)
                )?
                (?:[-_\.]?dev[-_\.]?[0-9]*)?          # dev release
            )
            |
            (?:
                # All other operators only allow a sub set of what the
                # (non)equality operators do. Specifically they do not allow
                # local versions to be specified nor do they allow the prefix
                # matching wild cards.
                (?<!==|!=|~=)         # We have special cases for these
                                      # operators so we want to make sure they
                                      # don't match here.

                \s*
                v?
                (?:[0-9]+!)?          # epoch
                [0-9]+(?:\.[0-9]+)*   # release
                (?:                   # pre release
                    [-_\.]?
                    (a|b|c|rc|alpha|beta|pre|preview)
                    [-_\.]?
                    [0-9]*
                )?
                (?:                                   # post release
                    (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*)
                )?
                (?:[-_\.]?dev[-_\.]?[0-9]*)?          # dev release
            )
        )
        z^\s*z\s*$
compatiblerT   rU   rV   rW   rX   rY   	arbitrary)z~=z==z!=z<=z>=rZ   r[   z===c             C   sN   dj ttjdd t|d d }|d7 }| jd||oL| jd||S )	N.c             S   s   | j d o| j d S )Npostdev)
startswith)xr   r   r   <lambda>  s    z/Specifier._compare_compatible.<locals>.<lambda>r   z.*z>=z==)joinlist	itertools	takewhile_version_splitrH   )r   r\   r9   prefixr   r   r   _compare_compatible  s    
zSpecifier._compare_compatiblec       	      C   sz   |j drVt|j}t|d d }tt|}|d t| }t||\}}||kS t|}|jsnt|j}||kS d S )Nz.*   )endswithr
   publicr{   r=   len_pad_versionlocal)	r   r\   r9   
split_specsplit_prospectiveshortened_prospectivepadded_specpadded_prospectivespec_versionr   r   r   r]     s    


zSpecifier._compare_equalc             C   s   | j || S )N)r]   )r   r\   r9   r   r   r   r^     s    zSpecifier._compare_not_equalc             C   s   t |jt |kS )N)r
   r   )r   r\   r9   r   r   r   r_     s    z"Specifier._compare_less_than_equalc             C   s   t |jt |kS )N)r
   r   )r   r\   r9   r   r   r   r`     s    z%Specifier._compare_greater_than_equalc             C   s>   t |}||k sdS |j r:|jr:t |jt |jkr:dS dS )NFT)r
   rK   base_version)r   r\   spec_strr9   r   r   r   ra     s    zSpecifier._compare_less_thanc             C   s`   t |}||ksdS |j r:|jr:t |jt |jkr:dS |jd k	r\t |jt |jkr\dS dS )NFT)r
   is_postreleaser   r   )r   r\   r   r9   r   r   r   rb   1  s    
zSpecifier._compare_greater_thanc             C   s   t |j t |j kS )N)r=   lower)r   r\   r9   r   r   r   _compare_arbitraryR  s    zSpecifier._compare_arbitraryc             C   sR   | j d k	r| j S | j\}}|d
krN|dkr@|jdr@|d d }t|jrNdS d	S )N==>=<=~====z.*r~   TF)r   r   r   r   r   r   )r8   r7   r   r   rK   )r   r0   r1   r   r   r   r$   V  s    


zSpecifier.prereleasesc             C   s
   || _ d S )N)r8   )r   r%   r   r   r   r$   p  s    N)r   r   r   rc   rd   re   rf   rg   r2   rE   rl   r}   r]   r^   r_   r`   ra   rb   r   rR   r$   r-   r   r   r   r   rm   M  s(   ])		!rm   z^([0-9]+)((?:a|b|c|rc)[0-9]+)$c             C   sD   g }x:| j dD ],}tj|}|r2|j|j  q|j| qW |S )Nrp   )split_prefix_regexr3   extendgroupsrM   )r1   resultr&   r:   r   r   r   r{   y  s    
r{   c          	   C   s   g g  }}|j ttjdd |  |j ttjdd | |j | t|d d   |j |t|d d   |jddgtdt|d t|d    |jddgtdt|d t|d    ttj| ttj| fS )Nc             S   s   | j  S )N)isdigit)rt   r   r   r   ru     s    z_pad_version.<locals>.<lambda>c             S   s   | j  S )N)r   )rt   r   r   r   ru     s    r   r   0)rM   rx   ry   rz   r   insertmaxchain)leftright
left_splitright_splitr   r   r   r     s    
,,r   c               @   s   e Zd ZdddZdd Zdd Zd	d
 Zdd Zdd Zdd Z	dd Z
dd Zedd Zejdd Zdd ZdddZd ddZdS )!SpecifierSetr/   Nc             C   sr   dd |j dD }t }xB|D ]:}y|jt| W q  tk
rX   |jt| Y q X q W t|| _|| _d S )Nc             S   s   g | ]}|j  r|j  qS r   )r6   ).0sr   r   r   
<listcomp>  s    z)SpecifierSet.__init__.<locals>.<listcomp>,)	r   setaddrm   r   rS   	frozenset_specsr8   )r   
specifiersr$   split_specifiersparsed	specifierr   r   r   r;     s    

zSpecifierSet.__init__c             C   s*   | j d k	rdj| jnd}djt| |S )Nz, prereleases={0!r}r/   z<SpecifierSet({0!r}{1})>)r8   r4   r$   r=   )r   r>   r   r   r   r?     s    zSpecifierSet.__repr__c             C   s   dj tdd | jD S )Nr   c             s   s   | ]}t |V  qd S )N)r=   )r   r   r   r   r   	<genexpr>  s    z'SpecifierSet.__str__.<locals>.<genexpr>)rw   sortedr   )r   r   r   r   r     s    zSpecifierSet.__str__c             C   s
   t | jS )N)rA   r   )r   r   r   r   r      s    zSpecifierSet.__hash__c             C   s   t |trt|}nt |ts"tS t }t| j|jB |_| jd krX|jd k	rX|j|_n<| jd k	rv|jd krv| j|_n| j|jkr| j|_ntd|S )NzFCannot combine SpecifierSets with True and False prerelease overrides.)rB   r   r   rC   r   r   r8   
ValueError)r   r!   r   r   r   r   __and__  s    





zSpecifierSet.__and__c             C   s6   t |ttfrtt|}nt |ts*tS | j|jkS )N)rB   r   r.   r   r=   rC   r   )r   r!   r   r   r   r"     s
    
zSpecifierSet.__eq__c             C   s6   t |ttfrtt|}nt |ts*tS | j|jkS )N)rB   r   r.   r   r=   rC   r   )r   r!   r   r   r   r#     s
    
zSpecifierSet.__ne__c             C   s
   t | jS )N)r   r   )r   r   r   r   __len__  s    zSpecifierSet.__len__c             C   s
   t | jS )N)iterr   )r   r   r   r   __iter__  s    zSpecifierSet.__iter__c             C   s.   | j d k	r| j S | jsd S tdd | jD S )Nc             s   s   | ]}|j V  qd S )N)r$   )r   r   r   r   r   r     s    z+SpecifierSet.prereleases.<locals>.<genexpr>)r8   r   any)r   r   r   r   r$     s
    
zSpecifierSet.prereleasesc             C   s
   || _ d S )N)r8   )r   r%   r   r   r   r$     s    c             C   s
   | j |S )N)r'   )r   r&   r   r   r   rJ     s    zSpecifierSet.__contains__c                sN   t  ttfst  d kr$| j r4 jr4dS t fdd| jD S )NFc             3   s   | ]}|j  d V  qdS ))r$   N)r'   )r   r   )r&   r$   r   r   r   *  s    z(SpecifierSet.contains.<locals>.<genexpr>)rB   r   r
   r   r$   rK   allr   )r   r&   r$   r   )r&   r$   r   r'     s    zSpecifierSet.containsc             C   s   |d kr| j }| jr:x | jD ]}|j|t|d}qW |S g }g }xZ|D ]R}t|ttfsdt|}n|}t|trtqH|jr| r|s|j	| qH|j	| qHW | r|r|d kr|S |S d S )N)r$   )
r$   r   r)   boolrB   r   r
   r   rK   rM   )r   r(   r$   r9   filteredrO   r&   rQ   r   r   r   r)   ,  s*    



zSpecifierSet.filter)r/   N)N)N)r   r   r   r;   r?   r   r    r   r"   r#   r   r   rR   r$   r-   rJ   r'   r)   r   r   r   r   r     s   

		
r   )0
__future__r   r   r   r*   rj   ry   rd   _compatr   r   _typingr   utilsr	   r1   r
   r   r   typingr   r   r   r   r   r   r   r   r   ZParsedVersionr=   ZUnparsedVersionr   ZCallableOperatorr   r   ABCMetaobjectr   r.   rS   rl   rm   re   r   r{   r   r   r   r   r   r   <module>   s4   ,@  8  +
