mirror of
https://github.com/powerline/powerline.git
synced 2025-04-08 19:25:04 +02:00
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:
parent
696478593d
commit
b2b05cb81c
@ -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)
|
||||
|
@ -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.
|
||||
'''
|
||||
|
@ -11,3 +11,6 @@ class BashPromptRenderer(ShellRenderer):
|
||||
@staticmethod
|
||||
def escape(string):
|
||||
return string.replace('\\', '\\\\').replace('$', '\\$').replace('`', '\\`')
|
||||
|
||||
|
||||
renderer = BashPromptRenderer
|
||||
|
@ -7,3 +7,6 @@ class IpythonRenderer(ShellRenderer):
|
||||
'''Powerline ipython segment renderer.'''
|
||||
escape_hl_start = '\x01'
|
||||
escape_hl_end = '\x02'
|
||||
|
||||
|
||||
renderer = IpythonRenderer
|
||||
|
@ -29,3 +29,6 @@ class PangoMarkupRenderer(Renderer):
|
||||
if attr & ATTR_UNDERLINE:
|
||||
awesome_attr += ['underline="single"']
|
||||
return '<span ' + ' '.join(awesome_attr) + '>' + contents + '</span>'
|
||||
|
||||
|
||||
renderer = PangoMarkupRenderer
|
||||
|
@ -65,3 +65,6 @@ class ShellRenderer(Renderer):
|
||||
@staticmethod
|
||||
def escape(string):
|
||||
return string.replace('\\', '\\\\')
|
||||
|
||||
|
||||
renderer = ShellRenderer
|
||||
|
@ -39,3 +39,6 @@ class TmuxRenderer(Renderer):
|
||||
else:
|
||||
tmux_attr += ['nounderscore']
|
||||
return '#[' + ','.join(tmux_attr) + ']'
|
||||
|
||||
|
||||
renderer = TmuxRenderer
|
||||
|
@ -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
|
||||
|
@ -11,3 +11,6 @@ class ZshPromptRenderer(ShellRenderer):
|
||||
@staticmethod
|
||||
def escape(string):
|
||||
return string.replace('%', '%%').replace('\\', '\\\\')
|
||||
|
||||
|
||||
renderer = ZshPromptRenderer
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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'}})
|
||||
|
Loading…
x
Reference in New Issue
Block a user