diff --git a/powerline/__init__.py b/powerline/__init__.py index 752d845a..3ef4c554 100644 --- a/powerline/__init__.py +++ b/powerline/__init__.py @@ -6,19 +6,18 @@ import os import sys from powerline.colorscheme import Colorscheme -from powerline.lib import underscore_to_camelcase def open_file(path): return open(path, 'r') -def load_json_config(search_paths, config_file, load=json.load, open=open_file): +def load_json_config(search_paths, config_file, load=json.load, open_file=open_file): config_file += '.json' for path in search_paths: config_file_path = os.path.join(path, config_file) if os.path.isfile(config_file_path): - with open(config_file_path) as config_file_fp: + with open_file(config_file_path) as config_file_fp: return load(config_file_fp) raise IOError('Config file not found in search path: {0}'.format(config_file)) @@ -65,9 +64,8 @@ class Powerline(object): # Load and initialize extension renderer renderer_module_name = renderer_module or ext renderer_module_import = 'powerline.renderers.{0}'.format(renderer_module_name) - renderer_class_name = '{0}Renderer'.format(underscore_to_camelcase(renderer_module_name)) try: - Renderer = getattr(__import__(renderer_module_import, fromlist=[renderer_class_name]), renderer_class_name) + Renderer = __import__(renderer_module_import, fromlist=['renderer']).renderer except ImportError as e: sys.stderr.write('Error while importing renderer module: {0}\n'.format(e)) sys.exit(1) diff --git a/powerline/lib/__init__.py b/powerline/lib/__init__.py index 549d7455..fc97407d 100644 --- a/powerline/lib/__init__.py +++ b/powerline/lib/__init__.py @@ -7,11 +7,6 @@ from powerline.lib.humanize_bytes import humanize_bytes # NOQA from powerline.lib.url import urllib_read, urllib_urlencode # NOQA -def underscore_to_camelcase(string): - '''Return a underscore_separated_string as CamelCase.''' - return ''.join(word.capitalize() or '_' for word in string.split('_')) - - def mergedicts(d1, d2): '''Recursively merge two dictionaries. First dictionary is modified in-place. ''' diff --git a/powerline/renderers/bash_prompt.py b/powerline/renderers/bash_prompt.py index b9f911ad..01f42f74 100644 --- a/powerline/renderers/bash_prompt.py +++ b/powerline/renderers/bash_prompt.py @@ -11,3 +11,6 @@ class BashPromptRenderer(ShellRenderer): @staticmethod def escape(string): return string.replace('\\', '\\\\').replace('$', '\\$').replace('`', '\\`') + + +renderer = BashPromptRenderer diff --git a/powerline/renderers/ipython.py b/powerline/renderers/ipython.py index d1e4c7bd..2fa63acd 100644 --- a/powerline/renderers/ipython.py +++ b/powerline/renderers/ipython.py @@ -7,3 +7,6 @@ class IpythonRenderer(ShellRenderer): '''Powerline ipython segment renderer.''' escape_hl_start = '\x01' escape_hl_end = '\x02' + + +renderer = IpythonRenderer diff --git a/powerline/renderers/pango_markup.py b/powerline/renderers/pango_markup.py index 54e78868..f5e85b6a 100644 --- a/powerline/renderers/pango_markup.py +++ b/powerline/renderers/pango_markup.py @@ -29,3 +29,6 @@ class PangoMarkupRenderer(Renderer): if attr & ATTR_UNDERLINE: awesome_attr += ['underline="single"'] return '' + contents + '' + + +renderer = PangoMarkupRenderer diff --git a/powerline/renderers/shell.py b/powerline/renderers/shell.py index e6e82019..40777c46 100644 --- a/powerline/renderers/shell.py +++ b/powerline/renderers/shell.py @@ -65,3 +65,6 @@ class ShellRenderer(Renderer): @staticmethod def escape(string): return string.replace('\\', '\\\\') + + +renderer = ShellRenderer diff --git a/powerline/renderers/tmux.py b/powerline/renderers/tmux.py index 57dd3cd8..34e4329e 100644 --- a/powerline/renderers/tmux.py +++ b/powerline/renderers/tmux.py @@ -39,3 +39,6 @@ class TmuxRenderer(Renderer): else: tmux_attr += ['nounderscore'] return '#[' + ','.join(tmux_attr) + ']' + + +renderer = TmuxRenderer diff --git a/powerline/renderers/vim.py b/powerline/renderers/vim.py index 5099e4dc..13f80d21 100644 --- a/powerline/renderers/vim.py +++ b/powerline/renderers/vim.py @@ -9,6 +9,7 @@ from powerline.theme import Theme import vim + vim_mode = vim_get_func('mode') vim_getwinvar = vim_get_func('getwinvar') vim_setwinvar = vim_get_func('setwinvar') @@ -120,3 +121,6 @@ class VimRenderer(Renderer): attr=','.join(hl_group['attr']), )) return '%#' + self.hl_groups[(fg, bg, attr)]['name'] + '#' + + +renderer = VimRenderer diff --git a/powerline/renderers/zsh_prompt.py b/powerline/renderers/zsh_prompt.py index f66f7359..2e6e5e77 100644 --- a/powerline/renderers/zsh_prompt.py +++ b/powerline/renderers/zsh_prompt.py @@ -11,3 +11,6 @@ class ZshPromptRenderer(ShellRenderer): @staticmethod def escape(string): return string.replace('%', '%%').replace('\\', '\\\\') + + +renderer = ZshPromptRenderer diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 1ae26355..bd5f9e89 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -81,9 +81,8 @@ class TestConfig(TestCase): from powerline.segments import common from imp import reload reload(common) - from powerline.shell import ShellPowerline + from powerline import Powerline with replace_module_attr(common, 'urllib_read', urllib_read): - from powerline import Powerline Powerline(ext='wm', renderer_module='pango_markup').renderer.render() reload(common) diff --git a/tests/test_lib.py b/tests/test_lib.py index e48730d1..5b3e2192 100644 --- a/tests/test_lib.py +++ b/tests/test_lib.py @@ -1,5 +1,5 @@ # vim:fileencoding=utf-8:noet -from powerline.lib import mergedicts, underscore_to_camelcase, add_divider_highlight_group, humanize_bytes +from powerline.lib import mergedicts, add_divider_highlight_group, humanize_bytes from powerline.lib.vcs import guess from subprocess import call, PIPE import os @@ -8,10 +8,6 @@ from tests import TestCase class TestLib(TestCase): - def test_underscore_to_camelcase(self): - self.assertEqual(underscore_to_camelcase('abc_def_ghi'), 'AbcDefGhi') - self.assertEqual(underscore_to_camelcase('abc_def__ghi'), 'AbcDef_Ghi') - def test_mergedicts(self): d = {} mergedicts(d, {'abc': {'def': 'ghi'}})