HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-311.pyc
�

�mi�	�L�ddlmZddlZddlmZddlmZmZmZm	Z	m
Z
mZmZm
Z
mZmZed��Zed��Zed��Zee	eege	effZer6dd	lmZGd
�deeeef��ZGd�d
eeeeef��Znedddg��Zed
gd���ZGd�dee��ZGd�deee
efeeeef��ZGd�de	e��ZGd�de	e��Zdd�Ze	ZdS)�)�annotationsN)�
namedtuple)
�
TYPE_CHECKING�Callable�Generic�Iterable�Iterator�Mapping�
NamedTuple�Sequence�TypeVar�Union�KT�RT�CT�)�	Criterionc�$�eZdZUded<ded<dS)�RequirementInformationr�requirementz	CT | None�parentN)�__name__�
__module__�__qualname__�__annotations__���@D:\Python311\Lib\site-packages\pip/_vendor/resolvelib/structs.pyrrs'����������������rrc�2�eZdZUdZded<ded<ded<dS)	�StatezResolution state in a round.zdict[KT, CT]�mappingzdict[KT, Criterion[RT, CT]]�criteriaz$list[RequirementInformation[RT, CT]]�backtrack_causesN)rrr�__doc__rrrrr r s<�������*�*�����-�-�-�-�>�>�>�>�>�>rr rr)r!r"r#c�r�eZdZdZdd�Zdd�Zdd�Zdd�Zdd�Zdd�Z	dd�Z
d d�Zd!d�Zd"d�Z
d#d�Zd#d�ZdS)$�
DirectedGraphz&A graph structure with directed edges.�return�Nonec�H�t��|_i|_i|_dS�N)�set�	_vertices�	_forwards�
_backwards��selfs r�__init__zDirectedGraph.__init__0s��"%�%�%���,.���-/����r�Iterator[KT]c�*�t|j��Sr*)�iterr,r/s r�__iter__zDirectedGraph.__iter__5����D�N�#�#�#r�intc�*�t|j��Sr*)�lenr,r/s r�__len__zDirectedGraph.__len__8s���4�>�"�"�"r�keyr�boolc��||jvSr*)r,�r0r;s  r�__contains__zDirectedGraph.__contains__;s���d�n�$�$r�DirectedGraph[KT]c��t|����}t|j��|_d�|j���D��|_d�|j���D��|_|S)z$Return a shallow copy of this graph.c�4�i|]\}}|t|����Sr�r+��.0�k�vs   r�
<dictcomp>z&DirectedGraph.copy.<locals>.<dictcomp>Bs$��H�H�H���A�1�c�!�f�f�H�H�Hrc�4�i|]\}}|t|����SrrCrDs   rrHz&DirectedGraph.copy.<locals>.<dictcomp>Cs$��J�J�J�$�!�Q�A�s�1�v�v�J�J�Jr)�typer+r,r-�itemsr.)r0�others  r�copyzDirectedGraph.copy>sp����T�
�
�����d�n�-�-���H�H���1E�1E�1G�1G�H�H�H���J�J�$�/�2G�2G�2I�2I�J�J�J����rc���||jvrtd���|j�|��t��|j|<t��|j|<dS)zAdd a new vertex to the graph.z
vertex existsN)r,�
ValueError�addr+r-r.r>s  rrPzDirectedGraph.addFs[���$�.� �	.��_�-�-�-�����3����!�e�e���s��"�u�u������rc�.�|j�|��|j�|��D]"}|j|�|���#|j�|��D]"}|j|�|���#dS)zCRemove a vertex from the graph, disconnecting all edges from/to it.N)r,�remover-�popr.)r0r;�f�ts    rrRzDirectedGraph.removeNs�������c�"�"�"���#�#�C�(�(�	+�	+�A��O�A��%�%�c�*�*�*�*���$�$�S�)�)�	*�	*�A��N�1��$�$�S�)�)�)�)�	*�	*rrTrUc�>�||j|vo||j|vSr*)r.r-�r0rTrUs   r�	connectedzDirectedGraph.connectedVs%���D�O�A�&�&�A�1���q�0A�+A�Arc��||jvrt|���|j|�|��|j|�|��dS)zgConnect two existing vertices.

        Nothing happens if the vertices are already connected.
        N)r,�KeyErrorr-rPr.rWs   r�connectzDirectedGraph.connectYs[��

�D�N�"�	��1�+�+����q����a� � � �������q�!�!�!�!�!r�Iterator[tuple[KT, KT]]c#�^K�|j���D]\}}|D]}||fV��	�dSr*)r-rK)r0rT�childrenrUs    r�
iter_edgeszDirectedGraph.iter_edgescsT�����>�/�/�1�1�	�	�K�A�x��
�
����d�
�
�
�
�
�	�	rc�6�t|j|��Sr*)r4r-r>s  r�
iter_childrenzDirectedGraph.iter_childrenhs���D�N�3�'�(�(�(rc�6�t|j|��Sr*)r4r.r>s  r�iter_parentszDirectedGraph.iter_parentsks���D�O�C�(�)�)�)rN)r'r(�r'r2�r'r7)r;rr'r<)r'r@)r;rr'r()rTrrUrr'r<)rTrrUrr'r()r'r\)r;rr'r2)rrrr$r1r5r:r?rMrPrRrXr[r_rarcrrrr&r&-s������0�0�0�0�0�0�
$�$�$�$�#�#�#�#�%�%�%�%�����%�%�%�%�*�*�*�*�B�B�B�B�"�"�"�"�����
)�)�)�)�*�*�*�*�*�*rr&c�J�eZdZ	ddd
�Zdd�Zdd�Zdd�Zdd�Zd d�Zd!d�Z	dS)"�IteratorMappingNr!�Mapping[KT, RT]�accessor�Callable[[RT], Iterable[CT]]�appends� Mapping[KT, Iterable[CT]] | Noner'r(c�4�||_||_|pi|_dSr*)�_mapping�	_accessor�_appends)r0r!rirks    rr1zIteratorMapping.__init__ps!�� ��
�!���3:�=�b��
�
�
r�strc�N�d�|j|j|j��S)Nz!IteratorMapping({!r}, {!r}, {!r}))�formatrnrorpr/s r�__repr__zIteratorMapping.__repr__zs)��2�9�9��M��N��M�
�
�	
rr<c�8�t|jp|j��Sr*)r<rnrpr/s r�__bool__zIteratorMapping.__bool__�s���D�M�2�T�]�3�3�3rr;�objectc�&�||jvp||jvSr*)rnrpr>s  rr?zIteratorMapping.__contains__�s���d�m�#�;�s�d�m�';�;rrFr�Iterator[CT]c��	|j|}n*#t$rt|j|��cYSwxYwt	j|�|��|j�|d����S)Nr)rnrZr4rp�	itertools�chainro�get)r0rFrGs   r�__getitem__zIteratorMapping.__getitem__�s{��	*��
�a� �A�A���	*�	*�	*���
�a�(�)�)�)�)�)�	*������t�~�~�a�0�0�$�-�2C�2C�A�r�2J�2J�K�K�Ks�
�$7�7r2c�^���fd��jD��}tj�j|��S)Nc3�.�K�|]}|�jv�|V��dSr*�rn�rErFr0s  �r�	<genexpr>z+IteratorMapping.__iter__.<locals>.<genexpr>�s/�����C�C�a�A�T�]�,B�C��C�C�C�C�C�Cr)rpr{r|rn�r0�mores` rr5zIteratorMapping.__iter__�s2���C�C�C�C�4�=�C�C�C����t�}�d�3�3�3rr7c�r��t�fd��jD����}t�j��|zS)Nc3�.�K�|]}|�jv�dV��dS)rNr�r�s  �rr�z*IteratorMapping.__len__.<locals>.<genexpr>�s/�����F�F��q��
�/E�F�1�F�F�F�F�F�Fr)�sumrpr9rnr�s` rr:zIteratorMapping.__len__�s<����F�F�F�F�d�m�F�F�F�F�F���4�=�!�!�D�(�(rr*)r!rhrirjrkrlr'r(�r'rq�r'r<)r;rwr'r<)rFrr'ryrdre)
rrrr1rtrvr?r~r5r:rrrrgrgos�������
59�	A�A�A�A�A�
�
�
�
�4�4�4�4�<�<�<�<�L�L�L�L�4�4�4�4�)�)�)�)�)�)rrgc�2�eZdZdZdd�Zdd�Zdd
�Zdd�Zd
S)�_FactoryIterableViewa:Wrap an iterator factory returned by `find_matches()`.

    Calling `iter()` on this class would invoke the underlying iterator
    factory, making it a "collection with ordering" that can be iterated
    through multiple times, but lacks random access methods presented in
    built-in Python sequence types.
    �factory�Callable[[], Iterable[RT]]r'r(c�"�||_d|_dSr*)�_factory�	_iterable)r0r�s  rr1z_FactoryIterableView.__init__�s����
�.2����rrqc�P�t|��j�dt|���d�S�N�(�))rJr�listr/s rrtz_FactoryIterableView.__repr__�s(���t�*�*�%�5�5��T�
�
�5�5�5�5rr<c�d�	tt|����n#t$rYdSwxYwdS)NFT)�nextr4�
StopIterationr/s rrvz_FactoryIterableView.__bool__�sE��	���d���������	�	�	��5�5�	�����ts��
-�-�Iterator[RT]c��|j�|���n|j}tj|��\|_}|Sr*)r�r�r{�tee)r0�iterable�currents   rr5z_FactoryIterableView.__iter__�s7��&*�n�P�4�=�=�?�?�?�$�.��"+�-��"9�"9������rN)r�r�r'r(r�r��r'r��rrrr$r1rtrvr5rrrr�r��sn��������3�3�3�3�6�6�6�6����������rr�c�2�eZdZdZd
d�Zdd�Zdd	�Zdd�ZdS)�_SequenceIterableViewz�Wrap an iterable returned by find_matches().

    This is essentially just a proxy to the underlying sequence that provides
    the same interface as `_FactoryIterableView`.
    �sequence�Sequence[RT]c��||_dSr*)�	_sequence)r0r�s  rr1z_SequenceIterableView.__init__�s
��!����rr'rqc�@�t|��j�d|j�d�Sr�)rJrr�r/s rrtz_SequenceIterableView.__repr__�s$���t�*�*�%�9�9���9�9�9�9rr<c�*�t|j��Sr*)r<r�r/s rrvz_SequenceIterableView.__bool__�r6rr�c�*�t|j��Sr*)r4r�r/s rr5z_SequenceIterableView.__iter__�r6rN)r�r�r�r�r�r�rrrr�r��sn��������"�"�"�"�:�:�:�:�$�$�$�$�$�$�$�$�$�$rr��matches�Matches[CT]r'�Iterable[CT]c��t|��rt|��St|t��st	|��}t|��S)zCBuild an iterable view from the value returned by `find_matches()`.)�callabler��
isinstancerr�r�)r�s r�build_iter_viewr��sK������-�#�G�,�,�,��g�x�(�(� ��w�-�-�� ��)�)�)r)r�r�r'r�)�
__future__rr{�collectionsr�typingrrrrr	r
rrr
rrrr�Matches�resolvers.criterionrrr r&rgr�r�r��IterableViewrrr�<module>r�s���"�"�"�"�"�"�����"�"�"�"�"�"�������������������������
�W�T�]�]���W�T�]�]���W�T�]�]��
����h�r�8�B�<�'7�8�8�
9���M�.�.�.�.�.�.�������W�R��V�_����?�?�?�?�?�
�G�B��B�J�/�?�?�?�?�(�Z� �=�(�";����
�J�w� K� K� K�L�L�E�?*�?*�?*�?*�?*�G�B�K�?*�?*�?*�D%)�%)�%)�%)�%)�g�b�(�2�,�.�/���R���1D�%)�%)�%)�P�����8�B�<����:$�$�$�$�$�H�R�L�$�$�$�(*�*�*�*����r