6
6
import warnings
7
7
import platform
8
8
import rebuildpython
9
+ import re
9
10
10
11
import __np__
11
12
import __np__ .packaging
29
30
builtin_packages = ensurepip ._get_packages ()
30
31
31
32
33
+ import pip ._internal .utils .subprocess
34
+
35
+ call_subprocess_orig = pip ._internal .utils .subprocess .call_subprocess
36
+
37
+ def our_call_subprocess (
38
+ cmd ,
39
+ show_stdout = False ,
40
+ cwd = None ,
41
+ on_returncode = "raise" ,
42
+ extra_ok_returncodes = None ,
43
+ extra_environ = None ,
44
+ unset_environ = None ,
45
+ spinner = None ,
46
+ log_failed_cmd = True ,
47
+ stdout_only = False ,
48
+ * ,
49
+ command_desc : str ,
50
+ ):
51
+ if extra_ok_returncodes is None :
52
+ our_extra_ok_returncodes = []
53
+ else :
54
+ our_extra_ok_returncodes = list (extra_ok_returncodes )
55
+
56
+ # Some packages cause this error code to be returned even if all is ok.
57
+ our_extra_ok_returncodes += [3221225477 ]
58
+ return call_subprocess_orig (cmd , show_stdout , cwd , on_returncode , our_extra_ok_returncodes , extra_environ , unset_environ , spinner , log_failed_cmd , stdout_only , command_desc = command_desc )
59
+
60
+ pip ._internal .utils .subprocess .call_subprocess = our_call_subprocess
61
+
62
+
32
63
import pip ._internal .pyproject
33
64
34
65
load_pyproject_toml_orig = pip ._internal .pyproject .load_pyproject_toml
@@ -39,12 +70,14 @@ def our_load_pyproject_toml(use_pep517, pyproject_toml, setup_py, req_name):
39
70
# We will be taking over the build process.
40
71
if os .path .isfile (os .path .join (os .path .dirname (os .path .dirname (pyproject_toml )), "script.json" )):
41
72
return pip ._internal .pyproject .BuildSystemDetails (
42
- [], "__np__.metabuild:managed_build" , [], [real_pip_dir , os .path .dirname (__file__ )])
73
+ [], "__np__.metabuild:managed_build" , [], [os .path .dirname (__file__ ), real_pip_dir ])
43
74
44
75
result = load_pyproject_toml_orig (use_pep517 , pyproject_toml , setup_py , req_name )
76
+ if result is None :
77
+ return None
45
78
return pip ._internal .pyproject .BuildSystemDetails (
46
79
[x for x in result .requires if re .split (r'[><=]' , x , 1 )[0 ] not in builtin_packages ],
47
- result .backend , result .check , result . backend_path + [ real_pip_dir ])
80
+ result .backend , result .check , [ os . path . dirname ( __file__ ), real_pip_dir ] + result . backend_path )
48
81
49
82
50
83
0 commit comments