49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
# vim:fileencoding=utf-8:noet
|
|
from __future__ import (unicode_literals, division, absolute_import, print_function)
|
|
|
|
import sys
|
|
import platform
|
|
import os
|
|
|
|
from powerline import Powerline
|
|
from powerline.lib.overrides import parse_override_var
|
|
from powerline.lib.dict import mergeargs, mergedicts
|
|
|
|
|
|
class PDBPowerline(Powerline):
|
|
'''PDB-specific powerline bindings
|
|
'''
|
|
def init(self, **kwargs):
|
|
return super(PDBPowerline, self).init(
|
|
ext='pdb',
|
|
renderer_module='pdb',
|
|
**kwargs
|
|
)
|
|
|
|
def do_setup(self, pdb):
|
|
self.update_renderer()
|
|
self.renderer.set_pdb(pdb)
|
|
|
|
def load_main_config(self):
|
|
r = super(PDBPowerline, self).load_main_config()
|
|
config_overrides = os.environ.get('POWERLINE_CONFIG_OVERRIDES')
|
|
if config_overrides:
|
|
mergedicts(r, mergeargs(parse_override_var(config_overrides)))
|
|
return r
|
|
|
|
def load_theme_config(self, name):
|
|
r = super(PDBPowerline, self).load_theme_config(name)
|
|
theme_overrides = os.environ.get('POWERLINE_THEME_OVERRIDES')
|
|
if theme_overrides:
|
|
theme_overrides_dict = mergeargs(parse_override_var(theme_overrides))
|
|
if name in theme_overrides_dict:
|
|
mergedicts(r, theme_overrides_dict[name])
|
|
return r
|
|
|
|
def get_config_paths(self):
|
|
paths = [path for path in os.environ.get('POWERLINE_CONFIG_PATHS', '').split(':') if path]
|
|
return paths or super(PDBPowerline, self).get_config_paths()
|
|
|
|
if sys.version_info < (3,) and platform.python_implementation() == 'PyPy':
|
|
get_encoding = staticmethod(lambda: 'ascii')
|