From 696478593d3c9f0ee8352ce5760796866ad5f43d Mon Sep 17 00:00:00 2001 From: ZyX Date: Mon, 11 Mar 2013 22:13:43 +0400 Subject: [PATCH] Move some functions out of classes No need to have static methods that are not supposed to be overridden and that do not benefit from `self' argument they do not receive --- powerline/renderer.py | 25 +++++++++---------------- powerline/renderers/shell.py | 11 +++++++++-- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/powerline/renderer.py b/powerline/renderer.py index e91be682..4d3c497b 100644 --- a/powerline/renderer.py +++ b/powerline/renderer.py @@ -9,6 +9,13 @@ except NameError: NBSP = ' ' +def construct_returned_value(rendered_highlighted, segments, output_raw): + if output_raw: + return rendered_highlighted, ''.join((segment['_rendered_raw'] for segment in segments)) + else: + return rendered_highlighted + + class Renderer(object): def __init__(self, theme_config, local_themes, theme_kwargs, colorscheme, **options): self.__dict__.update(options) @@ -52,7 +59,7 @@ class Renderer(object): if not width: # No width specified, so we don't need to crop or pad anything - return self._returned_value(''.join([segment['_rendered_hl'] for segment in segments]) + self.hlstyle(), segments, output_raw) + return construct_returned_value(''.join([segment['_rendered_hl'] for segment in segments]) + self.hlstyle(), segments, output_raw) # Create an ordered list of segments that can be dropped segments_priority = [segment for segment in sorted(segments, key=lambda segment: segment['priority'], reverse=True) if segment['priority'] > 0] @@ -77,7 +84,7 @@ class Renderer(object): rendered_highlighted = ''.join([segment['_rendered_hl'] for segment in self._render_segments(theme, segments)]) + self.hlstyle() - return self._returned_value(rendered_highlighted, segments, output_raw) + return construct_returned_value(rendered_highlighted, segments, output_raw) def _render_segments(self, theme, segments, render_highlighted=True): '''Internal segment rendering method. @@ -154,24 +161,10 @@ class Renderer(object): segment['_len'] = len(segment['_rendered_raw']) yield segment - @staticmethod - def _returned_value(rendered_highlighted, segments, output_raw): - if output_raw: - return rendered_highlighted, ''.join((segment['_rendered_raw'] for segment in segments)) - else: - return rendered_highlighted - @staticmethod def escape(string): return string - @staticmethod - def _int_to_rgb(int): - r = (int >> 16) & 0xff - g = (int >> 8) & 0xff - b = int & 0xff - return r, g, b - def hlstyle(fg=None, bg=None, attr=None): raise NotImplementedError diff --git a/powerline/renderers/shell.py b/powerline/renderers/shell.py index b2ad0197..e6e82019 100644 --- a/powerline/renderers/shell.py +++ b/powerline/renderers/shell.py @@ -4,6 +4,13 @@ from powerline.renderer import Renderer from powerline.colorscheme import ATTR_BOLD, ATTR_ITALIC, ATTR_UNDERLINE +def int_to_rgb(num): + r = (num >> 16) & 0xff + g = (num >> 8) & 0xff + b = num & 0xff + return r, g, b + + class ShellRenderer(Renderer): '''Powerline shell segment renderer.''' escape_hl_start = '' @@ -25,7 +32,7 @@ class ShellRenderer(Renderer): ansi += [39] else: if self.term_truecolor: - ansi += [38, 2] + list(self._int_to_rgb(fg[1])) + ansi += [38, 2] + list(int_to_rgb(fg[1])) else: ansi += [38, 5, fg[0]] if bg is not None: @@ -33,7 +40,7 @@ class ShellRenderer(Renderer): ansi += [49] else: if self.term_truecolor: - ansi += [48, 2] + list(self._int_to_rgb(bg[1])) + ansi += [48, 2] + list(int_to_rgb(bg[1])) else: ansi += [48, 5, bg[0]] if attr is not None: