+
     hi  c                  s    ^ RI Ht ^ RIt^ RIt^ RIHt ^ RIHt R R ltR R lt	]P                   ! R	 R
4      4       t ! R R]4      t ! R R4      tR R ltR# )i    )annotationsN)Mapping)Requirementc                    V ^8  d   QhRRRR/# )   namestrreturn Zformat   "R/usr/lib/python3.14/site-packages/pip/_vendor/dependency_groups/_implementation.py__annotate__r   
   s     0 0# 0# 0    c                sN    \         P                  ! R RV 4      P                  4       # )z[-_.]+Z-)reZsubZlower)r   s   &r   _normalize_namer   
   s    66)S$'--//r   c               r   )r   dependency_groups%Mapping[str, str | Mapping[str, str]]r   r   r	   r
   r   r   r      s      <*r   c                s   / p/ pV P                  4        F5  w  r4\        V4      pVP                  V. 4      P                  V4       WBV&   K7  	  . pVP                  4        F=  w  rx\	        V4      ^8  g   K  VP                  V RRP                  V4       R24       K?  	  V'       d   \        RRP                  V4       24      hV# )i   z (, Z)z"Duplicate dependency group names: )Zitemsr   Z
setdefaultappendZlenZjoin
ValueError)	r   Zoriginal_namesZnormalized_groupsZ
group_nameZvalueZnormed_group_nameZerrorsZnormed_nameZnamess	   &        r   _normalize_group_namesr      s     ,.N.446
+J7!!"3R8??
K/4+, 7
 F,224u:>MM[MDIIe,<+=Q?@ 5 =dii>O=PQRRr   c                  s"    ] tR t^#t$ R]R&   RtR# )DependencyGroupIncluder   include_groupr   N)__name__
__module____qualname____firstlineno__Z__annotations____static_attributes__r   r   r   r   r   #   s    r   r   c                  s2   a  ] tR t^(tRtR V 3R lltRtV ;t# )CyclicDependencyErrorz1
An error representing the detection of a cycle.
c               s(    V ^8  d   QhRRRRRRRR/# )r   requested_groupr   groupr   r   Noner   r	   r
   r   r   Z"CyclicDependencyError.__annotate__-   s)     
 
 
C 
 
PT 
r   c                	s   < Wn         W n        W0n        W28X  d   V R 2pMV RV RV RV 2p\        SV `  RV RV 24       R# )z includes itselfz -> r   z0Cyclic dependency group include while resolving z: N)r   r   r   Zsuper__init__)selfr   r   r   Zreason	__class__s   &&&& r   r!   ZCyclicDependencyError.__init__-   sd    .
*!w./F%d5'E7$}oNF>r&+	
r   )r   r   r   )r   r   r   r   __doc__r!   r   Z__classcell__)r#   s   @r   r   r   (   s    
 
r   r   c                  sV    ] tR t^<tRtR R ltR R ltR R ltR R	 ltR
 R lt	Rt
R# )DependencyGroupResolvera@  
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]``.
c                    V ^8  d   QhRRRR/# )r   r   r   r   r    r   r	   r
   r   r   $DependencyGroupResolver.__annotate__H   s"     E E@E 
Er   c                	s    \        V\        4      '       g   \        R 4      h\        V4      V n        / V n        / V n        / V n        R# )z(Dependency Groups table is not a mappingN)
isinstancer   	TypeErrorr   r   _parsed_groups_include_graph_ancestors_resolve_cache)r"   r      &&r   r!   Z DependencyGroupResolver.__init__H   sM     +W55FGG!78I!J  	 EG%BDr   c               r&   r   r   r   r   z0tuple[Requirement | DependencyGroupInclude, ...]r   r	   r
   r   r   r'   X   s     ( (C ($T (r   c                s|    \        V\        4      '       g   \        R4      h\        V4      pV P	                  V4      # )a  
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

:raises ValueError: if the data does not appear to be valid dependency group
    data
:raises TypeError: if the data is not a string
:raises LookupError: if group name is absent
:raises packaging.requirements.InvalidRequirement: if a specifier is not valid
"Dependency group name is not a str)r(   r   r)   r   _parse_groupr"   r   r-   r   lookupZDependencyGroupResolver.lookupX   s8     %%%@AA&  ''r   c               r&   )r   r   r   r   tuple[Requirement, ...]r   r	   r
   r   r   r'   j   s     + +S +%< +r   c                s|    \        V\        4      '       g   \        R4      h\        V4      pV P	                  W4      # )ax  
Resolve a dependency group to a list of requirements.

:param group: the name of the group to resolve

:raises TypeError: if the inputs appear to be the wrong types
:raises ValueError: if the data does not appear to be valid dependency group
    data
:raises LookupError: if group name is absent
:raises packaging.requirements.InvalidRequirement: if a specifier is not valid
r/   )r(   r   r)   r   _resolver1   r-   r   resolveZDependencyGroupResolver.resolvej   s6     %%%@AA&}}U**r   c               r&   r.   r   r	   r
   r   r   r'   {   s     * **	9*r   c                	s   WP                   9   d   V P                   V,          # WP                  9  d   \        R V R24      hV P                  V,          p\        V\        4      '       g   \        R V R24      h. pV F  p\        V\        4      '       d   VP                  \        V4      4       K5  \        V\        4      '       dl   \        VP                  4       4      R8w  d   \        RV 24      h\        \        VP                  4       4      4      pVP                  \!        VR7      4       K  \        RV 24      h	  \        V4      V P                   V&   V P                   V,          # )zDependency group 'z' not foundz' is not a listzInvalid dependency group item: )r   )zinclude-group)r*   r   ZLookupErrorr(   Zlistr)   r   r   r   ZdicttupleZkeysr   ZnextZiterZvaluesr   )r"   r   Z	raw_groupZelementsitemr   s   &&    r   r0   Z$DependencyGroupResolver._parse_group{   s8    '''&&u--... 25'EFF**51	)T**0GHH?AD$$$ D 12D$''%);;$'Ftf%MNN $T$++-%8 9 6] ST #B4&!IJJ  &+8_E"""5))r   c               s$    V ^8  d   QhRRRRRR/# )r   r   r   r   r   r3   r   r	   r
   r   r   r'      s"     "* "*c "*C "*<S "*r   c                s   WP                   9   d   V P                   V,          # V P                  V4      p. pV F  p\        V\        4      '       d   VP	                  V4       K,  \        V\
        4      '       d   \        VP                  4      pW`P                  P                  VR4      9   d   \        W!VP                  4      h. V P                  P                  VR4      OVN5V P                  V&   VP                  V P                  Wb4      4       K  \        RV 24      h	  \        V4      V P                   V&   V P                   V,          # )z
This is a helper for cached resolution to strings.

:param group: The name of the group to resolve.
:param requested_group: The group which was used in the original, user-facing
    request.
z+Invalid dependency group item after parse: r   )r,   r0   r(   r   r   r   r   r   r+   Zgetr   Zextendr4   ZNotImplementedErrorr6   )r"   r   r   ZparsedZresolved_groupr7   r   s   &&&    r   r4   Z DependencyGroupResolver._resolve   s:    '''&&u--""5)D$,,%%d+D"899 /0B0B C $A$A$E$EeR$PP/'0B0B @2266ubA@@--m< %%dmmM&ST)A$H  & &+>%:E"""5))r   )r+   r*   r,   r   N)r   r   r   r   r$   r!   r2   r5   r0   r4   r   r   r   r   r%   r%   <   s'    	E ($+"*B"* "*r   r%   c               s$    V ^8  d   QhRRRRRR/# )r   r   r   groupsr   r   ztuple[str, ...]r   r	   r
   r   r   r      s)     N N<NJMNNr   c               s~   a \        V 4      o\        ;QJ d    . V3R lV 4       F  NK  	  5# ! V3R lV 4       4      # )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

:raises TypeError: if the inputs appear to be the wrong types
:raises ValueError: if the data does not appear to be valid dependency group data
:raises LookupError: if group name is absent
:raises packaging.requirements.InvalidRequirement: if a specifier is not valid
c              3  sj   <"   T F(  pSP                  V4       F  p\        V4      x  K  	  K*  	  R # 5i)N)r5   r   )Z.0r   Zrresolvers   &  r   Z	<genexpr>Zresolve.<locals>.<genexpr>   s+     MVEX5E5Ee5LQ5LVs   03)r%   r6   )r   r8   r9   s   "*@r   r5   r5      s2     ''89H5MVM5M5MVMMMr   )Z
__future__r    Zdataclassesr   Zcollections.abcr   Z"pip._vendor.packaging.requirementsr   r   r   Z	dataclassr   r   r   r%   r5   r   r   r   <module>r:      s\    "  	 # :0*   
J 
(B* B*JNr   