o
    6‘ði§	  ã                   @  s6   d dl mZ d dlmZ d dlmZ G dd„ dƒZdS )é    )Úannotations)Úcanonicalize_name)ÚCommandErrorc                   @  s^   e Zd ZdZddgZ		dddd	„Zddd„Zd dd„Zed!dd„ƒZ	d"dd„Z
d#dd„ZdS )$ÚFormatControlzBHelper for managing formats from which a package can be installed.Ú	no_binaryÚonly_binaryNúset[str] | NoneÚreturnÚNonec                 C  s,   |d u rt ƒ }|d u rt ƒ }|| _|| _d S ©N)Úsetr   r   )Úselfr   r   © r   úb/root/parts/websockify/install/lib/python3.10/site-packages/pip/_internal/models/format_control.pyÚ__init__   s   
zFormatControl.__init__ÚotherÚobjectÚboolc                   s:   t ˆ ˆjƒstS ˆjˆ jkrdS t‡ ‡fdd„ˆjD ƒƒS )NFc                 3  s$   � | ]}t ˆ|ƒt ˆ |ƒkV  qd S r   )Úgetattr)Ú.0Úk©r   r   r   r   Ú	<genexpr>!   s   €" z'FormatControl.__eq__.<locals>.<genexpr>)Ú
isinstanceÚ	__class__ÚNotImplementedÚ	__slots__Úall)r   r   r   r   r   Ú__eq__   s
   zFormatControl.__eq__Ústrc                 C  s   | j j› d| j› d| j› d�S )Nú(z, ú))r   Ú__name__r   r   ©r   r   r   r   Ú__repr__#   s   zFormatControl.__repr__ÚvalueÚtargetúset[str]c                 C  s¢   |   d¡r	tdƒ‚|  d¡}d|v r3| ¡  | ¡  | d¡ |d | d¡d …= d|vr/d S d|v s|D ]}|dkr@| ¡  q5t|ƒ}| |¡ | |¡ q5d S )Nú-z7--no-binary / --only-binary option requires 1 argument.ú,ú:all:é   z:none:)Ú
startswithr   ÚsplitÚclearÚaddÚindexr   Údiscard)r%   r&   r   ÚnewÚnamer   r   r   Úhandle_mutual_excludes&   s*   
ÿ

ù
úz$FormatControl.handle_mutual_excludesÚcanonical_nameúfrozenset[str]c                 C  sx   ddh}|| j v r| d¡ t|ƒS || jv r | d¡ t|ƒS d| j v r.| d¡ t|ƒS d| jv r8| d¡ t|ƒS )NÚbinaryÚsourcer*   )r   r1   r   Ú	frozenset)r   r5   Úresultr   r   r   Úget_allowed_formats=   s   


ú

ü

þ
z!FormatControl.get_allowed_formatsc                 C  s   |   d| j| j¡ d S )Nr*   )r4   r   r   r#   r   r   r   Údisallow_binariesI   s
   ýzFormatControl.disallow_binaries)NN)r   r   r   r   r	   r
   )r   r   r	   r   )r	   r   )r%   r   r&   r'   r   r'   r	   r
   )r5   r   r	   r6   )r	   r
   )r"   Ú
__module__Ú__qualname__Ú__doc__r   r   r   r$   Ústaticmethodr4   r;   r<   r   r   r   r   r      s    ý

	
r   N)Ú
__future__r   Úpip._vendor.packaging.utilsr   Úpip._internal.exceptionsr   r   r   r   r   r   Ú<module>   s    