From ff78eaa35c3c92e06b77409d7f878eeff40595d2 Mon Sep 17 00:00:00 2001 From: ZyX Date: Mon, 18 Aug 2014 22:45:32 +0400 Subject: [PATCH] Do not override Powerline.setup(), use .do_setup() for this Same reason as for `.__init__()` which was replaced by `.init()` --- powerline/__init__.py | 14 ++++++++++++-- powerline/ipython.py | 3 +-- powerline/shell.py | 3 +-- powerline/vim.py | 3 +-- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/powerline/__init__.py b/powerline/__init__.py index dd3d37c3..1f57940e 100644 --- a/powerline/__init__.py +++ b/powerline/__init__.py @@ -744,11 +744,21 @@ class Powerline(object): def setup(self, *args, **kwargs): '''Setup the environment to use powerline. - To be overridden by subclasses, this one only saves args and kwargs and - unsets shutdown_event. + Must not be overridden by subclasses. This one only saves setup + arguments for :py:meth:`reload` method and calls :py:meth:`do_setup`. ''' self.shutdown_event.clear() self.setup_args = (args, kwargs) + self.do_setup(*args, **kwargs) + + @staticmethod + def do_setup(): + '''Function that does initialization + + Should be overridden by subclasses. May accept any number of regular or + keyword arguments. + ''' + pass def reload(self): '''Reload powerline after update. diff --git a/powerline/ipython.py b/powerline/ipython.py index 7d675058..5626713e 100644 --- a/powerline/ipython.py +++ b/powerline/ipython.py @@ -56,6 +56,5 @@ class IpythonPowerline(Powerline): mergedicts(r, self.theme_overrides[name]) return r - def setup(self, attr, obj): + def do_setup(self, attr, obj): setattr(obj, attr, self) - super(IpythonPowerline, self).setup(attr, obj) diff --git a/powerline/shell.py b/powerline/shell.py index cbd55fae..5920f897 100644 --- a/powerline/shell.py +++ b/powerline/shell.py @@ -43,9 +43,8 @@ class ShellPowerline(Powerline): for key, val in local_themes.items() )) - def setup(self, obj): + def do_setup(self, obj): obj.powerline = self - super(ShellPowerline, self).setup(obj) def get_argparser(parser=None, *args, **kwargs): diff --git a/powerline/vim.py b/powerline/vim.py index 3594a6c0..23a59900 100644 --- a/powerline/vim.py +++ b/powerline/vim.py @@ -110,8 +110,7 @@ class VimPowerline(Powerline): except KeyError: return super(VimPowerline, self).get_config_paths() - def setup(self, pyeval=None, pycmd=None, can_replace_pyeval=True): - super(VimPowerline, self).setup() + def do_setup(self, pyeval=None, pycmd=None, can_replace_pyeval=True): import __main__ if not pyeval: pyeval = 'pyeval' if sys.version_info < (3,) else 'py3eval'