From 8791d400818ac6cbebbe78543ac93ca4fabac881 Mon Sep 17 00:00:00 2001 From: David Wilson Date: Wed, 27 Jun 2018 15:38:49 +0100 Subject: [PATCH] parent: tidy up call_async() logging. --- mitogen/parent.py | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/mitogen/parent.py b/mitogen/parent.py index d8485e15..486c2850 100644 --- a/mitogen/parent.py +++ b/mitogen/parent.py @@ -451,6 +451,9 @@ def _proxy_connect(name, method_name, kwargs, econtext): class Argv(object): + """ + Wrapper to defer argv formatting when debug logging is disabled. + """ def __init__(self, argv): self.argv = argv @@ -467,6 +470,38 @@ class Argv(object): return ' '.join(map(self.escape, self.argv)) +class CallSpec(object): + """ + Wrapper to defer call argument formatting when debug logging is disabled. + """ + def __init__(self, func, args, kwargs): + self.func = func + self.args = args + self.kwargs = kwargs + + def _get_name(self): + return u'%s.%s' % (self.func.__module__, + self.func.__name__) + + def _get_args(self): + return u', '.join(repr(a) for a in self.args) + + def _get_kwargs(self): + s = u'' + if self.kwargs: + s = u', '.join('%s=%r' % (k, v) for k, v in self.kwargs.items()) + if self.args: + s = u', ' + s + return s + + def __repr__(self): + return '%s(%s%s)' % ( + self._get_name(), + self._get_args(), + self._get_kwargs(), + ) + + class KqueuePoller(mitogen.core.Poller): _repr = 'KqueuePoller()' @@ -949,8 +984,7 @@ class Context(mitogen.core.Context): return hash((self.router, self.context_id)) def call_async(self, fn, *args, **kwargs): - LOG.debug('%r.call_async(%r, *%r, **%r)', - self, fn, args, kwargs) + LOG.debug('%r.call_async(): %r', self, CallSpec(fn, args, kwargs)) return self.send_async(make_call_msg(fn, *args, **kwargs)) def call(self, fn, *args, **kwargs):