def __init__(self, ext, renderer_module=None): self.config_paths = self.get_config_paths() # Load main config file config = self.load_main_config() common_config = config["common"] ext_config = config["ext"][ext] self.ext = ext # Load and initialize colorscheme colorscheme_config = self.load_colorscheme_config(ext_config["colorscheme"]) colors_config = self.load_colors_config() colorscheme = Colorscheme(colorscheme_config, colors_config) # Load and initialize extension theme theme_config = self.load_theme_config(ext_config.get("theme", "default")) common_config["paths"] = [os.path.expanduser(path) for path in common_config.get("paths", [])] self.import_paths = common_config["paths"] theme_kwargs = {"ext": ext, "common_config": common_config, "segment_info": self.get_segment_info()} local_themes = self.get_local_themes(ext_config.get("local_themes", {})) # 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(importlib.import_module(renderer_module_import), renderer_class_name) except ImportError as e: sys.stderr.write("Error while importing renderer module: {0}\n".format(e)) sys.exit(1) options = {"term_truecolor": common_config.get("term_24bit_colors", False)} self.renderer = Renderer(theme_config, local_themes, theme_kwargs, colorscheme, **options)
def __init__(self, ext, renderer_module=None, segment_info=None, renderer_options={}): config_home = os.environ.get('XDG_CONFIG_HOME', os.path.expanduser('~/.config')) config_path = os.path.join(config_home, 'powerline') plugin_path = os.path.join(os.path.realpath(os.path.dirname(__file__)), 'config_files') self.search_paths = [config_path, plugin_path] sys.path[:0] = self.search_paths # Load main config file config = self._load_json_config('config') self.config = config['common'] self.config_ext = config['ext'][ext] # Load and initialize colorscheme colorscheme_config = self._load_json_config(os.path.join('colorschemes', ext, self.config_ext['colorscheme'])) colorscheme = Colorscheme(colorscheme_config) # Load and initialize extension theme theme_config = self._load_theme_config(ext, self.config_ext.get('theme', 'default')) self.config['paths'] = [os.path.expanduser(path) for path in self.config.get('paths', [])] self.get_matcher = Matcher(ext, self.config['paths']).get theme_kwargs = { 'ext': ext, 'colorscheme': colorscheme, 'common_config': self.config, 'segment_info': segment_info, } local_themes = {} for key, local_theme_name in self.config_ext.get('local_themes', {}).items(): key = self.get_matcher(key) local_themes[key] = {'config': self._load_theme_config(ext, local_theme_name)} # 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(importlib.import_module(renderer_module_import), renderer_class_name) except ImportError as e: sys.stderr.write('Error while importing renderer module: {0}\n'.format(e)) sys.exit(1) options = {'term_truecolor': self.config.get('term_24bit_colors', False)} options.update(renderer_options) self.renderer = Renderer(theme_config, local_themes, theme_kwargs, **options)
def __init__(self, ext, renderer_module=None): self.config_paths = self.get_config_paths() # Load main config file config = self.load_main_config() common_config = config['common'] ext_config = config['ext'][ext] self.ext = ext # Load and initialize colorscheme colorscheme_config = self.load_colorscheme_config(ext_config['colorscheme']) colors_config = self.load_colors_config() colorscheme = Colorscheme(colorscheme_config, colors_config) # Load and initialize extension theme theme_config = self.load_theme_config(ext_config.get('theme', 'default')) common_config['paths'] = [os.path.expanduser(path) for path in common_config.get('paths', [])] self.import_paths = common_config['paths'] theme_kwargs = { 'ext': ext, 'common_config': common_config, 'segment_info': self.get_segment_info(), } local_themes = self.get_local_themes(ext_config.get('local_themes', {})) # 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) except ImportError as e: sys.stderr.write('Error while importing renderer module: {0}\n'.format(e)) sys.exit(1) options = {'term_truecolor': common_config.get('term_24bit_colors', False)} self.renderer = Renderer(theme_config, local_themes, theme_kwargs, colorscheme, **options)
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')