
    iI                         d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ deeeef      dee   fd	Zd
eeef   deeeef      dee   fdZdee   deeef   fdZdedeeef   fdZy)    )IterableIterator)Any)DependencyGroupResolver)ExceptionGroup)InstallationError)tomllibgroupsreturnc                 P    t        d | D              }t        t        ||             S )z
    Parse dependency groups data as provided via the CLI, in a `[path:]group` syntax.

    Raises InstallationErrors if anything goes wrong.
    c              3   &   K   | ]	  \  }}|  y wN ).0path_s      Y/root/searxng-venv/lib/python3.12/site-packages/pip/_internal/req/req_dependency_group.py	<genexpr>z*parse_dependency_groups.<locals>.<genexpr>   s      >)4 >s   )_build_resolverslist_resolve_all_groups)r
   	resolverss     r   parse_dependency_groupsr      s'     ! >v >>I#Iv677    r   c              #   *  K   |D ]+  \  }}| |   }	 d |j                  |      D        E d{    - y7 # t        $ rQ}|j                  D cg c]  }t        |       nc c}w }}t	        d| d| ddj                  |             |d}~ww xY ww)zp
    Run all resolution, converting any error from `DependencyGroupResolver` into
    an InstallationError.
    c              3   2   K   | ]  }t        |        y wr   )str)r   reqs     r   r   z&_resolve_all_groups.<locals>.<genexpr>   s     HSCHs   Nz+[dependency-groups] resolution failed for 'z' from 'z': ; )resolver   
exceptionsr   r   join)r   r
   r   	groupnameresolveregemessagess           r   r   r      s      " 
iT?	HH,<,<Y,GHHH
 I 	(*61A66H6#=i[ Ic$))H"5!68 	s<   B646B6	BBA ,BBBpathsc           
      x   i }| D ]X  }||v rt        |      }d|vrt        d| d      |d   }t        |t              st        d| d      	 t	        |      ||<   Z |S # t
        $ rN}|j                  D cg c]  }t        |       nc c}w }}t        d| ddj                  |             |d }~ww xY w)	Nzdependency-groupsz,[dependency-groups] table was missing from 'z#'. Cannot resolve '--group' option.z+[dependency-groups] table was malformed in z". Cannot resolve '--group' option.z([dependency-groups] data was invalid in : r   )	_load_pyprojectr   
isinstancedictr   r   r!   r   r"   )r(   r   r   	pyprojectraw_dependency_groupsr%   r&   r'   s           r   r   r   )   s    I 9#D)	i/#>tf E3 3  !**= >/6#=dV D3 3 
	56KLIdO%4   	(*61A66H6#:4&499XCVBWX	s$   A""	B9+B49B)B44B9r   c                 4   	 t        | d      5 }t        j                  |      cddd       S # 1 sw Y   yxY w# t        $ r t	        |  d      t        j
                  $ r}t	        d|  d|       |d}~wt        $ r}t	        d|  d|       |d}~ww xY w)zq
    This helper loads a pyproject.toml as TOML.

    It raises an InstallationError if the operation fails.
    rbNz, not found. Cannot resolve '--group' option.zError parsing r*   zError reading )openr	   loadFileNotFoundErrorr   TOMLDecodeErrorOSError)r   fpr&   s      r   r+   r+   H   s    E$ 	$<<#	$ 	$ 	$ W4&(T UVV"" E.b <=1D E.b <=1DEs5   9 -	9 69 9 )B"A44B BBN)collections.abcr   r   typingr   'pip._vendor.packaging.dependency_groupsr   pip._vendor.packaging.errorsr   pip._internal.exceptionsr   pip._internal.utils.compatr	   r   tupler   r   r-   r   r   r+   r   r   r   <module>r?      s    .  K 7 6 .8DsCx$9 8d3i 8C001;?c3h;Pc](HSM d38n >E# E$sCx. Er   