1P d dl Zd dlZd dlZd dlZd dlZd dlZd dlmZm Z d dl mZmZ d dl mZ ddlmZmZ ej e Z e ej Z eedd Zdefd Zdefd ZdefdZdefdZg d Z ej! d e " d ddededej# e dej# e dedej# e defdZ$defdZ%defdZ&defdZ'dedej( eef fdZ)dS ) N)InvalidSchemeCombinationUserInstallationInvalid)SCHEME_KEYSScheme)running_under_virtualenv )get_major_minor_versionis_osx_frameworkget_preferred_schemereturnc N dt v ot o t S )a Check for Apple's ``osx_framework_library`` scheme. Python distributed by Apple's Command Line Tools has this special scheme that's used when: * This is a framework build. * We are installing into the system prefix. This does not account for ``pip install --prefix`` (also means we're not installing to the system prefix), which should use ``posix_prefix``, but logic here means ``_infer_prefix()`` outputs ``osx_framework_library``. But since ``prefix`` is not available for ``sysconfig.get_default_scheme()``, which is the stdlib replacement for ``_infer_prefix()``, presumably Apple wouldn't be able to magically switch between ``osx_framework_library`` and ``posix_prefix``. ``_infer_prefix()`` returning ``osx_framework_library`` means its behavior is consistent whether we use the stdlib implementation or our own, and we deal with this special case in ``get_scheme()`` instead. osx_framework_library)_AVAILABLE_SCHEMESr r /builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el9.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_internal/locations/_sysconfig.py _should_use_osx_framework_prefixr s1 ( #55 (*** r c l t rt d S t rdS t j j dt j } | t v r| S t j j t v rt j j S t j d}|t v r|S t j t v rt j S dS )a! Try to find a prefix scheme for the current platform. This tries: * A special ``osx_framework_library`` for Python distributed by Apple's Command Line Tools, when not running in a virtual environment. * Implementation + OS, used by PyPy on Windows (``pypy_nt``). * Implementation without OS, used by PyPy on POSIX (``pypy``). * OS + "prefix", used by CPython on POSIX (``posix_prefix``). * Just the OS name, used by CPython on Windows (``nt``). If none of the above works, fall back to ``posix_prefix``. prefixr __prefixposix_prefix)_PREFERRED_SCHEME_APIr sysimplementationnameosr )implementation_suffixedsuffixeds r _infer_prefixr 8 s /$X...')) '&&!$!3!8DD27DD"444&& "444!&&'"""H%%% w$$$w>r c t rt d S t rt sd} nt j d} | t v r| S dt vrt dS )z3Try to find a user scheme for the current platform.userosx_framework_user_user posix_user)r r r r r r r r s r _infer_userr' W sy -$V,,, %":"<"<