
    q"h                     `    S SK r S SKJrJrJrJr  S SKJr  S SKJ	r	J
r
  S SKJr   " S S5      rg)    N)ListOptionalSetTuple)Tag)get_supportedversion_info_to_nodot)normalize_version_infoc                       \ rS rSrSr/ SQr    SS\\\      S\\	\
S4      S\\\      S	\\   S
S4
S jjrS
\4S jrS
\\   4S jrS
\\   4S jrSrg)TargetPython
   zl
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                     X l         Uc  [        R                  SS nO[        U5      nSR	                  [        [        USS 5      5      nX0l        X@l        Xl	        XPl
        X l        SU l        SU l        g)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         T/var/www/html/env/lib/python3.13/site-packages/pip/_internal/models/target_python.py__init__TargetPython.__init__   su    , '6#"!..r2O4_EOXXc#r':;<
	,"$. 1537    c                     SnU R                   b"  SR                  S U R                    5       5      nSU R                  4SU4SU R                  4SU R                  4/nSR                  S	 U 5       5      $ )
z4
Format the given, non-None attributes for display.
Nr   c              3   8   #    U  H  n[        U5      v   M     g 7f)N)r   ).0parts     r!   	<genexpr>,TargetPython.format_given.<locals>.<genexpr>J   s      '&AdD		&As   r   r   r   r    c              3   @   #    U  H  u  pUc  M
  U SU< 3v   M     g 7f)N= )r'   keyvalues      r!   r)   r*   T   s%      
1;:3use1UIs   	)r   r   r   r   r   )r    display_version
key_valuess      r!   format_givenTargetPython.format_givenD   s     &&2!hh '&*&A&A' O
 $..)_-TYYt223	

 xx 
1;
 
 	
r$   c                     U R                   cM  U R                  nUc  SnO[        U5      n[        UU R                  U R
                  U R                  S9nX0l         U R                   $ )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   r6   tagss       r!   get_sorted_tagsTargetPython.get_sorted_tagsX   sj     # #99O&/@ ..YY((	D  $r$   c                 p    U R                   c  [        U R                  5       5      U l         U R                   $ )z\Exactly the same as get_sorted_tags, but returns a set.

This is important for performance.
)r   setr9   )r    s    r!   get_unsorted_tagsTargetPython.get_unsorted_tagsq   s2    
 '#&t';';'=#>D ###r$   )r   r   r   r   r   r   r   r   )NNNN)__name__
__module____qualname____firstlineno____doc__	__slots__r   r   r   r   intr"   r3   r   r9   r   r=   __static_attributes__r.   r$   r!   r   r   
   s    
	I *.59$((,'8DI&'8 "%S/2'8 tCy!	'8
 !'8 
'8R
c 
( c  2$3s8 $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>rK      s#    
 - - * W ;o$ o$r$   