HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /lib/python3/dist-packages/setuptools/_vendor/packaging/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/setuptools/_vendor/packaging/__pycache__/specifiers.cpython-311.pyc
�

���c�u�	�n�ddlZddlZddlZddlZddlZddlmZmZmZm	Z	m
Z
mZmZm
Z
mZmZmZddlmZddlmZmZmZeeefZeeeefZede���ZeeegefZGd�d	e��ZGd
�dej���Z Gd
�de ��Z!Gd�de!��Z"dedeegefdedeegeffd�Z#Gd�de!��Z$ej%d��Z&dede
efd�Z'dedefd�Z(de
ede
edee
ee
effd�Z)Gd�de ��Z*dS) �N)�Callable�Dict�Iterable�Iterator�List�Optional�Pattern�Set�Tuple�TypeVar�Union�)�canonicalize_version)�
LegacyVersion�Version�parse�VersionTypeVar)�boundc��eZdZdZdS)�InvalidSpecifierzH
    An invalid specifier was found, users should refer to PEP 440.
    N)�__name__�
__module__�__qualname__�__doc__���I/usr/lib/python3/dist-packages/setuptools/_vendor/packaging/specifiers.pyrr!s���������rrc	�r�eZdZejdefd���Zejdefd���Zejde	de
fd���Zejde
e
fd���Zejde
ddfd	���Zejdd
ede
e
de
fd���Zej	dd
eede
e
deefd���ZdS)�
BaseSpecifier�returnc��dS)z�
        Returns the str representation of this Specifier like object. This
        should be representative of the Specifier itself.
        Nr��selfs r�__str__zBaseSpecifier.__str__(����rc��dS)zF
        Returns a hash value for this Specifier like object.
        Nrr"s r�__hash__zBaseSpecifier.__hash__/r%r�otherc��dS)zq
        Returns a boolean representing whether or not the two Specifier like
        objects are equal.
        Nr�r#r(s  r�__eq__zBaseSpecifier.__eq__5r%rc��dS)zg
        Returns whether or not pre-releases as a whole are allowed by this
        specifier.
        Nrr"s r�prereleaseszBaseSpecifier.prereleases<r%r�valueNc��dS)zd
        Sets whether or not pre-releases as a whole are allowed by this
        specifier.
        Nr�r#r.s  rr-zBaseSpecifier.prereleasesCr%r�itemr-c��dS)zR
        Determines if the given item is contained within this specifier.
        Nr�r#r1r-s   r�containszBaseSpecifier.containsJr%r�iterablec��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#r5r-s   r�filterzBaseSpecifier.filterPr%r�N)rrr�abc�abstractmethod�strr$�intr'�object�boolr+�abstractpropertyrr-�setterr4rrr7rrrrr's�����������������	���#�������
	���F��t�������	���X�d�^������������$�������	����S��x��~���������
	��PT��� ��0��?G��~��	�.�	!��������rr)�	metaclassc���eZdZUiZeeefed<eeed<ddedee	ddfd�Z
defd	�Zdefd
�Ze
deeeffd���Zdefd�Zd
ede	fd�Zdedefd�Zdedefd�Ze
defd���Ze
defd���Ze
dee	fd���Zejde	ddfd���Zdede	fd�Z	ddedee	de	fd�Z	ddee dee	dee fd�Z!dS)�_IndividualSpecifier�
_operators�_regex�N�specr-r c��|j�|��}|std|�d����|�d�����|�d�����f|_||_dS)NzInvalid specifier: '�'�operator�version)rE�searchr�group�strip�_spec�_prereleases)r#rGr-�matchs    r�__init__z_IndividualSpecifier.__init___s�����"�"�4�(�(���	C�"�#A�$�#A�#A�#A�B�B�B�
�K�K�
�#�#�)�)�+�+��K�K�	�"�"�(�(�*�*�'
��
�(����rc�l�|j�
d|j��nd}d|jj�dt	|���|�d�S)N�, prereleases=rF�<�(�)>)rPr-�	__class__rr;�r#�pres  r�__repr__z_IndividualSpecifier.__repr__lsT��� �,�
2�T�-�1�1�1��	�B�4�>�*�A�A�S��Y�Y�A�#�A�A�A�Arc� �dj|j�S)Nz{}{})�formatrOr"s rr$z_IndividualSpecifier.__str__us���v�}�d�j�)�)rc�P�|jdt|jd��fS)Nrr)rOrr"s r�_canonical_specz$_IndividualSpecifier._canonical_specxs"���z�!�}�2�4�:�a�=�A�A�A�Arc�*�t|j��Sr8)�hashr_r"s rr'z_IndividualSpecifier.__hash__|s���D�(�)�)�)rr(c��t|t��r;	|�t|����}n3#t$r
tcYSwxYwt||j��stS|j|jkSr8)�
isinstancer;rXr�NotImplementedr_r*s  rr+z_IndividualSpecifier.__eq__s����e�S�!�!�	"�
&����s�5�z�z�2�2����#�
&�
&�
&�%�%�%�%�
&�����E�4�>�2�2�	"�!�!��#�u�'<�<�<s�":�A�
A�opc�B�t|d|j|����}|S)N�	_compare_)�getattrrD)r#re�operator_callables   r�
_get_operatorz"_IndividualSpecifier._get_operator�s/��.5��3�d�o�b�1�3�3�/
�/
��!� rrKc�\�t|ttf��st|��}|Sr8)rcrrr�r#rKs  r�_coerce_versionz$_IndividualSpecifier._coerce_version�s)���'�M�7�#;�<�<�	%��G�n�n�G��rc��|jdS)Nr�rOr"s rrJz_IndividualSpecifier.operator�����z�!�}�rc��|jdS)Nrror"s rrKz_IndividualSpecifier.version�rprc��|jSr8�rPr"s rr-z _IndividualSpecifier.prereleases�s��� � rr.c��||_dSr8rsr0s  rr-z _IndividualSpecifier.prereleases����!����rr1c�,�|�|��Sr8�r4�r#r1s  r�__contains__z!_IndividualSpecifier.__contains__�����}�}�T�"�"�"rc��|�|j}|�|��}|jr|sdS|�|j��}|||j��S�NF)r-rm�
is_prereleaserjrJrK)r#r1r-�normalized_itemris     rr4z_IndividualSpecifier.contains�sm��
���*�K��.�.�t�4�4��
�(�	��	��5�/3�.@�.@���.O�.O�� � ��$�,�?�?�?rr5c#��K�d}g}d|�|ndi}|D]Q}|�|��}|j|fi|��r,|jr|s|js|�|���Kd}|V��R|s|r|D]
}|V��dSdSdS)NFr-T)rmr4r}r-�append)r#r5r-�yielded�found_prereleases�kwrK�parsed_versions        rr7z_IndividualSpecifier.filter�s����������K�,C�[�[��
N�� �	"�	"�G�!�1�1�'�:�:�N��t�}�^�2�2�r�2�2�
"�"�/�"��"�#'�#3�"�&�,�,�W�5�5�5�5�#�G�!�M�M�M��
�	�,�	�,�
�
���
�
�
�
�	�	�	�	�
�
r�rFNr8)"rrrrDrr;�__annotations__r	rr>rRr[r$�propertyrr_r<r'r=r+�CallableOperatorrj�UnparsedVersion�
ParsedVersionrmrJrKr-r@ryr4rrr7rrrrCrCZs��������!#�J��S�#�X��#�#�#��C�L����(�(�S�(�H�T�N�(�d�(�(�(�(�B�#�B�B�B�B�*��*�*�*�*��B��s�C�x��B�B�B��X�B�*�#�*�*�*�*�	=�F�	=�t�	=�	=�	=�	=�!��!�(8�!�!�!�!����=�����
��#�����X���������X���!�X�d�^�!�!�!��X�!���"��"�$�"�"�"���"�#��#��#�#�#�#�DH�@�@�#�@�2:�4�.�@�	
�@�@�@�@�0QU�!�!� ��0�!�?G��~�!�	�.�	!�!�!�!�!�!�!rrCc� ��eZdZdZejdezdzejejz��Zdddddd	d
�Z	dd
e
deeddf�fd�
Z
dedefd�Zded
e
defd�Zded
e
defd�Zded
e
defd�Zded
e
defd�Zded
e
defd�Zded
e
defd�Z�xZS)�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.
        )
        �^\s*�\s*$�equal�	not_equal�less_than_equal�greater_than_equal�	less_than�greater_than)�==�!=�<=�>=rU�>rFNrGr-r c���t���||��tjdt��dS)NzZCreating a LegacyVersion has been deprecated and will be removed in the next major release)�superrR�warnings�warn�DeprecationWarning)r#rGr-rXs   �rrRzLegacySpecifier.__init__�sC���
������{�+�+�+��
�
0��	
�	
�	
�	
�	
rrKc�h�t|t��stt|����}|Sr8)rcrr;rls  rrmzLegacySpecifier._coerce_versions,���'�=�1�1�	2�#�C��L�L�1�1�G��r�prospectivec�4�||�|��kSr8�rm�r#r�rGs   r�_compare_equalzLegacySpecifier._compare_equal
����d�2�2�4�8�8�8�8rc�4�||�|��kSr8r�r�s   r�_compare_not_equalz"LegacySpecifier._compare_not_equal
r�rc�4�||�|��kSr8r�r�s   r�_compare_less_than_equalz(LegacySpecifier._compare_less_than_equalr�rc�4�||�|��kSr8r�r�s   r�_compare_greater_than_equalz+LegacySpecifier._compare_greater_than_equals���d�2�2�4�8�8�8�8rc�4�||�|��kSr8r�r�s   r�_compare_less_thanz"LegacySpecifier._compare_less_than����T�1�1�$�7�7�7�7rc�4�||�|��kSr8r�r�s   r�_compare_greater_thanz%LegacySpecifier._compare_greater_thanr�rr�)rrr�
_regex_str�re�compile�VERBOSE�
IGNORECASErErDr;rr>rRr�rrmr�r�r�r�r�r��
__classcell__)rXs@rr�r��s��������
�J��R�Z��*�,�w�6��
�R�]�8R�
S�
S�F����"�
�
�
��J�
�
�S�
�H�T�N�
�d�
�
�
�
�
�
����=�����
9�-�9�s�9�t�9�9�9�9�9�m�9�3�9�4�9�9�9�9�9�M�9��9�QU�9�9�9�9�9�(�9�03�9�	
�9�9�9�9�
8�m�8�3�8�4�8�8�8�8�8��8�c�8�d�8�8�8�8�8�8�8�8rr��fn�	Specifierr c	�v��tj���dddtdtdtf�fd���}|S)Nr#r�r�rGr c�L��t|t��sdS�|||��Sr|)rcr)r#r�rGr�s   �r�wrappedz)_require_version_compare.<locals>.wrapped"s.����+�w�/�/�	��5��r�$��T�*�*�*r)�	functools�wrapsr�r;r>)r�r�s` r�_require_version_comparer�s[����_�R���+�k�+�
�+�S�+�T�+�+�+�+�+���+�
�Nrc	���eZdZdZejdezdzejejz��Zdddddd	d
dd�Z	e
d
edede
fd���Ze
d
edede
fd���Ze
d
edede
fd���Ze
d
edede
fd���Ze
d
edede
fd���Ze
d
edede
fd���Ze
d
edede
fd���Zd
edede
fd�Zede
fd���Zejde
ddfd���ZdS)r�a
        (?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
            )
        )
        r�r��
compatibler�r�r�r�r�r��	arbitrary)�~=r�r�r�r�rUr��===r�rGr c
�&�d�ttjtt|������dd���}|dz
}|�d��||��o|�d��||��S)N�.����.*r�r�)�join�list�	itertools�	takewhile�_is_not_suffix�_version_splitrj)r#r�rG�prefixs    r�_compare_compatiblezSpecifier._compare_compatible�s��������$�^�^�D�5I�5I�J�J�K�K�C�R�C�P�
�
��
	�$���'�t�!�!�$�'�'��T�:�:�
�?W�t�?Q�?Q�RV�?W�?W���@
�@
�	
rc�z�|�d��rwt|j��}t|dd���}tt	|����}|dt|���}t
||��\}}||kSt|��}|jst|j��}||kS)Nr����)�endswithr�publicr�r;�len�_pad_version�local)	r#r�rG�
split_spec�split_prospective�shortened_prospective�padded_spec�padded_prospective�spec_versions	         rr�zSpecifier._compare_equal�s����=�=����"	/�!�+�"4�5�5�K�(��S�b�S�	�2�2�J�
!/�s�;�/?�/?� @� @��
%6�6G��J���6G�$H�!�/;��1�/�/�+�K�+�&��4�4�#�4�=�=�L�
 �%�
:�%�k�&8�9�9���,�.�.rc�0�|�||��Sr8)r�r�s   rr�zSpecifier._compare_not_equal�s���&�&�{�D�9�9�9�9rc�L�t|j��t|��kSr8�rr�r�s   rr�z"Specifier._compare_less_than_equal�s ���{�)�*�*�g�d�m�m�;�;rc�L�t|j��t|��kSr8r�r�s   rr�z%Specifier._compare_greater_than_equal�s ���{�)�*�*�g�d�m�m�;�;r�spec_strc��t|��}||ksdS|js3|jr,t|j��t|j��krdSdS�NFT)rr}�base_version�r#r�r�rGs    rr�zSpecifier._compare_less_than�sg��
�x� � ��
�T�!�!��5��!�	�k�&?�	��{�/�0�0�G�D�<M�4N�4N�N�N��u�
�trc��t|��}||ksdS|js3|jr,t|j��t|j��krdS|j�,t|j��t|j��krdSdSr�)r�is_postreleaser�r�r�s    rr�zSpecifier._compare_greater_thans���
�x� � ��
�T�!�!��5��"�	�{�'A�	��{�/�0�0�G�D�<M�4N�4N�N�N��u���(��{�/�0�0�G�D�<M�4N�4N�N�N��u�
�trc��t|�����t|�����kSr8)r;�lowerr�s   r�_compare_arbitraryzSpecifier._compare_arbitrary%s1���;���%�%�'�'�3�t�9�9�?�?�+<�+<�<�<rc��|j�|jS|j\}}|dvr;|dkr|�d��r
|dd�}t|��jrdSdS)N)r�r�r�r�r�r�r�r�TF)rPrOr�rr})r#rJrKs   rr-zSpecifier.prereleases(sz��
��(��$�$�
!�J���'��6�6�6��4���G�$4�$4�T�$:�$:��!�#�2�#�,���W�~�~�+�
��t��urr.Nc��||_dSr8rsr0s  rr-zSpecifier.prereleasesArur)rrrr�r�r�r�r�rErDr�r�r;r>r�r�r�r�r�r�r�rr�r�r-r@rrrr�r�+sm������[�J�z�R�Z��*�,�w�6��
�R�]�8R�
S�
S�F�����"�
�
��	�	�J��
�}�
�C�
�D�
�
�
���
�*�%/�-�%/�s�%/�t�%/�%/�%/���%/�N�:�m�:�3�:�4�:�:�:���:��<�M�<��<�QU�<�<�<���<��<�(�<�03�<�	
�<�<�<���<���m��s��t�������2����#��RV�������>=�g�=�S�=�T�=�=�=�=���T�����X��0��"��"�$�"�"�"���"�"�"rz^([0-9]+)((?:a|b|c|rc)[0-9]+)$rKc���g}|�d��D][}t�|��}|r(|�|������F|�|���\|S)Nr�)�split�
_prefix_regexrL�extend�groupsr�)rK�resultr1rQs    rr�r�Ist���F��
�
�c�"�"� � ���$�$�T�*�*���	 ��M�M�%�,�,�.�.�)�)�)�)��M�M�$������Mr�segmentc�<��t�fd�dD����S)Nc3�B�K�|]}��|��V��dSr8)�
startswith)�.0r�r�s  �r�	<genexpr>z!_is_not_suffix.<locals>.<genexpr>UsB�������'-����6�"�"������r)�dev�a�b�rc�post)�any)r�s`rr�r�Ts@��������1P�������r�left�rightc�R�gg}}|�ttjd�|������|�ttjd�|������|�|t	|d��d���|�|t	|d��d���|�ddgt
dt	|d��t	|d��z
��z��|�ddgt
dt	|d��t	|d��z
��z��ttj|���ttj|���fS)Nc�*�|���Sr8��isdigit��xs r�<lambda>z_pad_version.<locals>.<lambda>^s�������rc�*�|���Sr8rrs rrz_pad_version.<locals>.<lambda>_s��!�)�)�+�+�rrr�0)r�r�r�r�r��insert�max�chain)r�r�
left_split�right_splits    rr�r�Zsr�� �"��J����d�9�.�/D�/D�d�K�K�L�L�M�M�M����t�I�/�0E�0E�u�M�M�N�N�O�O�O����d�3�z�!�}�-�-�/�/�0�1�1�1����u�S��Q��0�0�2�2�3�4�4�4����a�#���Q��K��N�(;�(;�c�*�Q�-�>P�>P�(P�!Q�!Q�Q�R�R�R����q�3�%�#�a��Z��]�);�);�c�+�a�.�>Q�>Q�)Q�"R�"R�R�S�S�S����*�-�.�.��Y�_�k�5R�0S�0S�T�Trc�l�eZdZ	ddedeeddfd�Zdefd�Zdefd�Zde	fd	�Z
d
edefddfd�Zd
e
defd�Zde	fd
�Zdeefd�Zedeefd���Zejdeddfd���Zdedefd�Z	ddedeedefd�Z	ddeedeedeefd�ZdS)�SpecifierSetrFN�
specifiersr-r c�J�d�|�d��D��}t��}|D]W}	|�t|�����&#t$r%|�t|����Y�TwxYwt
|��|_||_dS)Nc�^�g|]*}|����|�����+Sr)rN�r��ss  r�
<listcomp>z)SpecifierSet.__init__.<locals>.<listcomp>ss-��R�R�R�!����	�	�R�A�G�G�I�I�R�R�Rr�,)	r��set�addr�rr��	frozenset�_specsrP)r#rr-�split_specifiers�parsed�	specifiers      rrRzSpecifierSet.__init__ms���S�R�z�/?�/?��/D�/D�R�R�R��-0�E�E��)�	7�	7�I�
7��
�
�9�Y�/�/�0�0�0�0��#�
7�
7�
7��
�
�?�9�5�5�6�6�6�6�6�
7���� ��'�'���(����s�"A�,B�Bc�R�|j�
d|j��nd}dt|���|�d�S)NrTrFz<SpecifierSet(rW)rPr-r;rYs  rr[zSpecifierSet.__repr__�sF��� �,�
2�T�-�1�1�1��	�5��D�	�	�4�S�4�4�4�4rc�d�d�td�|jD������S)Nrc3�4K�|]}t|��V��dSr8)r;rs  rr�z'SpecifierSet.__str__.<locals>.<genexpr>�s(����;�;�!�s�1�v�v�;�;�;�;�;�;r)r��sortedrr"s rr$zSpecifierSet.__str__�s-���x�x��;�;�t�{�;�;�;�;�;�<�<�<rc�*�t|j��Sr8)rarr"s rr'zSpecifierSet.__hash__�����D�K� � � rr(c��t|t��rt|��}nt|t��stSt��}t	|j|jz��|_|j�|j�
|j|_nG|j�|j�
|j|_n,|j|jkr
|j|_ntd���|S)NzFCannot combine SpecifierSets with True and False prerelease overrides.)rcr;rrdrrrP�
ValueError)r#r(rs   r�__and__zSpecifierSet.__and__�s����e�S�!�!�	"� ��'�'�E�E��E�<�0�0�	"�!�!� �N�N�	�$�T�[�5�<�%?�@�@�	����$��);�)G�%*�%7�I�"�"�
�
�
*�u�/A�/I�%)�%6�I�"�"�
�
�%�"4�
4�
4�%)�%6�I�"�"�����
�
�rc���t|ttf��rtt|����}nt|t��stS|j|jkSr8)rcr;rCrrdrr*s  rr+zSpecifierSet.__eq__�sV���e�c�#7�8�9�9�	"� ��U���,�,�E�E��E�<�0�0�	"�!�!��{�e�l�*�*rc�*�t|j��Sr8)r�rr"s r�__len__zSpecifierSet.__len__�s���4�;���rc�*�t|j��Sr8)�iterrr"s r�__iter__zSpecifierSet.__iter__�r$rc�l�|j�|jS|jsdStd�|jD����S)Nc3�$K�|]}|jV��dSr8�r-rs  rr�z+SpecifierSet.prereleases.<locals>.<genexpr>�s$����6�6�Q�1�=�6�6�6�6�6�6r)rPrr�r"s rr-zSpecifierSet.prereleases�sH��
��(��$�$�
�{�	��4��6�6�$�+�6�6�6�6�6�6rr.c��||_dSr8rsr0s  rr-zSpecifierSet.prereleases�rurr1c�,�|�|��Sr8rwrxs  rryzSpecifierSet.__contains__�rzrc�����t�ttf��st������|j��s	�jrdSt
��fd�|jD����S)NFc3�F�K�|]}|������V��dS)r0Nrw)r�rr1r-s  ��rr�z(SpecifierSet.contains.<locals>.<genexpr>�s3�����R�R��1�:�:�d��:�<�<�R�R�R�R�R�Rr)rcrrrr-r}�allrr3s ``rr4zSpecifierSet.contains�s{����
�$��� 8�9�9�	���;�;�D�
���*�K��	�t�1�	��5��R�R�R�R�R�d�k�R�R�R�R�R�Rrr5c��|�|j}|jr0|jD]&}|�|t|�����}�'|Sg}g}|D]|}t	|t
tf��st|��}n|}t	|t
��r�F|jr|s|s|�	|���g|�	|���}|s|r|�|S|S)Nr0)
r-rr7r>rcrrrr}r�)r#r5r-rG�filteredr�r1r�s        rr7zSpecifierSet.filter�s�����*�K�
�;�&	���
P�
P���;�;�x�T�+�=N�=N�;�O�O����O�
.0�H�68��
!�
*�
*��!�$���(@�A�A�*�%*�4�[�[�N�N�%)�N��n�m�<�<���"�/�*��*�#�7�)�0�0��6�6�6���O�O�D�)�)�)�)��
)� 1�
)�k�6I�(�(��Orr�r8)rrrr;rr>rRr[r$r<r'r
r'r=r+r*rrCr-r�r-r@r�ryr4rrr7rrrrrls0������BF�(�(��(�19�$��(�	
�(�(�(�(�05�#�5�5�5�5�=��=�=�=�=�!�#�!�!�!�!��U�>�3�#6�7��N�����.+�F�+�t�+�+�+�+� �� � � � �!�(�#7�8�!�!�!�!��7�X�d�^�7�7�7��X�7�"��"��"�$�"�"�"���"�#��#�T�#�#�#�#�DH�S�S�#�S�2:�4�.�S�	
�S�S�S�S�<QU�3�3� ��0�3�?G��~�3�	�.�	!�3�3�3�3�3�3rr)+r9r�r�r�r��typingrrrrrrr	r
rrr
�utilsrrKrrrr�r;r�rr>r�r&r�ABCMetarrCr�r�r�r�r�r�r�r�rrrr�<module>r;sQ��
�
�
�
���������	�	�	�	�������������������������������(�'�'�'�'�'�2�2�2�2�2�2�2�2�2�2��g�}�,�-�
�����3�4����)��A�A�A���]�C�0�$�6�7�������z����0�0�0�0�0�c�k�0�0�0�0�fF�F�F�F�F�=�F�F�F�R98�98�98�98�98�*�98�98�98�x	��+�}�c�2�D�8�9�	�
�{�M�3�/��5�6�	�	�	�	�X"�X"�X"�X"�X"�$�X"�X"�X"�v��
�<�=�=�
��C��D��I������C��D�����U�t�C�y�U��c��U�u�T�#�Y��S�	�=Q�7R�U�U�U�U�$v�v�v�v�v�=�v�v�v�v�vr