a
    $lJhu
                     @   s   d dl Z d dlmZmZmZmZmZmZ e jdkr<d dl	Z	nd dl
mZ	 d dlmZ d dlmZ eeeef  ee ddd	Zeeef eeeef  ee d
ddZee eeef dddZeeeef dddZdS )    N)AnyDictIterableIteratorListTuple)      )tomli)DependencyGroupResolver)InstallationError)groupsreturnc                 C   s    t d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                 s   s   | ]\}}|V  qd S N ).0path_r   r   X/var/www/shaz/venv/lib/python3.9/site-packages/pip/_internal/req/req_dependency_group.py	<genexpr>       z*parse_dependency_groups.<locals>.<genexpr>)_build_resolverslist_resolve_all_groups)r   	resolversr   r   r   parse_dependency_groups   s    r   )r   r   r   c                 c   s   |D ]v\}}| | }zdd | |D E dH  W q tttfyx } z(td| d| d| |W Y d}~qd}~0 0 qdS )zp
    Run all resolution, converting any error from `DependencyGroupResolver` into
    an InstallationError.
    c                 s   s   | ]}t |V  qd S r   )str)r   reqr   r   r   r   "   r   z&_resolve_all_groups.<locals>.<genexpr>Nz+[dependency-groups] resolution failed for 'z' from 'z': )resolve
ValueError	TypeErrorLookupErrorr   )r   r   r   Z	groupnameresolverer   r   r   r      s    r   )pathsr   c                 C   sj   i }| D ]\}||v rqt |}d|vr6td| d|d }t|tsXtd| dt|||< q|S )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.)_load_pyprojectr   
isinstancedictr   )r$   r   r   	pyprojectZraw_dependency_groupsr   r   r   r   *   s     


r   )r   r   c              
   C   s   z:t | d}t|W  d   W S 1 s.0    Y  W n tyZ   t|  dY nt tjy } z"td|  d| |W Y d}~nBd}~0  ty } z"td|  d| |W Y d}~n
d}~0 0 dS )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 z: zError reading )opentomllibloadFileNotFoundErrorr   ZTOMLDecodeErrorOSError)r   fpr#   r   r   r   r%   A   s    .*r%   )systypingr   r   r   r   r   r   version_infor+   pip._vendorr
   Zpip._vendor.dependency_groupsr   pip._internal.exceptionsr   r   r   r   r   r%   r   r   r   r   <module>   s    

 