a
    h,MeØ	  ã                   @   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eee  eee  ddœdd„Ze	e
dœd	d
„Zedœdd„Zeeee ee ddœdd„ƒZeee dœdd„Zddœdd„ZdS )ÚFormatControlzBHelper for managing formats from which a package can be installed.Ú	no_binaryÚonly_binaryN)r   r	   Úreturnc                 C   s,   |d u rt ƒ }|d u rt ƒ }|| _|| _d S ©N)Úsetr   r	   )Úselfr   r	   © r   úR/var/www/webapp/lib/python3.9/site-packages/pip/_internal/models/format_control.pyÚ__init__   s    zFormatControl.__init__)Úotherr
   c                    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>!   ó    z'FormatControl.__eq__.<locals>.<genexpr>)Ú
isinstanceÚ	__class__ÚNotImplementedÚ	__slots__Úall)r   r   r   r   r   Ú__eq__   s
    zFormatControl.__eq__)r
   c                 C   s   d  | jj| j| j¡S )Nz
{}({}, {}))Úformatr   Ú__name__r   r	   ©r   r   r   r   Ú__repr__#   s    ÿzFormatControl.__repr__)ÚvalueÚtargetr   r
   c                 C   sœ   |   d¡rtdƒ‚|  d¡}d|v r`| ¡  | ¡  | d¡ |d | d¡d …= d|vrd S q|D ]2}|dkrz| ¡  qdt|ƒ}| |¡ | |¡ qdd 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_namer
   c                 C   sf   ddh}|| j v r| d¡ n@|| jv r4| d¡ n*d| j v rJ| d¡ nd| jv r^| d¡ t|ƒS )NÚbinaryÚsourcer&   )r	   r-   r   Ú	frozenset)r   r1   Úresultr   r   r   Úget_allowed_formats?   s    




z!FormatControl.get_allowed_formatsc                 C   s   |   d| j| j¡ d S )Nr&   )r0   r   r	   r    r   r   r   Údisallow_binariesK   s
    ýzFormatControl.disallow_binaries)NN)r   Ú
__module__Ú__qualname__Ú__doc__r   r   r   Ústrr   ÚobjectÚboolr   r!   Ústaticmethodr0   r   r6   r7   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   