From ce4ebcc686569b4854686e41a6d57a8c946fc9b7 Mon Sep 17 00:00:00 2001 From: eperez13 Date: Sun, 4 Jul 2021 20:27:53 +0200 Subject: [PATCH 1/3] fix lineWrapWidth --- icecream/icecream.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/icecream/icecream.py b/icecream/icecream.py index 5a7ae4c..b62c227 100644 --- a/icecream/icecream.py +++ b/icecream/icecream.py @@ -154,8 +154,8 @@ def format_pair(prefix, arg, value): return '\n'.join(lines) -def argumentToString(obj): - s = DEFAULT_ARG_TO_STRING_FUNCTION(obj) +def argumentToString(obj,lineWrapWidth): + s = DEFAULT_ARG_TO_STRING_FUNCTION(obj,width=lineWrapWidth) s = s.replace('\\n', '\n') # Preserve string newlines in output. return s @@ -232,7 +232,7 @@ def _constructArgumentOutput(self, prefix, context, pairs): def argPrefix(arg): return '%s: ' % arg - pairs = [(arg, self.argToStringFunction(val)) for arg, val in pairs] + pairs = [(arg, self.argToStringFunction(val, self.lineWrapWidth)) for arg, val in pairs] # For cleaner output, if is a literal, eg 3, "string", b'bytes', # etc, only output the value, not the argument and the value, as the # argument and the value will be identical or nigh identical. Ex: with From 1dc5dc6fe42425b8c6a1058d2601147cc1bb4459 Mon Sep 17 00:00:00 2001 From: eperez13 Date: Sun, 4 Jul 2021 21:29:51 +0200 Subject: [PATCH 2/3] fix lineWrapWidth --- icecream/icecream.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/icecream/icecream.py b/icecream/icecream.py index b62c227..71a3071 100644 --- a/icecream/icecream.py +++ b/icecream/icecream.py @@ -154,10 +154,6 @@ def format_pair(prefix, arg, value): return '\n'.join(lines) -def argumentToString(obj,lineWrapWidth): - s = DEFAULT_ARG_TO_STRING_FUNCTION(obj,width=lineWrapWidth) - s = s.replace('\\n', '\n') # Preserve string newlines in output. - return s class IceCreamDebugger: @@ -167,13 +163,22 @@ class IceCreamDebugger: def __init__(self, prefix=DEFAULT_PREFIX, outputFunction=DEFAULT_OUTPUT_FUNCTION, - argToStringFunction=argumentToString, includeContext=False): + argToStringFunction=None, includeContext=False): self.enabled = True self.prefix = prefix self.includeContext = includeContext self.outputFunction = outputFunction + + if argToStringFunction is None: + argToStringFunction = self.argumentToString + self.argToStringFunction = argToStringFunction + def argumentToString(self, obj): + s = DEFAULT_ARG_TO_STRING_FUNCTION(obj,width=self.lineWrapWidth) + s = s.replace('\\n', '\n') # Preserve string newlines in output. + return s + def __call__(self, *args): if self.enabled: callFrame = inspect.currentframe().f_back @@ -232,7 +237,7 @@ def _constructArgumentOutput(self, prefix, context, pairs): def argPrefix(arg): return '%s: ' % arg - pairs = [(arg, self.argToStringFunction(val, self.lineWrapWidth)) for arg, val in pairs] + pairs = [(arg, self.argToStringFunction(val)) for arg, val in pairs] # For cleaner output, if is a literal, eg 3, "string", b'bytes', # etc, only output the value, not the argument and the value, as the # argument and the value will be identical or nigh identical. Ex: with From 9acf0bb126f6b1ea9d72a51e360ec021687c40b5 Mon Sep 17 00:00:00 2001 From: eperez13 Date: Sun, 4 Jul 2021 22:27:00 +0200 Subject: [PATCH 3/3] fix lineWrapWidth --- icecream/icecream.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/icecream/icecream.py b/icecream/icecream.py index 71a3071..9c477a5 100644 --- a/icecream/icecream.py +++ b/icecream/icecream.py @@ -168,11 +168,8 @@ def __init__(self, prefix=DEFAULT_PREFIX, self.prefix = prefix self.includeContext = includeContext self.outputFunction = outputFunction - - if argToStringFunction is None: - argToStringFunction = self.argumentToString - - self.argToStringFunction = argToStringFunction + self.argToStringFunction = self.argumentToString if argToStringFunction is None \ + else argToStringFunction def argumentToString(self, obj): s = DEFAULT_ARG_TO_STRING_FUNCTION(obj,width=self.lineWrapWidth)