Ë
    ��h¿P  ã                  ó0  — d dl mZ d dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
 ddlmZmZmZmZmZmZmZmZmZ ddlmZmZ ddlmZ dd	lmZmZmZmZmZ erdd
l m!Z!m"Z" ddl#m$Z$ dd„Z% G d„ deeeef   «      Z& G d„ deeeef   «      Z'	 	 	 	 	 	 	 	 	 	 dd„Z(y)é    )ÚannotationsN)ÚTYPE_CHECKINGÚ
CollectionÚGenericÚIterableÚMappingé   )	ÚCTÚKTÚRTÚDirectedGraphÚIterableViewÚIteratorMappingÚRequirementInformationÚStateÚbuild_iter_viewé   )ÚAbstractResolverÚResult)Ú	Criterion)ÚInconsistentCandidateÚRequirementsConflictedÚResolutionImpossibleÚResolutionTooDeepÚResolverException)ÚAbstractProviderÚ
Preference)ÚBaseReporterc                ó´  — | j                   }|j                  «       D ��ci c]  \  }}t        |«      |“Œ }}}d |t        d «      <   t        «       }|j	                  d «       d h}| j
                  j                  «       D ]~  \  }}t        | j
                  |||«      sŒ||vr|j	                  |«       |j                  «       D ]8  }		 |t        |	«         }
|
|vr|j	                  |
«       |j                  |
|«       Œ: Œ€ t        |j                  «       D ��ci c]  \  }}||v sŒ||“Œ c}}|| j
                  ¬«      S c c}}w # t        $ r Y Œ�w xY wc c}}w )N)ÚmappingÚgraphÚcriteria)r    ÚitemsÚidr   Úaddr"   Ú_has_route_to_rootÚiter_parentÚKeyErrorÚconnectr   )Ústater    ÚkÚvÚall_keysr!   Ú	connectedÚkeyÚ	criterionÚpÚpkeys              úi/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers/resolution.pyÚ_build_resultr4   "   sF  € Ø�m‰m€GØ;B¿=¹=»?×%K±4°1°a¤b¨£e¨Q¡hÐ%K€HÑ%KØ€HŒR�‹XÑä&3£o€EØ	‡I�Iˆd„Oà!% €IØŸ.™.×.Ñ.Ó0ò %‰ˆˆYÜ! %§.¡.°#°xÀÔKØØ�eÑØ�I‰I�cŒNØ×&Ñ&Ó(ò 	%ˆAðØ¤ 1£‘�ð ˜5Ñ Ø—	‘	˜$”Ø�M‰M˜$ Õ$ñ	%ð%ô Ø")§-¡-£/×D™$˜!˜Q°Q¸)²^��A‘ÓDØØ—‘ôð ùó+ &Løô ò Ùðüó Es#    D?ÃEÄE
Ä%E
Å	EÅEc                  óÆ   — e Zd ZdZ	 	 	 	 	 	 dd„Ze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dd„Z	 	 	 	 dd„Zdd„Zy)Ú
Resolutionz­Stateful resolution object.

    This is designed as a one-off object that holds information to kick start
    the resolution process, and holds the results afterwards.
    c                ó.   — || _         || _        g | _        y ©N)Ú_pÚ_rÚ_states)ÚselfÚproviderÚreporters      r3   Ú__init__zResolution.__init__G   s   € ð
 ˆŒØˆŒØ02ˆ�ó    c                ó\   — 	 | j                   d   S # t        $ r}t        d«      |‚d }~ww xY w)Néÿÿÿÿr*   )r;   Ú
IndexErrorÚAttributeError)r<   Úes     r3   r*   zResolution.stateP   s3   € ð	1Ø—<‘< Ñ#Ð#øÜò 	1Ü  Ó)¨qÐ0ûð	1ús   ‚ ‘	+š&¦+c                óî   — | j                   d   }t        |j                  j                  «       |j                  j                  «       |j
                  dd ¬«      }| j                   j                  |«       y)z‰Push a new state into history.

        This new state will be used to hold resolution results of the next
        coming round.
        rB   N©r    r"   Úbacktrack_causes)r;   r   r    Úcopyr"   rH   Úappend)r<   Úbaser*   s      r3   Ú_push_new_statezResolution._push_new_stateW   s^   € ð �|‰|˜BÑˆÜØ—L‘L×%Ñ%Ó'Ø—]‘]×'Ñ'Ó)Ø!×2Ñ2±1Ð5ô
ˆð
 	�‰×Ñ˜EÕ"r@   c           
     óp  — | j                   j                  ||¬«       | j                  j                  |¬«      }|j	                  |«      }|rt        |j                  «      }ng }| j                  j                  |t        |t        j                  d«      ||gi«      t        |t        j                  d«      ||i«      ¬«      }|r1t        |j                  «      }|j                  t        ||«      «       nt        ||«      g}t        t!        |«      ||¬«      }|j"                  st%        |«      ‚|||<   y )N)ÚrequirementÚparent)Úrequirement_or_candidateÚiter_requirementÚincompatibilities©Ú
identifierÚrequirementsrR   ©Ú
candidatesÚinformationrR   )r:   Úadding_requirementr9   ÚidentifyÚgetÚlistrR   Úfind_matchesr   ÚoperatorÚmethodcallerÚ
attrgetterrX   rJ   r   r   r   rW   r   )	r<   r"   rN   rO   rT   r0   rR   ÚmatchesrX   s	            r3   Ú_add_to_criteriazResolution._add_to_criteriae   s1  € ð 	�‰×"Ñ"¨{À6Ð"ÔJà—W‘W×%Ñ%¸{Ð%ÓKˆ
Ø—L‘L Ó,ˆ	ÙÜ $ Y×%@Ñ%@Ó AÑà "Ðà—'‘'×&Ñ&Ø!Ü(ØÜ×%Ñ%Ð&8Ó9Ø˜k˜]Ð+óô
 .ØÜ×#Ñ#Ð$7Ó8ØÐ.Ð/óð 'ó 
ˆñ Ü˜y×4Ñ4Ó5ˆKØ×ÑÔ5°kÀ6ÓJÕKä1°+¸vÓFÐGˆKäÜ& wÓ/Ø#Ø/ô
ˆ	ð
 ×#Ò#Ü(¨Ó3Ð3Ø(ˆ�Òr@   c           
     ó"  — |sy|j                  «       D ]t  \  }}t        |j                  |j                  D �cg c]7  }|j                  �'| j
                  j                  |j                  «      |vr|‘Œ9 c}|j                  «      ||<   Œv yc c}w )aW  Remove information from parents of criteria.

        Concretely, removes all values from each criterion's ``information``
        field that have one of ``parents`` as provider of the requirement.

        :param criteria: The criteria to update.
        :param parents: Identifiers for which to remove information from all criteria.
        N)r#   r   rW   rX   rO   r9   rZ   rR   )r<   r"   Úparentsr/   r0   rX   s         r3   Ú!_remove_information_from_criteriaz,Resolution._remove_information_from_criteria‘   s’   € ñ ØØ&Ÿn™nÓ.ò 	‰NˆC�Ü%Ø×$Ñ$ð (1×'<Ñ'<öà#à#×*Ñ*Ð2ØŸ7™7×+Ñ+¨K×,>Ñ,>Ó?ÀwÑNò	  òð ×+Ñ+óˆH�SŠMñ	ùòs   ¸<Bc                óV  — | j                   j                  || j                  j                  t	        | j                  j
                  t        j                  d«      «      t	        | j                  j
                  t        j                  d«      «      | j                  j                  ¬«      S )NrW   rX   )rT   ÚresolutionsrW   rX   rH   )	r9   Úget_preferencer*   r    r   r"   r^   r`   rH   )r<   Únames     r3   Ú_get_preferencezResolution._get_preference¬   s…   € Ø�w‰w×%Ñ%ØØŸ
™
×*Ñ*Ü&Ø—
‘
×#Ñ#Ü×#Ñ# LÓ1óô (Ø—
‘
×#Ñ#Ü×#Ñ# MÓ2óð "ŸZ™Z×8Ñ8ð &ó 
ð 	
r@   c                óž   ‡ ‡— 	 ‰ j                   j                  |   Št        ˆˆ fd„|j	                  «       D «       «      S # t        $ r Y yw xY w)NFc              3  óX   •K  — | ]!  }‰j                   j                  |‰¬ «      –— Œ# y­w©)rN   Ú	candidateN©r9   Úis_satisfied_by)Ú.0ÚrÚcurrent_pinr<   s     €€r3   ú	<genexpr>z8Resolution._is_current_pin_satisfying.<locals>.<genexpr>Â   s-   øè ø€ ò 
àð �G‰G×#Ñ#°¸[Ð#×Iñ
ùó   ƒ'*)r*   r    r(   ÚallrQ   )r<   ri   r0   rs   s   `  @r3   Ú_is_current_pin_satisfyingz%Resolution._is_current_pin_satisfying»   sU   ù€ ð	ØŸ*™*×,Ñ,¨TÑ2ˆKô ô 
à×/Ñ/Ó1ô
ó 
ð 	
øô ò 	Ùð	ús   „A  Á 	AÁAc                ó¸   — | j                   j                  j                  «       }| j                  j	                  |¬«      D ]  }| j                  |||¬«       Œ |S )N©rn   ©rO   )r*   r"   rI   r9   Úget_dependenciesrb   )r<   rn   r"   rN   s       r3   Ú_get_updated_criteriaz Resolution._get_updated_criteriaÇ   sW   € Ø—:‘:×&Ñ&×+Ñ+Ó-ˆØŸ7™7×3Ñ3¸iÐ3ÓHò 	KˆKØ×!Ñ! (¨KÀ	Ð!ÕJð	Kàˆr@   c                óž  ‡ ‡— ‰ j                   j                  |   }g }|j                  D ]È  Š	 ‰ j                  ‰«      }t        ˆˆ fd„|j                  «       D «       «      }|st        ‰|«      ‚‰ j
                  j                  ‰¬«       ‰ j                   j                  j                  |«       ‰ j                   j                  j                  |d «       ‰‰ j                   j                  |<   g c S  |S # t        $ rL}‰ j
                  j                  |j                  ‰«       |j                  |j                  «       Y d }~�Œd }~ww xY w)Nc              3  óX   •K  — | ]!  }‰j                   j                  |‰¬ «      –— Œ# y­wrm   ro   )rq   rr   rn   r<   s     €€r3   rt   z7Resolution._attempt_to_pin_criterion.<locals>.<genexpr>Ý   s-   øè ø€ ò àð —‘×'Ñ'°AÀÐ'×Kñùru   ry   )r*   r"   rW   r|   r   r:   Úrejecting_candidater0   rJ   rv   rQ   r   ÚpinningÚupdater    Úpop)r<   ri   r0   Úcausesr"   rE   Ú	satisfiedrn   s   `      @r3   Ú_attempt_to_pin_criterionz$Resolution._attempt_to_pin_criterionÍ   s  ù€ Ø—J‘J×'Ñ'¨Ñ-ˆ	à*,ˆØ"×-Ñ-ò 	ˆIðØ×5Ñ5°iÓ@�ô ô à"×3Ñ3Ó5ôó ˆIñ Ü+¨I°yÓAÐAà�G‰G�O‰O iˆOÔ0Ø�J‰J×Ñ×&Ñ& xÔ0ð �J‰J×Ñ×"Ñ" 4¨Ô.Ø'0ˆD�J‰J×Ñ˜tÑ$àŠIð7	ð> ˆøô9 *ò Ø—‘×+Ñ+¨A¯K©K¸ÔCØ—‘˜aŸk™kÔ*Ýûðús   ®C7Ã7	EÄ AEÅEc                ó@  — |D �]  \  }}|sŒ
	 | j                   j                  |   }| j                  j	                  |t        | j                   j                  t        j                  d«      «      t        | j                   j                  t        j                  d«      ||i«      ¬«      }t        |«      }|s y|j                  |j                  «       t        |t        |j                  «      |¬«      | j                   j                  |<   �Œ y# t        $ r Y �Œw xY w)NrQ   rR   rS   FrV   T)r*   r"   r(   r9   r]   r   r^   r_   r`   r   ÚextendrR   r   r\   rX   )r<   Úincompatibilities_from_brokenr+   rR   r0   ra   rW   s          r3   Ú_patch_criteriazResolution._patch_criteriaò   s  € ð
 %Bó 	Ñ ˆAÐ Ù$ØðØ ŸJ™J×/Ñ/°Ñ2�	ð —g‘g×*Ñ*ØÜ,Ø—J‘J×'Ñ'Ü×)Ñ)Ð*<Ó=óô #2Ø—J‘J×'Ñ'Ü×'Ñ'Ð(;Ó<ØÐ)Ð*ó#ð +ó ˆGô ,;¸7Ó+CˆJÙÙØ×$Ñ$ Y×%@Ñ%@ÔAÜ%.Ø%Ü  ×!6Ñ!6Ó7Ø"3ô&ˆD�J‰J×Ñ Ó"ð/	ð8 øô/ ò Úðús   ŽDÄ	DÄDc                óÂ  — t        j                  d„ |D «       d„ |D «       «      }|D �ch c]  }| j                  j                  |«      ’Œ }}t	        | j
                  «      dk\  �rK| j
                  d= | j                  }	 	 | j
                  j                  «       }|j                  j                  «       \  }}||vrna| j                  j                  |«      D �ch c]  }| j                  j                  |«      ’Œ }	}|	j                  |«      sn|j                  snŒž|j                  j!                  «       D �
�cg c]  \  }
}|
t#        |j$                  «      f‘Œ }}
}|j'                  ||gf«       | j)                  «        | j+                  |«      }|ryt	        | j
                  «      dk\  r�ŒKyc c}w # t        t        f$ r t        |«      d‚w xY wc c}w c c}}
w )a2  Perform backjumping.

        When we enter here, the stack is like this::

            [ state Z ]
            [ state Y ]
            [ state X ]
            .... earlier states are irrelevant.

        1. No pins worked for Z, so it does not have a pin.
        2. We want to reset state Y to unpinned, and pin another candidate.
        3. State X holds what state Y was before the pin, but does not
           have the incompatibility information gathered in state Y.

        Each iteration of the loop will:

        1.  Identify Z. The incompatibility is not always caused by the latest
            state. For example, given three requirements A, B and C, with
            dependencies A1, B1 and C1, where A1 and B1 are incompatible: the
            last state might be related to C, so we want to discard the
            previous state.
        2.  Discard Z.
        3.  Discard Y but remember its incompatibility information gathered
            previously, and the failure we're dealing with right now.
        4.  Push a new state Y' based on X, and apply the incompatibility
            information from Y to Y'.
        5a. If this causes Y' to conflict, we need to backtrack again. Make Y'
            the new Z and go back to step 2.
        5b. If the incompatibilities apply cleanly, end backtracking.
        c              3  óN   K  — | ]  }|j                   €Œ|j                   –— Œ y ­wr8   rz   ©rq   Úcs     r3   rt   z'Resolution._backjump.<locals>.<genexpr>5  s   è ø€ Ò>˜!¨¯©Ñ)=ˆQ�X�XÑ>ùs   ‚%”%c              3  ó4   K  — | ]  }|j                   –— Œ y ­wr8   )rN   rŒ   s     r3   rt   z'Resolution._backjump.<locals>.<genexpr>6  s   è ø€ Ò+˜qˆQ�]�]Ñ+ùs   ‚é   rB   TNF)Ú	itertoolsÚchainr9   rZ   Úlenr;   r*   r‚   r    ÚpopitemrC   r(   r   r{   Ú
isdisjointr"   r#   r\   rR   rJ   rL   r‰   )r<   rƒ   Úincompatible_reqsrr   Úincompatible_depsÚbroken_stateri   rn   ÚdÚcurrent_dependenciesr+   r,   rˆ   Úsuccesss                 r3   Ú	_backjumpzResolution._backjump  sà  € ô> 09¯©Ù>˜vÔ>Ù+ FÔ+ó0
Ðð ;LÖL°Q˜TŸW™W×-Ñ-¨aÕ0ÐLÐÐLÜ�$—,‘,Ó 1Ó$à—‘˜RÐ ð  Ÿ:™:ˆLØðAØ#'§<¡<×#3Ñ#3Ó#5�LØ&2×&:Ñ&:×&BÑ&BÓ&D‘O�D˜)ð Ð0Ñ0Øð
 26·±×1IÑ1IÈ)Ó1Tö(Ø,-�D—G‘G×$Ñ$ QÕ'ð(Ð$ð (ð ,×6Ñ6Ð7HÔIØð
 $×+Ò+Øð3 ð8 <H×;PÑ;P×;VÑ;VÓ;X÷-Ù37°1°a�”D˜×,Ñ,Ó-Ò.ð-Ð)ñ -ð
 *×0Ñ0°$¸¸Ð1DÔEà× Ñ Ô"Ø×*Ñ*Ð+HÓIˆGñ Øô[ �$—,‘,Ó 1Ô$ðf ùòi Møô #¤HÐ-ò AÜ.¨vÓ6¸DÐ@ðAüò(ùó-s   ©"F2Â7F7 Ã"GÄ;!GÆ7Gc           
     ó–   — t        |D ��ci c]  }|j                  D ]  }t        |«      |“Œ Œ! c}}j                  «       «      S c c}}w )z5Extract causes from list of criterion and deduplicate)r\   rX   r$   Úvalues)r<   Úcriteronr�   Úis       r3   Ú_extract_causeszResolution._extract_causesn  s>   € ô  x×G !¸¿¹ÒG°A”R˜“U˜A‘XÐG�UÓG×NÑNÓPÓQÐQùÓGs   ‹$A
c                óê  — | j                   rt        d«      ‚| j                  j                  «        t	        t        j                  «       i g ¬«      g| _         |D ]+  }	 | j                  | j                  j                  |d ¬«       Œ- | j                  «        t        |«      D �]  }| j                  j!                  |¬«       | j                  j                  j#                  «       D ��cg c]  \  }}| j%                  ||«      s|‘Œ }}}|s4| j                  j'                  | j                  ¬«       | j                  c S t)        | j                  j                  j+                  «       «      t)        |«      z
  }	t-        |«      dkD  r´t/        | j0                  j3                  || j                  j4                  t7        | j                  j                  t9        j:                  d«      «      t7        | j                  j                  t9        j:                  d«      «      | j                  j<                  ¬	«      «      }
n|}
|
st        d
«      ‚t-        |
«      dkD  rt?        |
| j@                  ¬«      }n|
d   }| jC                  |«      }|rx| jE                  |«      }| j                  jG                  |¬«       | jI                  |«      }|| j                  j<                  d d  |s¡t        | j                  j<                  «      ‚| j                  j                  j#                  «       D ��ch c]  \  }}||	v r| j%                  ||«      s|’Œ }}}| jK                  | j                  j                  |«       | j                  «        | j                  jM                  || j                  ¬«       �Œ	 tO        |«      ‚# t        $ r%}t        |j                  j                  «      |‚d }~ww xY wc c}}w c c}}w )Nzalready resolvedrG   rz   )Úindex)r*   r   rW   rX   )Úidentifiersrg   rW   rX   rH   z-narrow_requirement_selection returned 0 names)r/   r   )rƒ   )r¢   r*   )(r;   ÚRuntimeErrorr:   Ústartingr   ÚcollectionsÚOrderedDictrb   r*   r"   r   r   r0   rX   rL   ÚrangeÚstarting_roundr#   rw   ÚendingÚsetÚkeysr’   r\   r9   Únarrow_requirement_selectionr    r   r^   r`   rH   Úminrj   r…   r    Úresolving_conflictsr›   re   Úending_roundr   )r<   rU   Ú
max_roundsrr   rE   Úround_indexr/   r0   Úunsatisfied_namesÚsatisfied_namesÚnarrowed_unstatisfied_namesri   Úfailure_criterionrƒ   rš   Únewly_unsatisfied_namess                   r3   ÚresolvezResolution.resolvet  s†  € Ø�<Š<ÜÐ1Ó2Ð2à�‰×ÑÔô Ü#×/Ñ/Ó1ØØ!#ôð
ˆŒð ò 	KˆAðKØ×%Ñ% d§j¡j×&9Ñ&9¸1ÀTÐ%ÕJð	Kð 	×ÑÔä  Ó,ó K	FˆKØ�G‰G×"Ñ"¨Ð"Ô5ð '+§j¡j×&9Ñ&9×&?Ñ&?Ó&A÷!á"�C˜Ø×6Ñ6°s¸IÔFò ð!Ðñ !ñ %Ø—‘—‘ T§Z¡Z�Ô0Ø—z‘zÒ!ô " $§*¡*×"5Ñ"5×":Ñ":Ó"<Ó=ÄÐDUÓ@VÑVˆOäÐ$Ó%¨Ò)Ü.2Ø—G‘G×8Ñ8Ø$5Ø$(§J¡J×$6Ñ$6Ü#2Ø ŸJ™J×/Ñ/Ü$×/Ñ/°Ó=ó$ô %4Ø ŸJ™J×/Ñ/Ü$×/Ñ/°Ó>ó%ð *.¯©×)DÑ)Dð 9ó ó/Ñ+ð  /@Ð+ñ /Ü"Ð#RÓSÐSô Ð.Ó/°!Ò3äÐ6¸D×<PÑ<PÔQ‘à2°1Ñ5�à $× >Ñ >¸tÓ DÐá Ø×-Ñ-Ð.?Ó@�ð —‘×+Ñ+°6Ð+Ô:ØŸ.™.¨Ó0�Ø17�—
‘
×+Ñ+©AÐ.ñ Ü.¨t¯z©z×/JÑ/JÓKÐKð +/¯*©*×*=Ñ*=×*CÑ*CÓ*E÷+á&˜˜YØ˜oÑ-Ø ×;Ñ;¸CÀÔKò ð+Ð'ñ +ð ×6Ñ6Ø—J‘J×'Ñ'Ð)@ôð ×$Ñ$Ô&à�G‰G× Ñ  {¸$¿*¹*Ð ÖEðWK	FôZ   
Ó+Ð+øôk *ò KÜ*¨1¯;©;×+BÑ+BÓCÈÐJûðKüó!ùóx+s$   Á(N8Ã*O)Ì("O/Î8	O&Ï O!Ï!O&N)r=   zAbstractProvider[RT, CT, KT]r>   zBaseReporter[RT, CT, KT]ÚreturnÚNone)r¹   úState[RT, CT, KT])r¹   rº   )r"   údict[KT, Criterion[RT, CT]]rN   r   rO   z	CT | Noner¹   rº   )r"   r¼   rd   zCollection[KT]r¹   rº   )ri   r   r¹   r   )ri   r   r0   zCriterion[RT, CT]r¹   Úbool)rn   r
   r¹   r¼   )ri   r   r¹   úlist[Criterion[RT, CT]])rˆ   zlist[tuple[KT, list[CT]]]r¹   r½   )rƒ   ú$list[RequirementInformation[RT, CT]]r¹   r½   )rž   r¾   r¹   r¿   )rU   úIterable[RT]r±   Úintr¹   r»   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r?   Úpropertyr*   rL   rb   re   rj   rw   r|   r…   r‰   r›   r    r¸   © r@   r3   r6   r6   @   sò   „ ñð3à.ð3ð +ð3ð 
ó	3ð ò1ó ð1ó#ð*)à-ð*)ð ð*)ð ð	*)ð
 
ó*)ðXØ3ðØ>Lðà	óó6
ð

Øð

Ø#4ð

à	ó

óó#ðJ!Ø-Fð!à	ó!óFWðrRØ/ðRà	-óRôf,r@   r6   c                  ó*   — e Zd ZdZeZ	 d	 	 	 	 	 dd„Zy)ÚResolverz3The thing that performs the actual resolution work.c                ó~   — t        | j                  | j                  «      }|j                  ||¬«      }t	        |«      S )a  Take a collection of constraints, spit out the resolution result.

        The return value is a representation to the final resolution result. It
        is a tuple subclass with three public members:

        * `mapping`: A dict of resolved candidates. Each key is an identifier
            of a requirement (as returned by the provider's `identify` method),
            and the value is the resolved candidate.
        * `graph`: A `DirectedGraph` instance representing the dependency tree.
            The vertices are keys of `mapping`, and each edge represents *why*
            a particular package is included. A special vertex `None` is
            included to represent parents of user-supplied requirements.
        * `criteria`: A dict of "criteria" that hold detailed information on
            how edges in the graph are derived. Each key is an identifier of a
            requirement, and the value is a `Criterion` instance.

        The following exceptions may be raised if a resolution cannot be found:

        * `ResolutionImpossible`: A resolution cannot be found for the given
            combination of requirements. The `causes` attribute of the
            exception is a list of (requirement, parent), giving the
            requirements that could not be satisfied.
        * `ResolutionTooDeep`: The dependency tree is too deeply nested and
            the resolver gave up. This is usually caused by a circular
            dependency, but you can try to resolve this by increasing the
            `max_rounds` argument.
        )r±   )r6   r=   r>   r¸   r4   )r<   rU   r±   Ú
resolutionr*   s        r3   r¸   zResolver.resolveâ  s9   € ô@   §¡¨t¯}©}Ó=ˆ
Ø×"Ñ" <¸JÐ"ÓGˆÜ˜UÓ#Ð#r@   N)éd   )rU   rÀ   r±   rÁ   r¹   úResult[RT, CT, KT])rÂ   rÃ   rÄ   rÅ   r   Úbase_exceptionr¸   rÇ   r@   r3   rÉ   rÉ   Ý  s0   „ Ù=à&€Nð
 ð"$à"ð"$ð ð"$ð 
ô	"$r@   rÉ   c                óü   — ||v ry|| vry|€J ‚| |   j                  «       D ]I  }	 |t        |«         }||v r|j                  |«        yt	        | |||«      sŒ8|j                  |«        y y# t        $ r Y ŒXw xY w)NTF)r'   r$   r(   r%   r&   )r"   r/   r-   r.   r1   r2   s         r3   r&   r&     s¡   € ð ˆiÑØØ
�(ÑØØˆ?Ðˆ?Ø�c‰]×&Ñ&Ó(ò 
ˆð	ØœB˜q›E‘?ˆDð �9ÑØ�M‰M˜#ÔÙÜ˜h¨¨h¸	ÕBØ�M‰M˜#ÔÙð
ð øô ò 	Ùð	ús   ¦A/Á/	A;Á:A;)r*   r»   r¹   rÍ   )
r"   zMapping[KT, Criterion[RT, CT]]r/   z	KT | Noner-   zdict[int, KT | None]r.   zset[KT | None]r¹   r½   ))Ú
__future__r   r¦   r�   r^   Útypingr   r   r   r   r   Ústructsr
   r   r   r   r   r   r   r   r   Úabstractr   r   r0   r   Ú
exceptionsr   r   r   r   r   Ú	providersr   r   Ú	reportersr   r4   r6   rÉ   r&   rÇ   r@   r3   ú<module>r×      s®   ðÝ "ã Û Û ß HÕ H÷
÷ 
õ 
÷ /Ý  ÷õ ñ ß8Ý(óô<Z,�˜˜R ˜Ñ$ô Z,ôz'$Ð  B¨ 
Ñ+ô '$ðTØ,ðà	ðð #ðð ð	ð
 
ôr@   