<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
U
    ÀÒ.e 
  ã                   @   sP   d dl mZ d dlmZ d dlmZ er<d dlmZmZm	Z	 G dd„ de
ƒZdS )é    )Úcanonicalize_name)ÚCommandError)ÚMYPY_CHECK_RUNNING)ÚOptionalÚSetÚ	FrozenSetc                   @   sN   e Zd ZdZddd„Zdd„ Zdd„ Zd	d
„ Zedd„ ƒZ	dd„ Z
dd„ ZdS )ÚFormatControlzGHelper for managing formats from which a package can be installed.
    Nc                 C   s,   |d krt ƒ }|d krt ƒ }|| _|| _d S ©N)ÚsetÚ	no_binaryÚonly_binary)Úselfr   r   © r   úG/usr/lib/python3.8/site-packages/pip/_internal/models/format_control.pyÚ__init__   s    zFormatControl.__init__c                 C   s   | j |j kS r	   )Ú__dict__©r   Úotherr   r   r   Ú__eq__   s    zFormatControl.__eq__c                 C   s   |   |¡ S r	   )r   r   r   r   r   Ú__ne__   s    zFormatControl.__ne__c                 C   s   d  | jj| j| j¡S )Nz
{}({}, {}))ÚformatÚ	__class__Ú__name__r   r   ©r   r   r   r   Ú__repr__"   s
    ýzFormatControl.__repr__c                 C   sœ   |   d¡rtdƒ‚|  d¡}d|kr`| ¡  | ¡  | d¡ |d | d¡d …= d|k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)ÚvalueÚtargetr   ÚnewÚnamer   r   r   Úhandle_mutual_excludes)   s&    
ÿ


z$FormatControl.handle_mutual_excludesc                 C   sf   ddh}|| j kr| d¡ n@|| jkr4| d¡ n*d| j krJ| d¡ nd| jkr^| d¡ t|ƒS )NZbinaryÚsourcer   )r   r$   r   Ú	frozenset)r   Zcanonical_nameÚresultr   r   r   Úget_allowed_formatsA   s    




z!FormatControl.get_allowed_formatsc                 C   s   |   d| j| j¡ d S )Nr   )r)   r   r   r   r   r   r   Údisallow_binariesN   s
      ÿzFormatControl.disallow_binaries)NN)r   Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   Ústaticmethodr)   r-   r.   r   r   r   r   r      s   


r   N)Zpip._vendor.packaging.utilsr   Zpip._internal.exceptionsr   Zpip._internal.utils.typingr   Útypingr   r   r   Úobjectr   r   r   r   r   Ú<module>   s
   