5
5
6
6
import locale
7
7
import logging
8
+ import os
8
9
import sys
9
10
11
+ from pip ._vendor .certifi import where
12
+
10
13
from pip ._internal .cli import cmdoptions
11
14
from pip ._internal .cli .base_command import Command
12
15
from pip ._internal .cli .cmdoptions import make_target_python
17
20
from pip ._internal .wheel import format_tag
18
21
19
22
if MYPY_CHECK_RUNNING :
20
- from typing import Any , List
23
+ from typing import Any , List , Optional
21
24
from optparse import Values
22
25
23
26
logger = logging .getLogger (__name__ )
24
27
25
28
26
29
def show_value (name , value ):
27
- # type: (str, str) -> None
30
+ # type: (str, Optional[ str] ) -> None
28
31
logger .info ('{}: {}' .format (name , value ))
29
32
30
33
@@ -75,6 +78,25 @@ def show_tags(options):
75
78
logger .info (msg )
76
79
77
80
81
+ def ca_bundle_info (config ):
82
+ levels = set ()
83
+ for key , value in config .items ():
84
+ levels .add (key .split ('.' )[0 ])
85
+
86
+ if not levels :
87
+ return "Not specified"
88
+
89
+ levels_that_override_global = ['install' , 'wheel' , 'download' ]
90
+ global_overriding_level = [
91
+ level for level in levels if level in levels_that_override_global
92
+ ]
93
+ if not global_overriding_level :
94
+ return 'global'
95
+
96
+ levels .remove ('global' )
97
+ return ", " .join (levels )
98
+
99
+
78
100
class DebugCommand (Command ):
79
101
"""
80
102
Display debug information.
@@ -90,6 +112,7 @@ def __init__(self, *args, **kw):
90
112
cmd_opts = self .cmd_opts
91
113
cmdoptions .add_target_python_options (cmd_opts )
92
114
self .parser .insert_option_group (0 , cmd_opts )
115
+ self .parser .config .load ()
93
116
94
117
def run (self , options , args ):
95
118
# type: (Values, List[Any]) -> int
@@ -110,6 +133,11 @@ def run(self, options, args):
110
133
show_value ('sys.platform' , sys .platform )
111
134
show_sys_implementation ()
112
135
136
+ show_value ("'cert' config value" , ca_bundle_info (self .parser .config ))
137
+ show_value ("REQUESTS_CA_BUNDLE" , os .environ .get ('REQUESTS_CA_BUNDLE' ))
138
+ show_value ("CURL_CA_BUNDLE" , os .environ .get ('CURL_CA_BUNDLE' ))
139
+ show_value ("pip._vendor.certifi.where()" , where ())
140
+
113
141
show_tags (options )
114
142
115
143
return SUCCESS
0 commit comments