a
ljd @ s d dl mZmZmZmZmZ d dlmZ d dlm Z m
Z
d dlmZm
Z
d dlmZmZ d dlmZ d dlmZ eed ee f Zeee
f Zeee ed d
dZG dd
d
ZG dd dZededddZG dd dZdS ) ) FrozenSetIterableOptionalTupleUnion)SpecifierSet)NormalizedNamecanonicalize_name)
LegacyVersionVersion)Linklinks_equivalent)InstallRequirement)Hashes Candidate)projectextrasreturnc C s, |s| S t dd |D }d| d|S )Nc s s | ]}t |V qd S N)r ).0e r L/usr/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/base.py zformat_name..z{}[{}],)sortedformatjoin)r r Zcanonical_extrasr r r format_name s r c @ sx e Zd Zeeee ddddZed dddZ ee
d dd d
ZedddZ
e
d d
ddZdedddZdS )
ConstraintN) specifierhasheslinksr c C s || _ || _|| _d S r )r! r" r# )selfr! r" r# r r r __init__ s zConstraint.__init__r c C s t t t t S r )r r r frozenset)clsr r r empty s zConstraint.empty)ireqr c C s. |j rt|j gnt }t|j|jdd|S NF)Ztrust_internet)linkr' r r! r" )r( r* r# r r r from_ireq" s zConstraint.from_ireqc C s t | jpt | jpt | jS r )boolr! r" r# r$ r r r __bool__' s zConstraint.__bool__)otherr c C sR t |tstS | j|j@ }| j|jdd@ }| j}|jrF||jg}t|||S r+ )
isinstancer NotImplementedr! r" r# r, unionr )r$ r1 r! r" r# r r r __and__* s
zConstraint.__and__r candidater c s4 | j r"t fdd| j D s"dS | jj jddS )Nc 3 s | ]}t | V qd S r )_match_link)r r, r7 r r r 6 r z-Constraint.is_satisfied_by..FT)Zprereleases)r# allr! containsversionr$ r7 r r9 r is_satisfied_by4 s zConstraint.is_satisfied_by)__name__
__module____qualname__r r r r r% classmethodr) r r- r. r0 r5 r> r r r r r s
r c @ s\ e Zd ZeedddZeedddZdeddd Z e
dd
dZeddd
ZdS )Requirementr&