Mercurial > repos > guerler > hhblits
comparison lib/python3.8/site-packages/pip/_internal/utils/setuptools_build.py @ 0:9e54283cc701 draft
"planemo upload commit d12c32a45bcd441307e632fca6d9af7d60289d44"
| author | guerler |
|---|---|
| date | Mon, 27 Jul 2020 03:47:31 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:9e54283cc701 |
|---|---|
| 1 import sys | |
| 2 | |
| 3 from pip._internal.utils.typing import MYPY_CHECK_RUNNING | |
| 4 | |
| 5 if MYPY_CHECK_RUNNING: | |
| 6 from typing import List, Optional, Sequence | |
| 7 | |
| 8 # Shim to wrap setup.py invocation with setuptools | |
| 9 # | |
| 10 # We set sys.argv[0] to the path to the underlying setup.py file so | |
| 11 # setuptools / distutils don't take the path to the setup.py to be "-c" when | |
| 12 # invoking via the shim. This avoids e.g. the following manifest_maker | |
| 13 # warning: "warning: manifest_maker: standard file '-c' not found". | |
| 14 _SETUPTOOLS_SHIM = ( | |
| 15 "import sys, setuptools, tokenize; sys.argv[0] = {0!r}; __file__={0!r};" | |
| 16 "f=getattr(tokenize, 'open', open)(__file__);" | |
| 17 "code=f.read().replace('\\r\\n', '\\n');" | |
| 18 "f.close();" | |
| 19 "exec(compile(code, __file__, 'exec'))" | |
| 20 ) | |
| 21 | |
| 22 | |
| 23 def make_setuptools_shim_args( | |
| 24 setup_py_path, # type: str | |
| 25 global_options=None, # type: Sequence[str] | |
| 26 no_user_config=False, # type: bool | |
| 27 unbuffered_output=False # type: bool | |
| 28 ): | |
| 29 # type: (...) -> List[str] | |
| 30 """ | |
| 31 Get setuptools command arguments with shim wrapped setup file invocation. | |
| 32 | |
| 33 :param setup_py_path: The path to setup.py to be wrapped. | |
| 34 :param global_options: Additional global options. | |
| 35 :param no_user_config: If True, disables personal user configuration. | |
| 36 :param unbuffered_output: If True, adds the unbuffered switch to the | |
| 37 argument list. | |
| 38 """ | |
| 39 args = [sys.executable] | |
| 40 if unbuffered_output: | |
| 41 args += ["-u"] | |
| 42 args += ["-c", _SETUPTOOLS_SHIM.format(setup_py_path)] | |
| 43 if global_options: | |
| 44 args += global_options | |
| 45 if no_user_config: | |
| 46 args += ["--no-user-cfg"] | |
| 47 return args | |
| 48 | |
| 49 | |
| 50 def make_setuptools_bdist_wheel_args( | |
| 51 setup_py_path, # type: str | |
| 52 global_options, # type: Sequence[str] | |
| 53 build_options, # type: Sequence[str] | |
| 54 destination_dir, # type: str | |
| 55 ): | |
| 56 # type: (...) -> List[str] | |
| 57 # NOTE: Eventually, we'd want to also -S to the flags here, when we're | |
| 58 # isolating. Currently, it breaks Python in virtualenvs, because it | |
| 59 # relies on site.py to find parts of the standard library outside the | |
| 60 # virtualenv. | |
| 61 args = make_setuptools_shim_args( | |
| 62 setup_py_path, | |
| 63 global_options=global_options, | |
| 64 unbuffered_output=True | |
| 65 ) | |
| 66 args += ["bdist_wheel", "-d", destination_dir] | |
| 67 args += build_options | |
| 68 return args | |
| 69 | |
| 70 | |
| 71 def make_setuptools_clean_args( | |
| 72 setup_py_path, # type: str | |
| 73 global_options, # type: Sequence[str] | |
| 74 ): | |
| 75 # type: (...) -> List[str] | |
| 76 args = make_setuptools_shim_args( | |
| 77 setup_py_path, | |
| 78 global_options=global_options, | |
| 79 unbuffered_output=True | |
| 80 ) | |
| 81 args += ["clean", "--all"] | |
| 82 return args | |
| 83 | |
| 84 | |
| 85 def make_setuptools_develop_args( | |
| 86 setup_py_path, # type: str | |
| 87 global_options, # type: Sequence[str] | |
| 88 install_options, # type: Sequence[str] | |
| 89 no_user_config, # type: bool | |
| 90 prefix, # type: Optional[str] | |
| 91 home, # type: Optional[str] | |
| 92 use_user_site, # type: bool | |
| 93 ): | |
| 94 # type: (...) -> List[str] | |
| 95 assert not (use_user_site and prefix) | |
| 96 | |
| 97 args = make_setuptools_shim_args( | |
| 98 setup_py_path, | |
| 99 global_options=global_options, | |
| 100 no_user_config=no_user_config, | |
| 101 ) | |
| 102 | |
| 103 args += ["develop", "--no-deps"] | |
| 104 | |
| 105 args += install_options | |
| 106 | |
| 107 if prefix: | |
| 108 args += ["--prefix", prefix] | |
| 109 if home is not None: | |
| 110 args += ["--home", home] | |
| 111 | |
| 112 if use_user_site: | |
| 113 args += ["--user", "--prefix="] | |
| 114 | |
| 115 return args | |
| 116 | |
| 117 | |
| 118 def make_setuptools_egg_info_args( | |
| 119 setup_py_path, # type: str | |
| 120 egg_info_dir, # type: Optional[str] | |
| 121 no_user_config, # type: bool | |
| 122 ): | |
| 123 # type: (...) -> List[str] | |
| 124 args = make_setuptools_shim_args(setup_py_path) | |
| 125 if no_user_config: | |
| 126 args += ["--no-user-cfg"] | |
| 127 | |
| 128 args += ["egg_info"] | |
| 129 | |
| 130 if egg_info_dir: | |
| 131 args += ["--egg-base", egg_info_dir] | |
| 132 | |
| 133 return args | |
| 134 | |
| 135 | |
| 136 def make_setuptools_install_args( | |
| 137 setup_py_path, # type: str | |
| 138 global_options, # type: Sequence[str] | |
| 139 install_options, # type: Sequence[str] | |
| 140 record_filename, # type: str | |
| 141 root, # type: Optional[str] | |
| 142 prefix, # type: Optional[str] | |
| 143 header_dir, # type: Optional[str] | |
| 144 home, # type: Optional[str] | |
| 145 use_user_site, # type: bool | |
| 146 no_user_config, # type: bool | |
| 147 pycompile # type: bool | |
| 148 ): | |
| 149 # type: (...) -> List[str] | |
| 150 assert not (use_user_site and prefix) | |
| 151 assert not (use_user_site and root) | |
| 152 | |
| 153 args = make_setuptools_shim_args( | |
| 154 setup_py_path, | |
| 155 global_options=global_options, | |
| 156 no_user_config=no_user_config, | |
| 157 unbuffered_output=True | |
| 158 ) | |
| 159 args += ["install", "--record", record_filename] | |
| 160 args += ["--single-version-externally-managed"] | |
| 161 | |
| 162 if root is not None: | |
| 163 args += ["--root", root] | |
| 164 if prefix is not None: | |
| 165 args += ["--prefix", prefix] | |
| 166 if home is not None: | |
| 167 args += ["--home", home] | |
| 168 if use_user_site: | |
| 169 args += ["--user", "--prefix="] | |
| 170 | |
| 171 if pycompile: | |
| 172 args += ["--compile"] | |
| 173 else: | |
| 174 args += ["--no-compile"] | |
| 175 | |
| 176 if header_dir: | |
| 177 args += ["--install-headers", header_dir] | |
| 178 | |
| 179 args += install_options | |
| 180 | |
| 181 return args |
