2 Backward compatibility for homebrew builds on macOS.
13 @functools.lru_cache()
16 Only enabled for Python 3.9 framework homebrew builds
17 except ensurepip and venv.
19 PY39 = (3, 9) < sys.version_info < (3, 10)
20 framework = sys.platform == 'darwin' and sys._framework
21 homebrew = "Cellar" in sysconfig.get_config_var('projectbase')
22 venv = sys.prefix != sys.base_prefix
23 ensurepip = os.environ.get("ENSUREPIP_OPTIONS")
24 return PY39 and framework and homebrew and not venv and not ensurepip
28 osx_framework_library=dict(
29 stdlib='{installed_base}/{platlibdir}/python{py_version_short}',
30 platstdlib='{platbase}/{platlibdir}/python{py_version_short}',
31 purelib='{homebrew_prefix}/lib/python{py_version_short}/site-packages',
32 platlib='{homebrew_prefix}/{platlibdir}/python{py_version_short}/site-packages',
33 include='{installed_base}/include/python{py_version_short}{abiflags}',
34 platinclude='{installed_platbase}/include/python{py_version_short}{abiflags}',
35 scripts='{homebrew_prefix}/bin',
36 data='{homebrew_prefix}',
41 @functools.lru_cache()
45 homebrew_prefix = subprocess.check_output(['brew', '--prefix'], text=True).strip()
51 Override the selected scheme for posix_prefix.
53 if not enabled() or not name.endswith('_prefix'):
55 return 'osx_framework_library'