7fhddlZddlmZmZmZmZddlmZddlm Z m Z ddl m Z GddZ dS)N)ListOptionalSetTuple)Tag) get_supportedversion_info_to_nodot)normalize_version_infoc eZdZdZgdZ ddeeedeee dfdeeedeed df d Z d efd Z d ee fd Z d ee fd ZdS) TargetPythonzx Encapsulates the properties of a Python interpreter one is targeting for a package install, download, etc. )_given_py_version_infoabisimplementation platforms py_versionpy_version_info _valid_tags_valid_tags_setNrr.rrreturnc"||_|tjdd}nt|}dt t |dd}||_||_||_ ||_ ||_ d|_ d|_ dS)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 joinmapstrrrrrrrr)selfrrrrrs /builddir/build/BUILD/imunify360-venv-2.3.5/opt/imunify360/venv/lib/python3.11/site-packages/pip/_internal/models/target_python.py__init__zTargetPython.__init__s,'6#  "!.rr2OO4_EEOXXc#rr':;;<<  ,"$.1537cd}|j$dd|jD}d|jfd|fd|jfd|jfg}dd |DS) zD Format the given, non-None attributes for display. Nrc34K|]}t|VdS)N)r).0parts r z,TargetPython.format_given..Js9''"D ''''''r"rrrr c3.K|]\}}||d|VdS)N=)r%keyvalues r r'z,TargetPython.format_given..TsB  #-3u?Ps  U  ?P?P?P?P  r")r rrrr)rdisplay_version key_valuess r format_givenzTargetPython.format_givenDs  & 2!hh''&*&A'''O $. ) _ - TY  t2 3  xx  1;      r"c|jD|j}|d}nt|}t||j|j|j}||_|jS)z Return the supported PEP 425 tags to check wheel candidates against. The tags are returned in order of preference (most preferred first). N)versionrrimpl)rr r rrrr)rrr2tagss r get_sorted_tagszTargetPython.get_sorted_tagsXsk   ##9O&/@@ .Y( D $D r"cj|j&t||_|jS)zlExactly the same as get_sorted_tags, but returns a set. This is important for performance. )rsetr5)rs r get_unsorted_tagszTargetPython.get_unsorted_tagsqs2   '#&t';';'='=#>#>D ##r")NNNN)__name__ __module__ __qualname____doc__ __slots__rrrrintr!r0rr5rr8r+r"r r r s   I*.59$((, '8'8DI&'8"%S/2'8tCy! '8 ! '8  '8'8'8'8R c    ( c    2$3s8$$$$$$r"r )rtypingrrrrpip._vendor.packaging.tagsr&pip._internal.utils.compatibility_tagsrr pip._internal.utils.miscr r r+r"r rCs ------------******WWWWWWWW;;;;;;o$o$o$o$o$o$o$o$o$o$r"