profile: drop maybeprofile
It seems sufficiently simple to use "profile(enabled=X)" to not justify having
a dedicated context manager just to read the config.
(I do not have a too strong opinion about this).
--- a/mercurial/dispatch.py Fri Jun 09 12:36:07 2017 +0100
+++ b/mercurial/dispatch.py Fri Jun 09 12:29:29 2017 +0100
@@ -764,7 +764,8 @@
for ui_ in uis:
ui_.setconfig('profiling', 'enabled', 'true', '--profile')
- with profiling.maybeprofile(lui) as profiler:
+ profile = lui.configbool('profiling', 'enabled')
+ with profiling.profile(lui, enabled=profile) as profiler:
# Configure extensions in phases: uisetup, extsetup, cmdtable, and
# reposetup. Programs like TortoiseHg will call _dispatch several
# times so we keep track of configured extensions in _loaded.
--- a/mercurial/hgweb/hgweb_mod.py Fri Jun 09 12:36:07 2017 +0100
+++ b/mercurial/hgweb/hgweb_mod.py Fri Jun 09 12:29:29 2017 +0100
@@ -311,7 +311,8 @@
should be using instances of this class as the WSGI application.
"""
with self._obtainrepo() as repo:
- with profiling.maybeprofile(repo.ui):
+ profile = repo.ui.configbool('profiling', 'enabled')
+ with profiling.profile(repo.ui, enabled=profile):
for r in self._runwsgi(req, repo):
yield r
--- a/mercurial/hgweb/hgwebdir_mod.py Fri Jun 09 12:36:07 2017 +0100
+++ b/mercurial/hgweb/hgwebdir_mod.py Fri Jun 09 12:29:29 2017 +0100
@@ -220,7 +220,8 @@
return False
def run_wsgi(self, req):
- with profiling.maybeprofile(self.ui):
+ profile = self.ui.configbool('profiling', 'enabled')
+ with profiling.profile(self.ui, enabled=profile):
for r in self._runwsgi(req):
yield r
--- a/mercurial/profiling.py Fri Jun 09 12:36:07 2017 +0100
+++ b/mercurial/profiling.py Fri Jun 09 12:29:29 2017 +0100
@@ -219,17 +219,3 @@
val = val.replace('%', '%%')
self._ui.log('profile', val)
self._fp.close()
-
-@contextlib.contextmanager
-def maybeprofile(ui):
- """Profile if enabled, else do nothing.
-
- This context manager can be used to optionally profile if profiling
- is enabled. Otherwise, it does nothing.
-
- The purpose of this context manager is to make calling code simpler:
- just use a single code path for calling into code you may want to profile
- and this function determines whether to start profiling.
- """
- with profile(ui, enabled=ui.configbool('profiling', 'enabled')) as p:
- yield p