def trace( self, overrides=None ):
		"""
		Send debug information about the containing function call to the logger.

		@keyword overrides: a dict of parameter names and values. When printing
			the parent function call's parameters, this is checked for overrides
			to display instead of the actual value.
		@return None
		"""
		if not isinstance(self.logger, LogSilent): # avoid pointless computing
			try:
				# get frame
				frame  = inspect.stack()[1][0]

				# get names
				module = inspect.getmodule( frame.f_code )
				if module is not None:
					module = module.__name__
				else:
					module = ""
				function = frame.f_code.co_name

				# get arguments
				args = inspect.getargvalues( frame )
				if overrides:
					for k in overrides.keys():
						args[3][k] = overrides[k]
				if args[0][0] == 'self':
					args[0].pop(0)
					del args[3]['self']

				arg_string = inspect.formatargvalues(
					args        = args[0],
					varargs     = args[1],
					varkw       = args[2],
					locals      = args[3],
					formatvalue = lambda v: u'=%s' % self._FormatArg(self.Decode(v))
				)

				# trace
				self.logger.Log((module, function, arg_string) % '%s::%s%s')
			finally:
				del frame
dataset/ETHPy150Open Pathoschild/stewbot/stewbot/components/BaseClass.py/BaseClass.trace/swapped operands of `%`