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
--- 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.