demandimport: add tracing coverage for Python 3
authorAugie Fackler <augie@google.com>
Wed, 12 Jun 2019 16:08:21 -0400
changeset 42474 adb636392b3f
parent 42473 307f67d4aee3
child 42475 ff562d711919
demandimport: add tracing coverage for Python 3 This makes things feel a little less mysterious when modules are being imported. Differential Revision: https://phab.mercurial-scm.org/D6523
hgdemandimport/demandimportpy3.py
--- a/hgdemandimport/demandimportpy3.py	Fri Jun 14 10:21:47 2019 -0700
+++ b/hgdemandimport/demandimportpy3.py	Wed Jun 12 16:08:21 2019 -0400
@@ -32,6 +32,8 @@
 import importlib.util
 import sys
 
+from . import tracing
+
 _deactivated = False
 
 class _lazyloaderex(importlib.util.LazyLoader):
@@ -40,10 +42,11 @@
     """
     def exec_module(self, module):
         """Make the module load lazily."""
-        if _deactivated or module.__name__ in ignores:
-            self.loader.exec_module(module)
-        else:
-            super().exec_module(module)
+        with tracing.log('demandimport %s', module):
+            if _deactivated or module.__name__ in ignores:
+                self.loader.exec_module(module)
+            else:
+                super().exec_module(module)
 
 # This is 3.6+ because with Python 3.5 it isn't possible to lazily load
 # extensions. See the discussion in https://bugs.python.org/issue26186 for more.