bb548cdca75a924bf090f2be29779e2be1951a2c
[SubU] /
1 """Legacy editable installation process, i.e. `setup.py develop`.
2 """
3 import logging
4 from typing import List, Optional, Sequence
5
6 from pip._internal.build_env import BuildEnvironment
7 from pip._internal.utils.logging import indent_log
8 from pip._internal.utils.setuptools_build import make_setuptools_develop_args
9 from pip._internal.utils.subprocess import call_subprocess
10
11 logger = logging.getLogger(__name__)
12
13
14 def install_editable(
15     install_options: List[str],
16     global_options: Sequence[str],
17     prefix: Optional[str],
18     home: Optional[str],
19     use_user_site: bool,
20     name: str,
21     setup_py_path: str,
22     isolated: bool,
23     build_env: BuildEnvironment,
24     unpacked_source_directory: str,
25 ) -> None:
26     """Install a package in editable mode. Most arguments are pass-through
27     to setuptools.
28     """
29     logger.info("Running setup.py develop for %s", name)
30
31     args = make_setuptools_develop_args(
32         setup_py_path,
33         global_options=global_options,
34         install_options=install_options,
35         no_user_config=isolated,
36         prefix=prefix,
37         home=home,
38         use_user_site=use_user_site,
39     )
40
41     with indent_log():
42         with build_env:
43             call_subprocess(
44                 args,
45                 command_desc="python setup.py develop",
46                 cwd=unpacked_source_directory,
47             )