o
    6‘ðiI  ã                   @   sØ   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	d
„Zdeeef deeeef  dee fdd„Zdee deeef fdd„Zdedeeef fdd„ZdS )é    )ÚIterableÚIterator)ÚAny)ÚDependencyGroupResolver)ÚExceptionGroup)ÚInstallationError)ÚtomllibÚ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   úe/root/parts/websockify/install/lib/python3.10/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   c                 c   s„   � |D ]<\}}| | }zdd„ |  |¡D ƒE dH  W q ty? } zdd„ |jD ƒ}td|› d|› dd	 |¡› �ƒ|‚d}~ww 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>Nc                 S   ó   g | ]}t |ƒ‘qS r   r   ©r   Úer   r   r   Ú
<listcomp>"   ó    z'_resolve_all_groups.<locals>.<listcomp>z+[dependency-groups] resolution failed for 'z' from 'z': ú; )Úresolver   Ú
exceptionsr   Újoin)r   r	   r   Ú	groupnameÚresolverÚegÚmessagesr   r   r   r      s&   €ÿÿÿý€ýür   Úpathsc                 C   s²   i }| D ]R}||v rqt |ƒ}d|vrtd|› d�ƒ‚|d }t|tƒs,td|› d�ƒ‚zt|ƒ||< W q tyV } zdd„ |jD ƒ}td|› d	d
 |¡› �ƒ|‚d }~ww |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.c                 S   r   r   r   r   r   r   r   r   @   r   z$_build_resolvers.<locals>.<listcomp>z([dependency-groups] data was invalid in ú: r    )Ú_load_pyprojectr   Ú
isinstanceÚdictr   r   r"   r#   )r(   r   r   Ú	pyprojectÚraw_dependency_groupsr&   r'   r   r   r   r   )   s4   
ÿ

ÿÿþ€ýr   r   c              
   C   s´   zt | dƒ�}t |¡W  d  ƒ W S 1 sw   Y  W dS  ty,   t| › d�ƒ‚ tjyC } ztd| › d|› �ƒ|‚d}~w tyY } ztd| › d|› �ƒ|‚d}~w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   r   r   r   r*   H   s   (ÿ€€ÿr*   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   r   Ú<module>   s     "

ÿÿ
þ