[tor-commits] [stem/master] Normalized stem.util.term.format to return unicode

atagar at torproject.org atagar at torproject.org
Wed Jun 14 16:37:13 UTC 2017


commit a4a59d0b309ebb07123c633aeae8cb3907ce1eb2
Author: Damian Johnson <atagar at torproject.org>
Date:   Wed Jun 14 09:38:30 2017 -0700

    Normalized stem.util.term.format to return unicode
    
    An anonymous user reports that the following line in the 'to russia with love'
    tutorial fails for python3...
    
      print(term.format(query("https://www.atagar.com/echo.php"), term.Color.BLUE))
    
    On relection I want stem.util.term.format() to accept both bytes and unicode,
    so normalizing the input once we get it.
---
 docs/change_log.rst | 1 +
 stem/util/term.py   | 8 +++++++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/docs/change_log.rst b/docs/change_log.rst
index 84f7493..50158ca 100644
--- a/docs/change_log.rst
+++ b/docs/change_log.rst
@@ -70,6 +70,7 @@ The following are only available within Stem's `git repository
   * Added cwd argument to :func:`~stem.util.system.call`
   * Added :class:`~stem.util.test_tools.TimedTestRunner` and :func:`~stem.util.test_tools.test_runtimes`
   * Supporing pid arguments in :func:`~stem.util.system.is_running`
+  * Normalized :func:`~stem.util.term.format` to return unicode
 
  * **Interpreter**
 
diff --git a/stem/util/term.py b/stem/util/term.py
index 895c4e9..68fa817 100644
--- a/stem/util/term.py
+++ b/stem/util/term.py
@@ -115,15 +115,21 @@ def format(msg, *attr):
   * `termcolor <https://pypi.python.org/pypi/termcolor>`_
   * `colorama <https://pypi.python.org/pypi/colorama>`_
 
+  .. versionchanged:: 1.6.0
+     Normalized return value to be unicode to better support python 2/3
+     compatibility.
+
   :param str msg: string to be formatted
   :param str attr: text attributes, this can be :data:`~stem.util.term.Color`,
     :data:`~stem.util.term.BgColor`, or :data:`~stem.util.term.Attr` enums
     and are case insensitive (so strings like 'red' are fine)
 
-  :returns: **str** wrapped with ANSI escape encodings, starting with the given
+  :returns: **unicode** wrapped with ANSI escape encodings, starting with the given
     attributes and ending with a reset
   """
 
+  msg = stem.util.str_tools._to_unicode(msg)
+
   if DISABLE_COLOR_SUPPORT:
     return msg
 



More information about the tor-commits mailing list