o
    Ëý°jØ	  ã                   @   s>   d dl mZmZmZ d dlmZ d dlmZ G dd„ dƒZdS )é    )Ú	FrozenSetÚOptionalÚSet)Úcanonicalize_name)ÚCommandErrorc                	   @   sª   e Zd ZdZddgZ		ddeee  deee  ddfdd„Zde	de
fd	d
„Zdefdd„Zededee dee ddfdd„ƒZdedee fdd„Zddd„ZdS )ÚFormatControlzBHelper for managing formats from which a package can be installed.Ú	no_binaryÚonly_binaryNÚreturnc                 C   s,   |d u rt ƒ }|d u rt ƒ }|| _|| _d S ©N)Úsetr   r	   )Úselfr   r	   © r   ú–/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pip/_internal/models/format_control.pyÚ__init__   s   
zFormatControl.__init__Úotherc                    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__c                 C   s   d  | jj| j| j¡S )Nz
{}({}, {}))Úformatr   Ú__name__r   r	   ©r   r   r   r   Ú__repr__#   s   ÿzFormatControl.__repr__ÚvalueÚtargetc                 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_namec                 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	   r,   r   Ú	frozenset)r   r0   Úresultr   r   r   Úget_allowed_formats?   s   


ú

ü

þ
z!FormatControl.get_allowed_formatsc                 C   s   |   d| j| j¡ d S )Nr%   )r/   r   r	   r   r   r   r   Údisallow_binariesK   s
   ýzFormatControl.disallow_binaries)NN)r
   N)r   Ú
__module__Ú__qualname__Ú__doc__r   r   r   Ústrr   ÚobjectÚboolr   r    Ústaticmethodr/   r   r5   r6   r   r   r   r   r      s$    ý
þ
ý
ü	$r   N)	Útypingr   r   r   Úpip._vendor.packaging.utilsr   Úpip._internal.exceptionsr   r   r   r   r   r   Ú<module>   s    