# HG changeset patch # User Augie Fackler # Date 1560370101 14400 # Node ID adb636392b3f9a71f6cd8c69a5b66276df15cd8b # Parent 307f67d4aee37fc8d7246ef8ef84b6c429f3ae1b 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 diff -r 307f67d4aee3 -r adb636392b3f 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.