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
This commit is contained in:
ZyX 2013-03-11 22:13:43 +04:00
parent 2c445a9356
commit 696478593d
2 changed files with 18 additions and 18 deletions

View File

@ -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

View File

@ -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: