Ë
    ��h¯  ã                   ó`   — d dl Z d dlmZmZmZmZ d dlmZ d dlm	Z	m
Z
 d dlmZ  G d„ d«      Zy)é    N)ÚListÚOptionalÚSetÚTuple)ÚTag)Úget_supportedÚversion_info_to_nodot)Únormalize_version_infoc                   óœ   — e Zd ZdZg d¢Z	 	 	 	 ddeee      deee	df      deee      dee   d	df
d
„Z
d	efd„Zd	ee   fd„Zd	ee   fd„Zy)ÚTargetPythonzx
    Encapsulates the properties of a Python interpreter one is targeting
    for a package install, download, etc.
    )Ú_given_py_version_infoÚabisÚimplementationÚ	platformsÚ
py_versionÚpy_version_infoÚ_valid_tagsÚ_valid_tags_setNr   r   .r   r   Úreturnc                 óú   — || _         |€t        j                  dd }nt        |«      }dj	                  t        t        |dd «      «      }|| _        || _        || _	        || _
        || _        d| _        d| _        y)a<  
        :param platforms: A list of strings or None. If None, searches for
            packages that are supported by the current system. Otherwise, will
            find packages that can be built on the platforms passed in. These
            packages will only be downloaded for distribution: they will
            not be built locally.
        :param py_version_info: An optional tuple of ints representing the
            Python version information to use (e.g. `sys.version_info[:3]`).
            This can have length 1, 2, or 3 when provided.
        :param abis: A list of strings or None. This is passed to
            compatibility_tags.py's get_supported() function as is.
        :param implementation: A string or None. This is passed to
            compatibility_tags.py's get_supported() function as is.
        Né   ú.é   )r   ÚsysÚversion_infor
   ÚjoinÚmapÚstrr   r   r   r   r   r   r   )Úselfr   r   r   r   r   s         ú`/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pip/_internal/models/target_python.pyÚ__init__zTargetPython.__init__   s�   € ð, '6ˆÔ#àÐ"Ü!×.Ñ.¨r°Ð2‰Oä4°_ÓEˆOà—X‘Xœc¤# °r¸Ð':Ó;Ó<ˆ
àˆŒ	Ø,ˆÔØ"ˆŒØ$ˆŒØ.ˆÔð 15ˆÔØ37ˆÕó    c                 óê   — d}| j                   �"dj                  d„ | j                   D «       «      }d| j                  fd|fd| j                  fd| j                  fg}dj                  d	„ |D «       «      S )
zD
        Format the given, non-None attributes for display.
        Nr   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­w)N)r   )Ú.0Úparts     r    ú	<genexpr>z,TargetPython.format_given.<locals>.<genexpr>J   s   è ø€ ò 'Ø"”�D—	ñ'ùs   ‚r   r   r   r   ú c              3   ó6   K  — | ]  \  }}|€Œ	|› d|›�–— Œ y ­w)Nú=© )r%   ÚkeyÚvalues      r    r'   z,TargetPython.format_given.<locals>.<genexpr>T   s)   è ø€ ò 
Ù#- 3¨¸uÑ?Pˆsˆe�1�U�IÔñ
ùs   ‚
�)r   r   r   r   r   )r   Údisplay_versionÚ
key_valuess      r    Úformat_givenzTargetPython.format_givenD   s�   € ð ˆØ×&Ñ&Ð2Ø!Ÿh™hñ 'Ø&*×&AÑ&Aô'ó ˆOð
 ˜$Ÿ.™.Ð)Ø˜_Ð-Ø�T—Y‘YÐØ˜t×2Ñ2Ð3ð	
ˆ
ð �x‰xñ 
Ø1;ô
ó 
ð 	
r"   c                 óÒ   — | j                   €P| j                  }|€d}nt        |«      }t        || j                  | j
                  | j                  ¬«      }|| _         | j                   S )z¤
        Return the supported PEP 425 tags to check wheel candidates against.

        The tags are returned in order of preference (most preferred first).
        N)Úversionr   r   Úimpl)r   r   r	   r   r   r   r   )r   r   r2   Útagss       r    Úget_sorted_tagszTargetPython.get_sorted_tagsX   sl   € ð ×ÑÐ#ð #×9Ñ9ˆOØÐ&Ø‘ä/°Ó@�ä ØØŸ.™.Ø—Y‘YØ×(Ñ(ô	ˆDð  $ˆDÔà×ÑÐr"   c                 ón   — | j                   €t        | j                  «       «      | _         | j                   S )zlExactly the same as get_sorted_tags, but returns a set.

        This is important for performance.
        )r   Úsetr5   )r   s    r    Úget_unsorted_tagszTargetPython.get_unsorted_tagsq   s2   € ð
 ×ÑÐ'Ü#& t×';Ñ';Ó'=Ó#>ˆDÔ à×#Ñ#Ð#r"   )NNNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r   r   r   Úintr!   r0   r   r5   r   r8   r+   r"   r    r   r   
   s¡   „ ñò
	€Ið *.Ø59Ø$(Ø(,ñ'8à˜D ™IÑ&ð'8ð " %¨¨S¨¡/Ñ2ð'8ð �t˜C‘yÑ!ð	'8ð
 ! ™ð'8ð 
ó'8ðR
˜có 
ð(   c¡ó  ð2$ 3 s¡8ô $r"   r   )r   Útypingr   r   r   r   Úpip._vendor.packaging.tagsr   Ú&pip._internal.utils.compatibility_tagsr   r	   Úpip._internal.utils.miscr
   r   r+   r"   r    ú<module>rC      s#   ðÛ 
ß -Ó -å *ç WÝ ;÷o$ò o$r"   