def finish_args(environ, args): """Do some final transformations Transforms ``*_override`` arguments into dictionaries, adding overrides from environment variables. Transforms ``renderer_arg`` argument into dictionary as well, but only if it is true. :param dict environ: Environment from which additional overrides should be taken from. :param args: Arguments object returned by :py:meth:`argparse.ArgumentParser.parse_args`. Will be modified in-place. :return: Object received as second (``args``) argument. """ args.config_override = mergeargs( chain( parse_override_var(environ.get("POWERLINE_CONFIG_OVERRIDES", "")), (parsedotval(v) for v in args.config_override or ()), ) ) args.theme_override = mergeargs( chain( parse_override_var(environ.get("POWERLINE_THEME_OVERRIDES", "")), (parsedotval(v) for v in args.theme_override or ()), ) ) if args.renderer_arg: args.renderer_arg = mergeargs((parsedotval(v) for v in args.renderer_arg), remove=True) args.config_path = [path for path in environ.get("POWERLINE_CONFIG_PATHS", "").split(":") if path] + ( args.config_path or [] ) args.side = args.side[0] return args
def finish_args(environ, args): '''Do some final transformations Transforms ``*_override`` arguments into dictionaries, adding overrides from environment variables. Transforms ``renderer_arg`` argument into dictionary as well, but only if it is true. :param dict environ: Environment from which additional overrides should be taken from. :param args: Arguments object returned by :py:meth:`argparse.ArgumentParser.parse_args`. Will be modified in-place. :return: Object received as second (``args``) argument. ''' args.config_override = mergeargs( chain( parse_override_var(environ.get('POWERLINE_CONFIG_OVERRIDES', '')), (parsedotval(v) for v in args.config_override or ()), )) args.theme_override = mergeargs( chain( parse_override_var(environ.get('POWERLINE_THEME_OVERRIDES', '')), (parsedotval(v) for v in args.theme_override or ()), )) if args.renderer_arg: args.renderer_arg = mergeargs( (parsedotval(v) for v in args.renderer_arg), remove=True) args.config_path = ([ path for path in environ.get('POWERLINE_CONFIG_PATHS', '').split(':') if path ] + (args.config_path or [])) return args
def get_var_config(var): try: val = zsh.getvalue(var) if isinstance(val, dict): return mergeargs([parsedotval((u(k), u(v))) for k, v in val.items()]) elif isinstance(val, (unicode, str, bytes)): return mergeargs(parse_override_var(u(val))) else: return None except: return None
def finish_args(parser, environ, args, is_daemon=False): '''Do some final transformations Transforms ``*_override`` arguments into dictionaries, adding overrides from environment variables. Transforms ``renderer_arg`` argument into dictionary as well, but only if it is true. :param dict environ: Environment from which additional overrides should be taken from. :param args: Arguments object returned by :py:meth:`argparse.ArgumentParser.parse_args`. Will be modified in-place. :return: Object received as second (``args``) argument. ''' args.config_override = mergeargs( chain( parse_override_var(environ.get('POWERLINE_CONFIG_OVERRIDES', '')), (parsedotval(v) for v in args.config_override or ()), )) args.theme_override = mergeargs( chain( parse_override_var(environ.get('POWERLINE_THEME_OVERRIDES', '')), (parsedotval(v) for v in args.theme_override or ()), )) if args.renderer_arg: args.renderer_arg = mergeargs( (parsedotval(v) for v in args.renderer_arg), remove=True) if 'pane_id' in args.renderer_arg: if isinstance(args.renderer_arg['pane_id'], (bytes, unicode)): try: args.renderer_arg['pane_id'] = int( args.renderer_arg['pane_id'].lstrip(' %')) except ValueError: pass if 'client_id' not in args.renderer_arg: args.renderer_arg['client_id'] = args.renderer_arg['pane_id'] args.config_path = ([ path for path in environ.get('POWERLINE_CONFIG_PATHS', '').split(':') if path ] + (args.config_path or [])) if args.ext[0].startswith('wm.'): if not is_daemon: parser.error('WM bindings must be used with daemon only') elif args.ext[0][3:] not in wm_threads: parser.error('WM binding not found') elif not args.side: parser.error('expected one argument') return args
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 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 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