Skip to content

Commit 8be6c97

Browse files
committed
Add site.py site-packages tracing in verbose mode
1 parent ef17fdb commit 8be6c97

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

Lib/site.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@
8787
USER_BASE = None
8888

8989

90+
def _trace(message):
91+
if sys.flags.verbose:
92+
print(message,file=sys.stderr)
93+
9094
def makepath(*paths):
9195
dir = os.path.join(*paths)
9296
try:
@@ -155,6 +159,7 @@ def addpackage(sitedir, name, known_paths):
155159
else:
156160
reset = False
157161
fullname = os.path.join(sitedir, name)
162+
_trace("Processing .pth file: %r" % fullname)
158163
try:
159164
f = open(fullname, "r")
160165
except OSError:
@@ -189,6 +194,7 @@ def addpackage(sitedir, name, known_paths):
189194
def addsitedir(sitedir, known_paths=None):
190195
"""Add 'sitedir' argument to sys.path if missing and handle .pth files in
191196
'sitedir'"""
197+
_trace("Adding directory: %r" % sitedir)
192198
if known_paths is None:
193199
known_paths = _init_pathinfo()
194200
reset = True
@@ -309,6 +315,7 @@ def addusersitepackages(known_paths):
309315
"""
310316
# get the per user site-package path
311317
# this call will also make sure USER_BASE and USER_SITE are set
318+
_trace("Processing user site-packages")
312319
user_site = getusersitepackages()
313320

314321
if ENABLE_USER_SITE and os.path.isdir(user_site):
@@ -344,6 +351,7 @@ def getsitepackages(prefixes=None):
344351

345352
def addsitepackages(known_paths, prefixes=None):
346353
"""Add site-packages to sys.path"""
354+
_trace("Processing global site-packages")
347355
for sitedir in getsitepackages(prefixes):
348356
if os.path.isdir(sitedir):
349357
addsitedir(sitedir, known_paths)

Lib/test/test_site.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,15 @@ def test_no_home_directory(self):
310310
mock_addsitedir.assert_not_called()
311311
self.assertFalse(known_paths)
312312

313+
def test_trace(self):
314+
import io
315+
message="bla-bla-bla"
316+
for verbose, out in (True, message+"\n"), (False, ""):
317+
with mock.patch('sys.flags', mock.Mock(verbose=verbose)),\
318+
mock.patch('sys.stderr', io.StringIO()):
319+
site._trace(message)
320+
self.assertEqual(sys.stderr.getvalue(), out)
321+
313322

314323
class PthFile(object):
315324
"""Helper class for handling testing of .pth files"""
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Added site.py site-packages tracing in verbose mode

0 commit comments

Comments
 (0)