U âQabym ã @ sæ d dl mZmZmZ d dlZd dlZd dlZd dlZddlm Z m Z ddlmZm Z mZ G dd„ deƒZG dd „ d e ejeƒƒZG d d„ deƒZG dd „ d eƒZdd„ ZG dd„ deƒZe d¡Zdd„ Zdd„ ZG dd„ deƒZdS )é )Úabsolute_importÚdivisionÚprint_functionNé )Ústring_typesÚwith_metaclass)ÚVersionÚ LegacyVersionÚparsec @ s e Zd ZdZdS )ÚInvalidSpecifierzH An invalid specifier was found, users should refer to PEP 440. N)Ú__name__Ú __module__Ú__qualname__Ú__doc__© r r úN/usr/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/specifiers.pyr s r c @ s€ e Zd Zejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZej d d „ ƒZ e jdd „ ƒZ ejdd d„ƒZejddd„ƒZ dS )Ú BaseSpecifierc C s dS )zŽ Returns the str representation of this Specifier like object. This should be representative of the Specifier itself. Nr ©Úselfr r r Ú__str__ s zBaseSpecifier.__str__c C s dS )zF Returns a hash value for this Specifier like object. Nr r r r r Ú__hash__ s zBaseSpecifier.__hash__c C s dS )zq Returns a boolean representing whether or not the two Specifier like objects are equal. Nr ©r Úotherr r r Ú__eq__$ s zBaseSpecifier.__eq__c C s dS )zu Returns a boolean representing whether or not the two Specifier like objects are not equal. Nr r r r r Ú__ne__+ s zBaseSpecifier.__ne__c C s dS )zg Returns whether or not pre-releases as a whole are allowed by this specifier. Nr r r r r Úprereleases2 s zBaseSpecifier.prereleasesc C s dS )zd Sets whether or not pre-releases as a whole are allowed by this specifier. Nr ©r Úvaluer r r r 9 s Nc C s dS )zR Determines if the given item is contained within this specifier. Nr ©r Úitemr r r r Úcontains@ s zBaseSpecifier.containsc C s dS )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 ÚfilterF s zBaseSpecifier.filter)N)N)r r r ÚabcÚabstractmethodr r r r Úabstractpropertyr Úsetterr r" r r r r r s r c @ s e Zd Zi Zd dd„Zdd„ Zdd„ Zd d „ Zdd„ Zd d„ Z dd„ Z dd„ Zedd„ ƒZ edd„ ƒZedd„ ƒZejdd„ ƒZdd„ Zd!dd„Zd"dd„ZdS )#Ú_IndividualSpecifierÚ Nc C sF | j |¡}|std |¡ƒ‚| d¡ ¡ | d¡ ¡ f| _|| _d S )NzInvalid specifier: '{0}'ÚoperatorÚversion)Ú_regexÚsearchr ÚformatÚgroupÚstripÚ_specÚ_prereleases)r Úspecr Úmatchr r r Ú__init__R s þz_IndividualSpecifier.__init__c C s0 | j d k rd | j¡nd}d | jjt| ƒ|¡S )Nú, prereleases={0!r}r( z<{0}({1!r}{2})>)r1 r- r Ú __class__r Ústr©r Zprer r r Ú__repr___ s ÿýýz_IndividualSpecifier.__repr__c C s dj | jŽ S )Nz{0}{1})r- r0 r r r r r l s z_IndividualSpecifier.__str__c C s t | jƒS ©N)Úhashr0 r r r r r o s z_IndividualSpecifier.__hash__c C sP t |tƒr4z| |¡}W qD tk r0 t Y S X nt || jƒsDtS | j|jkS r: ©Ú isinstancer r6 r ÚNotImplementedr0 r r r r r r s z_IndividualSpecifier.__eq__c C sP t |tƒr4z| |¡}W qD tk r0 t Y S X nt || jƒsDtS | j|jkS r: r<