Removed underscore_to_camelcase

No need to bother both developers (that need to create class names compatible 
with file name, which is not obvious if not looking into main Powerline class) 
and computer (that needs to recompute class name each time) if it is possible to 
bother only developers (or only computer, but this contributes to higher startup 
times).

About not obvious: when you look into zsh_prompt.py and see only 
ZshPromptRenderer name you only think that powerline upstream is following 
strict code style. You don’t think there is a technical reason for such naming, 
like you don’t think there is technical reason for having blank lines. When you 
look into zsh_prompt.py and see `renderer = ZshPromptRenderer` it is obvious 
that there is technical reason for writing code this way because new variable is 
never used in the module itself.
This commit is contained in:
ZyX 2013-03-11 22:22:18 +04:00
parent 696478593d
commit b2b05cb81c
11 changed files with 27 additions and 17 deletions

View File

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

View File

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

View File

@ -11,3 +11,6 @@ class BashPromptRenderer(ShellRenderer):
@staticmethod
def escape(string):
return string.replace('\\', '\\\\').replace('$', '\\$').replace('`', '\\`')
renderer = BashPromptRenderer

View File

@ -7,3 +7,6 @@ class IpythonRenderer(ShellRenderer):
'''Powerline ipython segment renderer.'''
escape_hl_start = '\x01'
escape_hl_end = '\x02'
renderer = IpythonRenderer

View File

@ -29,3 +29,6 @@ class PangoMarkupRenderer(Renderer):
if attr & ATTR_UNDERLINE:
awesome_attr += ['underline="single"']
return '<span ' + ' '.join(awesome_attr) + '>' + contents + '</span>'
renderer = PangoMarkupRenderer

View File

@ -65,3 +65,6 @@ class ShellRenderer(Renderer):
@staticmethod
def escape(string):
return string.replace('\\', '\\\\')
renderer = ShellRenderer

View File

@ -39,3 +39,6 @@ class TmuxRenderer(Renderer):
else:
tmux_attr += ['nounderscore']
return '#[' + ','.join(tmux_attr) + ']'
renderer = TmuxRenderer

View File

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

View File

@ -11,3 +11,6 @@ class ZshPromptRenderer(ShellRenderer):
@staticmethod
def escape(string):
return string.replace('%', '%%').replace('\\', '\\\\')
renderer = ZshPromptRenderer

View File

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

View File

@ -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'}})