summaryrefslogtreecommitdiffstats
path: root/iredis/renders.py
diff options
context:
space:
mode:
Diffstat (limited to 'iredis/renders.py')
-rw-r--r--iredis/renders.py18
1 files changed, 16 insertions, 2 deletions
diff --git a/iredis/renders.py b/iredis/renders.py
index 02470f0..2898c42 100644
--- a/iredis/renders.py
+++ b/iredis/renders.py
@@ -56,6 +56,8 @@ class OutputRender:
return value
if isinstance(value, int):
return str(value).encode()
+ if isinstance(value, str):
+ return value.encode()
if isinstance(value, list):
return _render_raw_list(value)
@@ -78,7 +80,7 @@ class OutputRender:
@staticmethod
def render_nested_pair(value):
"""
- For redis internel responses.
+ For redis internal responses.
Always decode with utf-8
Render nested list.
Items come as pairs.
@@ -169,6 +171,16 @@ class OutputRender:
return FormattedText([("class:success", text)])
@staticmethod
+ def render_help(raw):
+ """
+ render help text message.
+ the comand like ``ACL HELP`` and ``MEMORY HELP``
+ will return a list of strings.
+ we render it as plain text
+ """
+ return FormattedText([("class:string", _render_raw_list(raw).decode())])
+
+ @staticmethod
def render_transaction_queue(text):
"""
Used when client session is in a transaction.
@@ -344,6 +356,8 @@ def _render_raw_list(bytes_items):
flatten_items.append(item)
elif isinstance(item, int):
flatten_items.append(str(item).encode())
+ elif isinstance(item, str):
+ flatten_items.append(item.encode())
elif isinstance(item, list):
flatten_items.append(_render_raw_list(item))
return b"\n".join(flatten_items)
@@ -387,7 +401,7 @@ def _render_scan(render_response, response):
rendered = [
("class:type", "(cursor) "),
- ("class:integer", cursor.decode()),
+ ("class:integer", cursor if isinstance(cursor, str) else cursor.decode()),
("", "\n"),
]
rendered_keys = render_response(responses)