예제 #1
0
    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)
예제 #2
0
파일: core.py 프로젝트: tystr/.dotfiles
	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)
예제 #3
0
	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)
예제 #4
0
	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')