§
    ZŠtjØ+  ã                  ó  — d dl mZ d dlZd dlmZmZ ddlmZ ddlm	Z	m
Z
 g d¢Zd"d
„Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Zd#d„Z ej        d¦  «        Zd$d„Zd%d!„ZdS )&é    )ÚannotationsN)ÚMappingÚSequenceé   )Ú_ErrorCollector)ÚInvalidRequirementÚRequirement)ÚCyclicDependencyGroupÚDependencyGroupIncludeÚDependencyGroupResolverÚDuplicateGroupNamesÚInvalidDependencyGroupObjectÚresolve_dependency_groupsÚreturnú	list[str]c                 ó   — t           S ©N)Ú__all__© ó    úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/packaging/dependency_groups.pyÚ__dir__r      s   € Ý€Nr   c                  ó   — e Zd ZdZdS )r   zy
    The same dependency groups were defined twice, with different non-normalized names.

    .. versionadded:: 26.1
    N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r      s   € € € € € ðð ð ð r   r   c                  ó,   ‡ — e Zd ZdZdˆ fd„Zdd
„Zˆ xZS )r
   zQ
    The dependency group includes form a cycle.

    .. versionadded:: 26.1
    Úrequested_groupÚstrÚgroupÚinclude_groupr   ÚNonec                ó²   •— || _         || _        || _        ||k    r|› d�}n|› d|› d|› d|› �}t          ¦   «                              d|› d|› �¦  «         d S )Nz includes itselfz -> ú, z0Cyclic dependency group include while resolving z: )r    r"   r#   ÚsuperÚ__init__)Úselfr    r"   r#   ÚreasonÚ	__class__s        €r   r(   zCyclicDependencyGroup.__init__+   s�   ø€ Ø.ˆÔØˆŒ
Ø*ˆÔà˜EÒ!Ð!ØÐ/Ð/Ð/ˆFˆFà%ÐNÐN¨5ÐNÐN°EÐNÐN¸}ÐNÐNˆFÝ‰Œ×Òð+Øð+ð +Ø"(ð+ð +ñ	
ô 	
ð 	
ð 	
ð 	
r   ú8tuple[type[CyclicDependencyGroup], tuple[str, str, str]]c                ó8   — | j         | j        | j        | j        ffS r   )r+   r    r"   r#   ©r)   s    r   Ú
__reduce__z CyclicDependencyGroup.__reduce__:   s   € Ø” Ô!5°t´zÀ4ÔCUÐ VÐWÐWr   )r    r!   r"   r!   r#   r!   r   r$   )r   r,   )r   r   r   r   r(   r/   Ú__classcell__)r+   s   @r   r
   r
   $   sc   ø€ € € € € ðð ð
ð 
ð 
ð 
ð 
ð 
ðXð Xð Xð Xð Xð Xð Xð Xr   r
   c                  ó   — e Zd ZdZdS )r   z�
    A member of a dependency group was identified as a dict, but was not in a valid
    format.

    .. versionadded:: 26.1
    Nr   r   r   r   r   r   A   s   € € € € € ðð ð ð r   r   c                  ó&   — e Zd ZdZdZd
d„Zdd„Zd	S )r   zV
    A reference to another dependency group by name.

    .. versionadded:: 26.1
    ©r#   r#   r!   r   r$   c                ó   — || _         dS )zˆ
        Initialize a DependencyGroupInclude.

        :param include_group: The name of the group referred to by this include.
        Nr3   )r)   r#   s     r   r(   zDependencyGroupInclude.__init__X   s   € ð +ˆÔÐÐr   c                ó0   — | j         j        › d| j        ›d�S )Nú(ú))r+   r   r#   r.   s    r   Ú__repr__zDependencyGroupInclude.__repr__`   s!   € Ø”.Ô)ÐCÐC¨DÔ,>ÐCÐCÐCÐCr   N)r#   r!   r   r$   )r   r!   )r   r   r   r   Ú	__slots__r(   r8   r   r   r   r   r   O   sS   € € € € € ðð ð #€Ið+ð +ð +ð +ðDð Dð Dð Dð Dð Dr   r   c                  ó:   — e Zd ZdZdd„Zdd
„Zdd„Zdd„Zdd„ZdS )r   ax  
    A resolver for Dependency Group data.

    This class handles caching, name normalization, cycle detection, and other
    parsing requirements. There are only two public methods for exploring the data:
    ``lookup()`` and ``resolve()``.

    :param dependency_groups: A mapping, as provided via pyproject
        ``[dependency-groups]``.

    .. versionadded:: 26.1
    Údependency_groupsú/Mapping[str, Sequence[str | Mapping[str, str]]]r   r$   c                ó    — t          ¦   «         }t          ||¦  «        | _        i | _        i | _        i | _        |                     d¦  «         d S )Nz$[dependency-groups] data was invalid)r   Ú_normalize_group_namesr;   Ú_parsed_groupsÚ_include_graph_ancestorsÚ_resolve_cacheÚfinalize)r)   r;   Úerrorss      r   r(   z DependencyGroupResolver.__init__r   s\   € õ !Ñ"Ô"ˆå!7Ð8IÈ6Ñ!RÔ!RˆÔð
 ð 	Ôð EGˆÔ%àBDˆÔà�ŠÐ>Ñ?Ô?Ð?Ð?Ð?r   r"   r!   ú0tuple[Requirement | DependencyGroupInclude, ...]c                óÊ   — t          |¦  «        }t          ¦   «                              d|›d�¦  «        5 }|                      ||¦  «        cddd¦  «         S # 1 swxY w Y   dS )zº
        Lookup a group name, returning the parsed dependency data for that group.
        This will not resolve includes.

        :param group: the name of the group to lookup
        ú[dependency-groups] data for ú was malformedN)Ú_normalize_namer   Úon_exitÚ_parse_group©r)   r"   rC   s      r   ÚlookupzDependencyGroupResolver.lookup…   s°   € õ   Ñ&Ô&ˆåÑÔ×&Ò&ØC¨EÐCÐCÐCñ
ô 
ð 	4àØ×$Ò$ U¨FÑ3Ô3ð	4ð 	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4s   µAÁAÁAútuple[Requirement, ...]c                óÌ   — t          |¦  «        }t          ¦   «                              d|›d�¦  «        5 }|                      |||¦  «        cddd¦  «         S # 1 swxY w Y   dS )z
        Resolve a dependency group to a list of requirements.

        :param group: the name of the group to resolve
        rF   rG   N)rH   r   rI   Ú_resolverK   s      r   ÚresolvezDependencyGroupResolver.resolve“   s°   € õ   Ñ&Ô&ˆåÑÔ×&Ò&ØC¨EÐCÐCÐCñ
ô 
ð 	7àØ—=’= ¨¨vÑ6Ô6ð	7ð 	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 	7ð 	7s   µAÁAÁ Ar    rC   r   c                óÂ  — || j         v r| j         |         S |                      ||¦  «        }g }|D �]}t          |t          ¦  «        r|                     |¦  «         Œ.t          |t
          ¦  «        r®t          |j        ¦  «        }|| j         	                    |d¦  «        v r*| 
                    t          |||j        ¦  «        ¦  «         Œžg | j         	                    |d¦  «        ¢|‘R | j        |<   |                     |                      |||¦  «        ¦  «         Œñt          d|› �¦  «        ‚|j        rdS t!          |¦  «        | j         |<   | j         |         S )a”  
        This is a helper for cached resolution to strings. It preserves the name of the
        group which the user initially requested in order to present a clearer error in
        the event that a cycle is detected.

        :param group: The normalized name of the group to resolve.
        :param requested_group: The group which was used in the original, user-facing
            request.
        r   z+Invalid dependency group item after parse: )rA   rJ   Ú
isinstancer	   Úappendr   rH   r#   r@   ÚgetÚerrorr
   ÚextendrO   ÚNotImplementedErrorrC   Útuple)r)   r"   r    rC   ÚparsedÚresolved_groupÚitemr#   s           r   rO   z DependencyGroupResolver._resolve    s§  € ð �DÔ'Ð'Ð'ØÔ& uÔ-Ð-à×"Ò" 5¨&Ñ1Ô1ˆàˆàð 	ñ 	ˆDÝ˜$¥Ñ,Ô,ð Ø×%Ò% dÑ+Ô+Ð+Ð+Ý˜DÕ"8Ñ9Ô9ð Ý /°Ô0BÑ CÔ C�ð ! DÔ$A×$EÒ$EÀeÈRÑ$PÔ$PÐPÐPØ—L’LÝ-Ø+¨U°DÔ4Fñô ñô ð ð ðDØÔ6×:Ò:¸5À"ÑEÔEðDàðDð D�DÔ1°-Ñ@ð #×)Ò)ØŸš m°_ÀfÑMÔMñô ð ð õ *ØHÀ$ÐHÐHñô ð ð Œ=ð 	Ø�2å%*¨>Ñ%:Ô%:ˆÔ˜EÑ"ØÔ" 5Ô)Ð)r   c                ó¾  — || j         v r| j         |         S || j        vr(|                     t          d|› d�¦  «        ¦  «         dS | j        |         }t	          |t
          ¦  «        r(|                     t          d|›d�¦  «        ¦  «         dS t	          |t          ¦  «        s(|                     t          d|›d�¦  «        ¦  «         dS g }|D �]]}t	          |t
          ¦  «        rU|                     t          ¦  «        5  | 
                    t          |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   Œmt	          |t          ¦  «        r¶t          |                     ¦   «         ¦  «        dk    r&|                     t          d|›�¦  «        ¦  «         ŒÍ|d	         }t	          |t
          ¦  «        s)d
|›�}|                     t          |¦  «        ¦  «         �Œ| 
                    t!          |¬¦  «        ¦  «         �Œ8|                     t          d|›�¦  «        ¦  «         �Œ_|j        rdS t          |¦  «        | j         |<   | j         |         S )NzDependency group 'z' not foundr   zDependency group z' contained a string rather than a list.z is not a sequence type.)úinclude-groupzInvalid dependency group item: r]   z6Dependency group include-group value is not a string: r3   )r?   r;   rU   ÚLookupErrorrR   r!   Ú	TypeErrorr   Úcollectr   rS   r	   r   rX   Úkeysr   r   rC   )r)   r"   rC   Ú	raw_groupÚelementsr[   r#   Úmsgs           r   rJ   z$DependencyGroupResolver._parse_groupÚ   sÙ  € ð �DÔ'Ð'Ð'ØÔ& uÔ-Ð-à˜Ô.Ð.Ð.Ø�LŠL�Ð%L¸%Ð%LÐ%LÐ%LÑMÔMÑNÔNÐNØ�2àÔ*¨5Ô1ˆ	Ý�i¥Ñ%Ô%ð 	Ø�LŠLÝØX¨ÐXÐXÐXñô ñô ð ð
 �2å˜)¥XÑ.Ô.ð 	Ø�LŠLÝÐO¨eÐOÐOÐOÑPÔPñô ð ð �2à?AˆØð 	Tñ 	TˆDÝ˜$¥Ñ$Ô$ð Tð —^’^Õ$6Ñ7Ô7ð 7ð 7Ø—O’O¥K°Ñ$5Ô$5Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7øå˜D¥'Ñ*Ô*ð TÝ˜Ÿš™œÑ%Ô%Ð);Ò;Ð;Ø—L’LÝ4ØF¸dÐFÐFñô ñô ð ð ð %)¨Ô$9�MÝ% mµSÑ9Ô9ð 	ð(Ø#ð(ð (ð ð Ÿš¥Y¨s¡^¤^Ñ4Ô4Ð4Ñ4à ŸšÝ2ÀÐOÑOÔOñô ð ñ ð —’�YÐ'QÈÐ'QÐ'QÑRÔRÑSÔSÐSÑSàŒ=ð 	Ø�2å%*¨8¡_¤_ˆÔ˜EÑ"ØÔ" 5Ô)Ð)s   Ä#D4Ä4D8	Ä;D8	N)r;   r<   r   r$   )r"   r!   r   rD   )r"   r!   r   rM   )r"   r!   r    r!   rC   r   r   rM   )r"   r!   rC   r   r   rD   )	r   r   r   r   r(   rL   rP   rO   rJ   r   r   r   r   r   d   s‡   € € € € € ðð ð@ð @ð @ð @ð&4ð 4ð 4ð 4ð7ð 7ð 7ð 7ð8*ð 8*ð 8*ð 8*ðt<*ð <*ð <*ð <*ð <*ð <*r   r   r;   r<   Úgroupsr!   útuple[str, ...]c               óX   ‡— t          | ¦  «        Št          ˆfd„|D ¦   «         ¦  «        S )a  
    Resolve a dependency group to a tuple of requirements, as strings.

    :param dependency_groups: the parsed contents of the ``[dependency-groups]`` table
        from ``pyproject.toml``
    :param groups: the name of the group(s) to resolve

    .. versionadded:: 26.1
    c              3  óf   •K  — | ]+}‰                      |¦  «        D ]}t          |¦  «        V — ŒŒ,d S r   )rP   r!   )Ú.0r"   ÚrÚresolvers      €r   ú	<genexpr>z,resolve_dependency_groups.<locals>.<genexpr>+  sD   øè è € ÐMÐM˜E°X×5EÒ5EÀeÑ5LÔ5LÐMÐM°•�Q‘”ÐMÐMÐMÐMÐMÐMÐMr   )r   rX   )r;   re   rk   s     @r   r   r     s6   ø€ õ 'Ð'8Ñ9Ô9€HÝÐMÐMÐMÐM VÐMÑMÔMÑMÔMÐMr   z[-_.]+Únamec                ó\   — t                                d| ¦  «                             ¦   «         S )Nú-)Ú_NORMALIZE_PATTERNÚsubÚlower)rm   s    r   rH   rH   6  s$   € Ý×!Ò! # tÑ,Ô,×2Ò2Ñ4Ô4Ð4r   rC   r   ú,dict[str, Sequence[str | Mapping[str, str]]]c                óŽ  — i }i }|                       ¦   «         D ]B\  }}t          |¦  «        }|                     |g ¦  «                             |¦  «         |||<   ŒC|                      ¦   «         D ]T\  }}t	          |¦  «        dk    r<|                     t          d|› dd                     |¦  «        › d�¦  «        ¦  «         ŒU|S )Nr   z"Duplicate dependency group names: z (r&   r7   )ÚitemsrH   Ú
setdefaultrS   ÚlenrU   r   Újoin)	r;   rC   Úoriginal_namesÚnormalized_groupsÚ
group_nameÚvalueÚnormed_group_nameÚnormed_nameÚnamess	            r   r>   r>   :  sü   € ð ,.€NØFHÐà.×4Ò4Ñ6Ô6ð 5ð 5Ñˆ
�EÝ+¨JÑ7Ô7ÐØ×!Ò!Ð"3°RÑ8Ô8×?Ò?À
ÑKÔKÐKØ/4ÐÐ+Ñ,Ð,à,×2Ò2Ñ4Ô4ð ð Ñˆ�UÝˆu‰:Œ:˜Š>ˆ>Ø�LŠLÝ#ð:Ø"ð:ð :Ø&*§i¢i°Ñ&6Ô&6ð:ð :ð :ñô ñô ð øð Ðr   )r   r   )r;   r<   re   r!   r   rf   )rm   r!   r   r!   )r;   r<   rC   r   r   rs   )Ú
__future__r   ÚreÚcollections.abcr   r   rC   r   Úrequirementsr   r	   r   r   Ú
ValueErrorr   r
   r   r   r   r   Úcompilerp   rH   r>   r   r   r   ú<module>r†      sÌ  ðØ "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -à #Ð #Ð #Ð #Ð #Ð #Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9ðð ð €ðð ð ð ðð ð ð ð ˜*ñ ô ð ðXð Xð Xð Xð X˜Jñ Xô Xð Xð:ð ð ð ð  :ñ ô ð ðDð Dð Dð Dð Dñ Dô Dð Dð*r*ð r*ð r*ð r*ð r*ñ r*ô r*ð r*ðtNð Nð Nð Nð*  �R”Z 	Ñ*Ô*Ð ð5ð 5ð 5ð 5ðð ð ð ð ð r   