From 06211cbe63e8edd1eafcefcce430595a51e5dbee Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 31 Aug 2014 22:55:26 +0400 Subject: [PATCH] Unify imports Now imports follow the following structure: 1. __future__ line: exactly one line allowed: from __future__ import (unicode_literals, division, absolute_import, print_function) (powerline.shell is the only exception due to problems with argparse). 2. Standard python library imports in a form `import X`. 3. Standard python library imports in a form `from X import Y`. 4. and 5. 2. and 3. for third-party (non-python and non-powerline imports). 6. 3. for powerline non-test imports. 7. and 8. 2. and 3. for powerline testing module imports. Each list entry is separated by exactly one newline from another import. If there is module docstring it goes between `# vim:` comment and `__future__` import. So the structure containing all items is the following: #!/usr/bin/env python # vim:fileencoding=utf-8:noet '''Powerline super module''' import sys from argparse import ArgumentParser import psutil from colormath.color_diff import delta_e_cie2000 from powerline.lib.unicode import u import tests.vim as vim_module from tests import TestCase . --- CONTRIBUTING.rst | 59 ++++++++++++++++ client/powerline.py | 1 - docs/source/conf.py | 2 + docs/source/powerline_autodoc.py | 12 ++-- powerline/__init__.py | 2 +- .../bindings/awesome/powerline-awesome.py | 9 ++- powerline/bindings/config.py | 3 +- powerline/bindings/i3/powerline-i3.py | 12 ++-- powerline/bindings/ipython/post_0_11.py | 5 +- powerline/bindings/ipython/pre_0_11.py | 7 +- powerline/bindings/qtile/widget.py | 1 + powerline/bindings/tmux/__init__.py | 3 +- powerline/bindings/vim/__init__.py | 7 +- powerline/bindings/zsh/__init__.py | 6 +- powerline/colorscheme.py | 7 +- powerline/config.py | 3 +- powerline/ipython.py | 1 + powerline/lib/__init__.py | 5 +- powerline/lib/config.py | 15 ++-- powerline/lib/debug.py | 1 + powerline/lib/humanize_bytes.py | 3 + powerline/lib/inotify.py | 9 +-- powerline/lib/memoize.py | 2 + powerline/lib/monotonic.py | 5 +- powerline/lib/path.py | 2 +- powerline/lib/shell.py | 6 +- powerline/lib/threaded.py | 3 +- powerline/lib/unicode.py | 8 ++- powerline/lib/url.py | 1 + powerline/lib/vcs/__init__.py | 5 +- powerline/lib/vcs/bzr.py | 3 +- powerline/lib/vcs/git.py | 3 +- powerline/lib/vcs/mercurial.py | 2 +- powerline/lib/watcher/__init__.py | 5 +- powerline/lib/watcher/inotify.py | 2 +- powerline/lib/watcher/stat.py | 2 +- powerline/lib/watcher/tree.py | 2 +- powerline/lib/watcher/uv.py | 6 +- powerline/lint/__init__.py | 1 + powerline/lint/inspect.py | 2 +- powerline/lint/markedjson/__init__.py | 6 +- powerline/lint/markedjson/composer.py | 44 ++++++------ powerline/lint/markedjson/constructor.py | 31 ++++----- powerline/lint/markedjson/error.py | 9 +-- powerline/lint/markedjson/events.py | 8 +-- powerline/lint/markedjson/loader.py | 17 ++--- powerline/lint/markedjson/markedvalue.py | 9 +-- powerline/lint/markedjson/nodes.py | 4 ++ powerline/lint/markedjson/parser.py | 69 ++++++++++--------- powerline/lint/markedjson/reader.py | 18 +++-- powerline/lint/markedjson/resolver.py | 19 ++--- powerline/lint/markedjson/scanner.py | 45 +++++------- powerline/lint/markedjson/tokens.py | 4 ++ powerline/listers/vim.py | 7 +- powerline/matchers/__init__.py | 4 ++ powerline/matchers/vim/__init__.py | 4 +- powerline/matchers/vim/plugin/__init__.py | 4 ++ powerline/matchers/vim/plugin/ctrlp.py | 18 +++-- powerline/matchers/vim/plugin/gundo.py | 1 + powerline/matchers/vim/plugin/nerdtree.py | 1 + powerline/renderer.py | 13 ++-- powerline/renderers/i3bar.py | 4 +- powerline/renderers/ipython/__init__.py | 1 + powerline/renderers/pango_markup.py | 5 +- powerline/renderers/shell/__init__.py | 3 +- powerline/renderers/shell/bash.py | 3 +- powerline/renderers/shell/ksh.py | 3 +- powerline/renderers/shell/tcsh.py | 3 +- powerline/renderers/shell/zsh.py | 3 +- powerline/renderers/tmux.py | 3 +- powerline/renderers/vim.py | 19 ++--- powerline/segment.py | 2 +- powerline/segments/__init__.py | 2 +- powerline/segments/common.py | 5 +- powerline/segments/i3wm.py | 1 + powerline/segments/ipython.py | 1 + powerline/segments/shell.py | 1 + powerline/segments/tmux.py | 2 +- powerline/segments/vim/__init__.py | 7 +- powerline/segments/vim/plugin/__init__.py | 4 ++ powerline/segments/vim/plugin/ctrlp.py | 1 + powerline/segments/vim/plugin/nerdtree.py | 1 + powerline/segments/vim/plugin/syntastic.py | 1 + powerline/segments/vim/plugin/tagbar.py | 1 + powerline/shell.py | 2 + powerline/theme.py | 5 +- powerline/vim.py | 3 +- scripts/powerline-config | 3 + scripts/powerline-daemon | 1 + scripts/powerline-lint | 7 +- scripts/powerline-render | 4 ++ setup.py | 4 +- tests/__init__.py | 3 + tests/lib/__init__.py | 2 + tests/lib/config_mock.py | 15 ++-- tests/lib/fsconfig.py | 2 +- tests/matchers.py | 1 - tests/path/vim.py | 2 + tests/test_cmdline.py | 12 ++-- tests/test_config_merging.py | 15 ++-- tests/test_config_reload.py | 2 +- tests/test_configuration.py | 2 +- tests/test_lib.py | 4 +- tests/test_lib_config.py | 3 +- tests/test_provided_config_files.py | 5 +- tests/test_segments.py | 3 +- tests/test_shells/postproc.py | 4 +- tests/test_watcher.py | 2 +- tools/colors_find.py | 5 +- tools/generate_gradients.py | 15 ++-- 110 files changed, 453 insertions(+), 317 deletions(-) diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index e31718f8..2ae9facd 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -67,6 +67,65 @@ Programming style documentation and commit messages. * It is allowed to have too long lines. It is advised though to avoid lines wider then a hundred of characters. +* Imports have the following structure: + + 1. Shebang and modeline in a form + + .. code-block:: python + + #!/usr/bin/env python + # vim:fileencoding=utf-8:noet + + . Modeline is required, shebang is not. If shebang is present file must end + with + + .. code-block:: python + + if __name__ == '__main__': + # Actual script here + + 2. Module docstring. + 3. ``__future__`` import exactly in a form + + .. code-block:: python + + from __future__ import (unicode_literals, division, absolute_import, print_function) + + (powerline.shell is the only exception due to problems with argparse). It + is not separated by newline with shebang and modeline, but is with + docstring. + 4. Standard python library imports in a form ``import X``. + 5. Standard python library imports in a form ``from X import Y``. + 6. Third-party (non-python and non-powerline) library imports in a form + ``import X``. + 7. Third-party library imports in a form ``from X import Y``. + 8. Powerline non-test imports in a form ``from powerline.X import Y``. + 9. Powerline test imports in a form ``import tests.vim as vim_module``. + 10. Powerline test imports in a form ``from tests.X import Y``. + + Each entry is separated by newline from another entry. Any entry except for + the first and third ones is optional. Example with all entries: + + .. code-block:: python + + #!/usr/bin/env python + # vim:fileencoding=utf-8:noet + + '''Powerline super module''' + + import sys + + from argparse import ArgumentParser + + import psutil + + from colormath.color_diff import delta_e_cie2000 + + from powerline.lib.unicode import u + + import tests.vim as vim_module + + from tests import TestCase Submitting changes ================== diff --git a/client/powerline.py b/client/powerline.py index ac3d6356..07a01cb6 100755 --- a/client/powerline.py +++ b/client/powerline.py @@ -1,6 +1,5 @@ #!/usr/bin/env python # vim:fileencoding=utf-8:noet - from __future__ import (unicode_literals, division, absolute_import, print_function) import sys diff --git a/docs/source/conf.py b/docs/source/conf.py index 5d0f2161..f451f462 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -1,8 +1,10 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) import os import sys + sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(os.getcwd())))) sys.path.insert(0, os.path.abspath(os.getcwd())) diff --git a/docs/source/powerline_autodoc.py b/docs/source/powerline_autodoc.py index 55e0af35..971717df 100644 --- a/docs/source/powerline_autodoc.py +++ b/docs/source/powerline_autodoc.py @@ -1,13 +1,13 @@ # vim:fileencoding=utf-8:noet -from sphinx.ext import autodoc +from __future__ import (unicode_literals, division, absolute_import, print_function) + from inspect import formatargspec + +from sphinx.ext import autodoc + from powerline.lint.inspect import getconfigargspec from powerline.segments import Segment - -try: - from __builtin__ import unicode -except ImportError: - unicode = lambda s, enc: s # NOQA +from powerline.lib.unicode import unicode def formatvalue(val): diff --git a/powerline/__init__.py b/powerline/__init__.py index 4f5f32bc..78aa9bb0 100644 --- a/powerline/__init__.py +++ b/powerline/__init__.py @@ -1,6 +1,6 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) -from __future__ import absolute_import import os import sys import logging diff --git a/powerline/bindings/awesome/powerline-awesome.py b/powerline/bindings/awesome/powerline-awesome.py index 3e4125dc..11d27f57 100755 --- a/powerline/bindings/awesome/powerline-awesome.py +++ b/powerline/bindings/awesome/powerline-awesome.py @@ -1,11 +1,14 @@ #!/usr/bin/env python # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) + +import sys + +from time import sleep +from subprocess import Popen, PIPE from powerline import Powerline -import sys -from time import sleep from powerline.lib.monotonic import monotonic -from subprocess import Popen, PIPE powerline = Powerline('wm', renderer_module='pango_markup') powerline.update_renderer() diff --git a/powerline/bindings/config.py b/powerline/bindings/config.py index 042a6e9c..71afca84 100644 --- a/powerline/bindings/config.py +++ b/powerline/bindings/config.py @@ -1,6 +1,5 @@ # vim:fileencoding=utf-8:noet - -from __future__ import absolute_import, unicode_literals, print_function +from __future__ import (unicode_literals, division, absolute_import, print_function) import os import re diff --git a/powerline/bindings/i3/powerline-i3.py b/powerline/bindings/i3/powerline-i3.py index d6d84f59..c5e01c8a 100755 --- a/powerline/bindings/i3/powerline-i3.py +++ b/powerline/bindings/i3/powerline-i3.py @@ -1,15 +1,17 @@ #!/usr/bin/env python # vim:fileencoding=utf-8:noet -from __future__ import print_function - -from powerline import Powerline -from powerline.lib.monotonic import monotonic +from __future__ import (unicode_literals, division, absolute_import, print_function) import sys import time -import i3 + from threading import Lock +import i3 + +from powerline import Powerline +from powerline.lib.monotonic import monotonic + if __name__ == '__main__': name = 'wm' diff --git a/powerline/bindings/ipython/post_0_11.py b/powerline/bindings/ipython/post_0_11.py index 5586fee4..bf2358ac 100644 --- a/powerline/bindings/ipython/post_0_11.py +++ b/powerline/bindings/ipython/post_0_11.py @@ -1,12 +1,13 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) from weakref import ref -from powerline.ipython import IPythonPowerline, RewriteResult - from IPython.core.prompts import PromptManager from IPython.core.magic import Magics, magics_class, line_magic +from powerline.ipython import IPythonPowerline, RewriteResult + @magics_class class PowerlineMagics(Magics): diff --git a/powerline/bindings/ipython/pre_0_11.py b/powerline/bindings/ipython/pre_0_11.py index d5389efe..6e5e356d 100644 --- a/powerline/bindings/ipython/pre_0_11.py +++ b/powerline/bindings/ipython/pre_0_11.py @@ -1,16 +1,17 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) import re from weakref import ref -from powerline.ipython import IPythonPowerline, RewriteResult -from powerline.lib.unicode import string - from IPython.Prompts import BasePrompt from IPython.ipapi import get as get_ipython from IPython.ipapi import TryNext +from powerline.ipython import IPythonPowerline, RewriteResult +from powerline.lib.unicode import string + class IPythonInfo(object): def __init__(self, cache): diff --git a/powerline/bindings/qtile/widget.py b/powerline/bindings/qtile/widget.py index 6c1e6602..83acd9fa 100644 --- a/powerline/bindings/qtile/widget.py +++ b/powerline/bindings/qtile/widget.py @@ -1,4 +1,5 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) from libqtile import bar from libqtile.widget import base diff --git a/powerline/bindings/tmux/__init__.py b/powerline/bindings/tmux/__init__.py index 2adf08f9..d56abde4 100644 --- a/powerline/bindings/tmux/__init__.py +++ b/powerline/bindings/tmux/__init__.py @@ -1,6 +1,5 @@ # vim:fileencoding=utf-8:noet - -from __future__ import absolute_import, unicode_literals, division, print_function +from __future__ import (unicode_literals, division, absolute_import, print_function) import re import os diff --git a/powerline/bindings/vim/__init__.py b/powerline/bindings/vim/__init__.py index eec4da3c..277c37ca 100644 --- a/powerline/bindings/vim/__init__.py +++ b/powerline/bindings/vim/__init__.py @@ -1,4 +1,5 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) import sys import codecs @@ -8,6 +9,10 @@ try: except ImportError: vim = {} +if not hasattr(vim, 'bindeval'): + import json + + if hasattr(vim, 'bindeval'): def vim_get_func(f, rettype=None): '''Return a vim function binding.''' @@ -19,8 +24,6 @@ if hasattr(vim, 'bindeval'): except vim.error: return None else: - import json - class VimFunc(object): '''Evaluate a vim function using vim.eval(). diff --git a/powerline/bindings/zsh/__init__.py b/powerline/bindings/zsh/__init__.py index 9fa82794..46940c80 100644 --- a/powerline/bindings/zsh/__init__.py +++ b/powerline/bindings/zsh/__init__.py @@ -1,12 +1,12 @@ # vim:fileencoding=utf-8:noet -from __future__ import absolute_import, unicode_literals, division, print_function +from __future__ import (unicode_literals, division, absolute_import, print_function) import atexit -import zsh - from weakref import WeakValueDictionary, ref +import zsh + from powerline.shell import ShellPowerline from powerline.lib import parsedotval from powerline.lib.unicode import unicode diff --git a/powerline/colorscheme.py b/powerline/colorscheme.py index a49c5c09..4ae8d74f 100644 --- a/powerline/colorscheme.py +++ b/powerline/colorscheme.py @@ -1,10 +1,9 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) from copy import copy -try: - from __builtin__ import unicode -except ImportError: - unicode = str + +from powerline.lib.unicode import unicode DEFAULT_MODE_KEY = None diff --git a/powerline/config.py b/powerline/config.py index c895da5e..edcf921f 100644 --- a/powerline/config.py +++ b/powerline/config.py @@ -1,8 +1,9 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) -from __future__ import absolute_import, unicode_literals, print_function import os + POWERLINE_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) BINDINGS_DIRECTORY = os.path.join(POWERLINE_ROOT, 'powerline', 'bindings') TMUX_CONFIG_DIRECTORY = os.path.join(BINDINGS_DIRECTORY, 'tmux') diff --git a/powerline/ipython.py b/powerline/ipython.py index f658f111..331f6927 100644 --- a/powerline/ipython.py +++ b/powerline/ipython.py @@ -1,4 +1,5 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) from powerline import Powerline from powerline.lib import mergedicts diff --git a/powerline/lib/__init__.py b/powerline/lib/__init__.py index 7a0d7add..ee82d216 100644 --- a/powerline/lib/__init__.py +++ b/powerline/lib/__init__.py @@ -1,7 +1,10 @@ # vim:fileencoding=utf-8:noet -from functools import wraps +from __future__ import (unicode_literals, division, absolute_import, print_function) + import json +from functools import wraps + REMOVE_THIS_KEY = object() diff --git a/powerline/lib/config.py b/powerline/lib/config.py index 8742667b..0c95e476 100644 --- a/powerline/lib/config.py +++ b/powerline/lib/config.py @@ -1,15 +1,16 @@ # vim:fileencoding=utf-8:noet - -from powerline.lib.threaded import MultiRunnedThread -from powerline.lib.watcher import create_file_watcher -from copy import deepcopy - -from threading import Event, Lock -from collections import defaultdict +from __future__ import (unicode_literals, division, absolute_import, print_function) import json import codecs +from copy import deepcopy +from threading import Event, Lock +from collections import defaultdict + +from powerline.lib.threaded import MultiRunnedThread +from powerline.lib.watcher import create_file_watcher + def open_file(path): return codecs.open(path, encoding='utf-8') diff --git a/powerline/lib/debug.py b/powerline/lib/debug.py index d8f1d333..478b9ed8 100755 --- a/powerline/lib/debug.py +++ b/powerline/lib/debug.py @@ -1,5 +1,6 @@ #!/usr/bin/env python # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) import gc import sys diff --git a/powerline/lib/humanize_bytes.py b/powerline/lib/humanize_bytes.py index 570d803e..c98a1170 100644 --- a/powerline/lib/humanize_bytes.py +++ b/powerline/lib/humanize_bytes.py @@ -1,6 +1,9 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) from math import log + + unit_list = tuple(zip(['', 'k', 'M', 'G', 'T', 'P'], [0, 0, 1, 2, 2, 2])) diff --git a/powerline/lib/inotify.py b/powerline/lib/inotify.py index ec40bcd7..510008ed 100644 --- a/powerline/lib/inotify.py +++ b/powerline/lib/inotify.py @@ -1,8 +1,5 @@ # vim:fileencoding=utf-8:noet -from __future__ import unicode_literals, absolute_import - -__copyright__ = '2013, Kovid Goyal ' -__docformat__ = 'restructuredtext en' +from __future__ import (unicode_literals, division, absolute_import, print_function) import sys import os @@ -13,6 +10,10 @@ import struct from ctypes.util import find_library +__copyright__ = '2013, Kovid Goyal ' +__docformat__ = 'restructuredtext en' + + class INotifyError(Exception): pass diff --git a/powerline/lib/memoize.py b/powerline/lib/memoize.py index 1fb96323..cedbe45e 100644 --- a/powerline/lib/memoize.py +++ b/powerline/lib/memoize.py @@ -1,6 +1,8 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) from functools import wraps + from powerline.lib.monotonic import monotonic diff --git a/powerline/lib/monotonic.py b/powerline/lib/monotonic.py index 93f147f1..5f9a80f9 100644 --- a/powerline/lib/monotonic.py +++ b/powerline/lib/monotonic.py @@ -1,6 +1,5 @@ # vim:fileencoding=utf-8:noet - -from __future__ import division, absolute_import +from __future__ import (unicode_literals, division, absolute_import, print_function) try: try: @@ -13,11 +12,9 @@ try: from time import CLOCK_MONOTONIC as CLOCK_ID # NOQA monotonic = lambda: clock_gettime(CLOCK_ID) - except ImportError: # >=python-3.3 from time import monotonic # NOQA - except ImportError: import ctypes import sys diff --git a/powerline/lib/path.py b/powerline/lib/path.py index be6872e7..a55d3e0a 100644 --- a/powerline/lib/path.py +++ b/powerline/lib/path.py @@ -1,5 +1,5 @@ # vim:fileencoding=utf-8:noet -from __future__ import unicode_literals, absolute_import +from __future__ import (unicode_literals, division, absolute_import, print_function) import os diff --git a/powerline/lib/shell.py b/powerline/lib/shell.py index 19b25c8b..96b87128 100644 --- a/powerline/lib/shell.py +++ b/powerline/lib/shell.py @@ -1,12 +1,12 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) -from __future__ import absolute_import, unicode_literals, division, print_function +import sys +import os from subprocess import Popen, PIPE from locale import getlocale, getdefaultlocale, LC_MESSAGES from functools import partial -import sys -import os if sys.platform.startswith('win32'): diff --git a/powerline/lib/threaded.py b/powerline/lib/threaded.py index e4f2f0a4..5e30988a 100644 --- a/powerline/lib/threaded.py +++ b/powerline/lib/threaded.py @@ -1,6 +1,5 @@ # vim:fileencoding=utf-8:noet - -from __future__ import absolute_import +from __future__ import (unicode_literals, division, absolute_import, print_function) from threading import Thread, Lock, Event from types import MethodType diff --git a/powerline/lib/unicode.py b/powerline/lib/unicode.py index 34505e9a..cdaab65f 100644 --- a/powerline/lib/unicode.py +++ b/powerline/lib/unicode.py @@ -1,5 +1,5 @@ # vim:fileencoding=utf-8:noet - +from __future__ import (unicode_literals, division, absolute_import, print_function) from locale import getpreferredencoding @@ -10,6 +10,12 @@ except ImportError: unicode = str # NOQA +try: + from __builtin__ import unichr +except ImportError: + unichr = chr + + def u(s): '''Return unicode instance assuming UTF-8 encoded string. ''' diff --git a/powerline/lib/url.py b/powerline/lib/url.py index 6e599349..4f1cfd8c 100644 --- a/powerline/lib/url.py +++ b/powerline/lib/url.py @@ -1,4 +1,5 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) try: from urllib.error import HTTPError diff --git a/powerline/lib/vcs/__init__.py b/powerline/lib/vcs/__init__.py index ba00eca2..9d8f60a0 100644 --- a/powerline/lib/vcs/__init__.py +++ b/powerline/lib/vcs/__init__.py @@ -1,8 +1,9 @@ # vim:fileencoding=utf-8:noet -from __future__ import absolute_import +from __future__ import (unicode_literals, division, absolute_import, print_function) import os import errno + from threading import Lock from collections import defaultdict @@ -226,7 +227,7 @@ def guess(path, create_watcher): continue try: if vcs not in globals(): - globals()[vcs] = getattr(__import__('powerline.lib.vcs', fromlist=[vcs]), vcs) + globals()[vcs] = getattr(__import__(str('powerline.lib.vcs'), fromlist=[str(vcs)]), str(vcs)) return globals()[vcs].Repository(directory, create_watcher) except: pass diff --git a/powerline/lib/vcs/bzr.py b/powerline/lib/vcs/bzr.py index f8818bdc..012f612e 100644 --- a/powerline/lib/vcs/bzr.py +++ b/powerline/lib/vcs/bzr.py @@ -1,9 +1,10 @@ # vim:fileencoding=utf-8:noet -from __future__ import absolute_import, unicode_literals, division, print_function +from __future__ import (unicode_literals, division, absolute_import, print_function) import sys import os import re + from io import StringIO from bzrlib import (workingtree, status, library_state, trace, ui) diff --git a/powerline/lib/vcs/git.py b/powerline/lib/vcs/git.py index 42bdd321..21b5e434 100644 --- a/powerline/lib/vcs/git.py +++ b/powerline/lib/vcs/git.py @@ -1,6 +1,5 @@ # vim:fileencoding=utf-8:noet - -from __future__ import (unicode_literals, absolute_import, print_function) +from __future__ import (unicode_literals, division, absolute_import, print_function) import os import sys diff --git a/powerline/lib/vcs/mercurial.py b/powerline/lib/vcs/mercurial.py index cebd7960..71963dd3 100644 --- a/powerline/lib/vcs/mercurial.py +++ b/powerline/lib/vcs/mercurial.py @@ -1,5 +1,5 @@ # vim:fileencoding=utf-8:noet -from __future__ import absolute_import +from __future__ import (unicode_literals, division, absolute_import, print_function) import os diff --git a/powerline/lib/watcher/__init__.py b/powerline/lib/watcher/__init__.py index 62894695..f1cb5d79 100644 --- a/powerline/lib/watcher/__init__.py +++ b/powerline/lib/watcher/__init__.py @@ -1,5 +1,5 @@ # vim:fileencoding=utf-8:noet -from __future__ import unicode_literals, absolute_import +from __future__ import (unicode_literals, division, absolute_import, print_function) import sys @@ -11,8 +11,7 @@ from powerline.lib.inotify import INotifyError def create_file_watcher(pl, watcher_type='auto', expire_time=10): - ''' - Create an object that can watch for changes to specified files + '''Create an object that can watch for changes to specified files Use ``.__call__()`` method of the returned object to start watching the file or check whether file has changed since last call. diff --git a/powerline/lib/watcher/inotify.py b/powerline/lib/watcher/inotify.py index 8891875e..ea7edea4 100644 --- a/powerline/lib/watcher/inotify.py +++ b/powerline/lib/watcher/inotify.py @@ -1,5 +1,5 @@ # vim:fileencoding=utf-8:noet -from __future__ import unicode_literals, absolute_import +from __future__ import (unicode_literals, division, absolute_import, print_function) import errno import os diff --git a/powerline/lib/watcher/stat.py b/powerline/lib/watcher/stat.py index ff2bf154..3ac70c74 100644 --- a/powerline/lib/watcher/stat.py +++ b/powerline/lib/watcher/stat.py @@ -1,5 +1,5 @@ # vim:fileencoding=utf-8:noet -from __future__ import unicode_literals, absolute_import +from __future__ import (unicode_literals, division, absolute_import, print_function) import os diff --git a/powerline/lib/watcher/tree.py b/powerline/lib/watcher/tree.py index e8efba4e..7d2b83f6 100644 --- a/powerline/lib/watcher/tree.py +++ b/powerline/lib/watcher/tree.py @@ -1,5 +1,5 @@ # vim:fileencoding=utf-8:noet -from __future__ import (unicode_literals, absolute_import, print_function) +from __future__ import (unicode_literals, division, absolute_import, print_function) import sys diff --git a/powerline/lib/watcher/uv.py b/powerline/lib/watcher/uv.py index 16e6aeb7..26e9dbfe 100644 --- a/powerline/lib/watcher/uv.py +++ b/powerline/lib/watcher/uv.py @@ -1,14 +1,14 @@ # vim:fileencoding=utf-8:noet -from __future__ import (unicode_literals, absolute_import, print_function) +from __future__ import (unicode_literals, division, absolute_import, print_function) -from powerline.lib.path import realpath +import os from collections import defaultdict from threading import RLock from functools import partial from threading import Thread -import os +from powerline.lib.path import realpath class UvNotFound(NotImplementedError): diff --git a/powerline/lint/__init__.py b/powerline/lint/__init__.py index f7c74f88..bf88d2c6 100644 --- a/powerline/lint/__init__.py +++ b/powerline/lint/__init__.py @@ -1,4 +1,5 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) import itertools import sys diff --git a/powerline/lint/inspect.py b/powerline/lint/inspect.py index 4e7f1a10..b6e0380b 100644 --- a/powerline/lint/inspect.py +++ b/powerline/lint/inspect.py @@ -1,5 +1,5 @@ # vim:fileencoding=utf-8:noet -from __future__ import absolute_import +from __future__ import (unicode_literals, division, absolute_import, print_function) from inspect import ArgSpec, getargspec diff --git a/powerline/lint/markedjson/__init__.py b/powerline/lint/markedjson/__init__.py index f8ef7483..aa084eaf 100644 --- a/powerline/lint/markedjson/__init__.py +++ b/powerline/lint/markedjson/__init__.py @@ -1,7 +1,7 @@ -__version__ = '3.10' +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) - -from .loader import Loader +from powerline.lint.markedjson.loader import Loader def load(stream, Loader=Loader): diff --git a/powerline/lint/markedjson/composer.py b/powerline/lint/markedjson/composer.py index 25e60109..3067af04 100644 --- a/powerline/lint/markedjson/composer.py +++ b/powerline/lint/markedjson/composer.py @@ -1,8 +1,12 @@ -__all__ = ['Composer', 'ComposerError'] +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) -from .error import MarkedError -from .events import * # NOQA -from .nodes import * # NOQA +from powerline.lint.markedjson import nodes +from powerline.lint.markedjson import events +from powerline.lint.markedjson.error import MarkedError + + +__all__ = ['Composer', 'ComposerError'] class ComposerError(MarkedError): @@ -15,15 +19,15 @@ class Composer: def check_node(self): # Drop the STREAM-START event. - if self.check_event(StreamStartEvent): + if self.check_event(events.StreamStartEvent): self.get_event() # If there are more documents available? - return not self.check_event(StreamEndEvent) + return not self.check_event(events.StreamEndEvent) def get_node(self): # Get the root node of the next document. - if not self.check_event(StreamEndEvent): + if not self.check_event(events.StreamEndEvent): return self.compose_document() def get_single_node(self): @@ -32,11 +36,11 @@ class Composer: # Compose a document if the stream is not empty. document = None - if not self.check_event(StreamEndEvent): + if not self.check_event(events.StreamEndEvent): document = self.compose_document() # Ensure that the stream contains no more documents. - if not self.check_event(StreamEndEvent): + if not self.check_event(events.StreamEndEvent): event = self.get_event() raise ComposerError( "expected a single document in the stream", @@ -64,11 +68,11 @@ class Composer: def compose_node(self, parent, index): self.descend_resolver(parent, index) - if self.check_event(ScalarEvent): + if self.check_event(events.ScalarEvent): node = self.compose_scalar_node() - elif self.check_event(SequenceStartEvent): + elif self.check_event(events.SequenceStartEvent): node = self.compose_sequence_node() - elif self.check_event(MappingStartEvent): + elif self.check_event(events.MappingStartEvent): node = self.compose_mapping_node() self.ascend_resolver() return node @@ -77,18 +81,18 @@ class Composer: event = self.get_event() tag = event.tag if tag is None or tag == '!': - tag = self.resolve(ScalarNode, event.value, event.implicit, event.start_mark) - node = ScalarNode(tag, event.value, event.start_mark, event.end_mark, style=event.style) + tag = self.resolve(nodes.ScalarNode, event.value, event.implicit, event.start_mark) + node = nodes.ScalarNode(tag, event.value, event.start_mark, event.end_mark, style=event.style) return node def compose_sequence_node(self): start_event = self.get_event() tag = start_event.tag if tag is None or tag == '!': - tag = self.resolve(SequenceNode, None, start_event.implicit) - node = SequenceNode(tag, [], start_event.start_mark, None, flow_style=start_event.flow_style) + tag = self.resolve(nodes.SequenceNode, None, start_event.implicit) + node = nodes.SequenceNode(tag, [], start_event.start_mark, None, flow_style=start_event.flow_style) index = 0 - while not self.check_event(SequenceEndEvent): + while not self.check_event(events.SequenceEndEvent): node.value.append(self.compose_node(node, index)) index += 1 end_event = self.get_event() @@ -99,9 +103,9 @@ class Composer: start_event = self.get_event() tag = start_event.tag if tag is None or tag == '!': - tag = self.resolve(MappingNode, None, start_event.implicit) - node = MappingNode(tag, [], start_event.start_mark, None, flow_style=start_event.flow_style) - while not self.check_event(MappingEndEvent): + tag = self.resolve(nodes.MappingNode, None, start_event.implicit) + node = nodes.MappingNode(tag, [], start_event.start_mark, None, flow_style=start_event.flow_style) + while not self.check_event(events.MappingEndEvent): # key_event = self.peek_event() item_key = self.compose_node(node, None) # if item_key in node.value: diff --git a/powerline/lint/markedjson/constructor.py b/powerline/lint/markedjson/constructor.py index f99608f2..f51f25ac 100644 --- a/powerline/lint/markedjson/constructor.py +++ b/powerline/lint/markedjson/constructor.py @@ -1,19 +1,16 @@ -__all__ = ['BaseConstructor', 'Constructor', 'ConstructorError'] - -from .error import MarkedError -from .nodes import * # NOQA -from .markedvalue import gen_marked_value +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) import collections import types from functools import wraps +from powerline.lint.markedjson.error import MarkedError -try: - from __builtin__ import unicode -except ImportError: - unicode = str # NOQA +from powerline.lint.markedjson import nodes +from powerline.lint.markedjson.markedvalue import gen_marked_value +from powerline.lib.unicode import unicode def marked(func): @@ -94,7 +91,7 @@ class BaseConstructor: @marked def construct_scalar(self, node): - if not isinstance(node, ScalarNode): + if not isinstance(node, nodes.ScalarNode): raise ConstructorError( None, None, "expected a scalar node, but found %s" % node.id, @@ -103,7 +100,7 @@ class BaseConstructor: return node.value def construct_sequence(self, node, deep=False): - if not isinstance(node, SequenceNode): + if not isinstance(node, nodes.SequenceNode): raise ConstructorError( None, None, "expected a sequence node, but found %s" % node.id, @@ -116,7 +113,7 @@ class BaseConstructor: @marked def construct_mapping(self, node, deep=False): - if not isinstance(node, MappingNode): + if not isinstance(node, nodes.MappingNode): raise ConstructorError( None, None, "expected a mapping node, but found %s" % node.id, @@ -156,7 +153,7 @@ class BaseConstructor: class Constructor(BaseConstructor): def construct_scalar(self, node): - if isinstance(node, MappingNode): + if isinstance(node, nodes.MappingNode): for key_node, value_node in node.value: if key_node.tag == 'tag:yaml.org,2002:value': return self.construct_scalar(value_node) @@ -169,13 +166,13 @@ class Constructor(BaseConstructor): key_node, value_node = node.value[index] if key_node.tag == 'tag:yaml.org,2002:merge': del node.value[index] - if isinstance(value_node, MappingNode): + if isinstance(value_node, nodes.MappingNode): self.flatten_mapping(value_node) merge.extend(value_node.value) - elif isinstance(value_node, SequenceNode): + elif isinstance(value_node, nodes.SequenceNode): submerge = [] for subnode in value_node.value: - if not isinstance(subnode, MappingNode): + if not isinstance(subnode, nodes.MappingNode): raise ConstructorError( "while constructing a mapping", node.start_mark, @@ -203,7 +200,7 @@ class Constructor(BaseConstructor): node.value = merge + node.value def construct_mapping(self, node, deep=False): - if isinstance(node, MappingNode): + if isinstance(node, nodes.MappingNode): self.flatten_mapping(node) return BaseConstructor.construct_mapping(self, node, deep=deep) diff --git a/powerline/lint/markedjson/error.py b/powerline/lint/markedjson/error.py index 1e1c7214..643c86b3 100644 --- a/powerline/lint/markedjson/error.py +++ b/powerline/lint/markedjson/error.py @@ -1,13 +1,10 @@ -__all__ = ['Mark', 'MarkedError', 'echoerr', 'NON_PRINTABLE'] - +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) import sys import re -try: - from __builtin__ import unichr -except ImportError: - unichr = chr # NOQA +from powerline.lib.unicode import unichr NON_PRINTABLE = re.compile('[^\t\n\x20-\x7E' + unichr(0x85) + (unichr(0xA0) + '-' + unichr(0xD7FF)) + (unichr(0xE000) + '-' + unichr(0xFFFD)) + ']') diff --git a/powerline/lint/markedjson/events.py b/powerline/lint/markedjson/events.py index 587c5ae4..ef8a70e5 100644 --- a/powerline/lint/markedjson/events.py +++ b/powerline/lint/markedjson/events.py @@ -1,6 +1,8 @@ +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) + + # Abstract classes. - - class Event(object): def __init__(self, start_mark=None, end_mark=None): self.start_mark = start_mark @@ -38,8 +40,6 @@ class CollectionEndEvent(Event): # Implementations. - - class StreamStartEvent(Event): def __init__(self, start_mark=None, end_mark=None, encoding=None): self.start_mark = start_mark diff --git a/powerline/lint/markedjson/loader.py b/powerline/lint/markedjson/loader.py index 50ae6d05..3ee56866 100644 --- a/powerline/lint/markedjson/loader.py +++ b/powerline/lint/markedjson/loader.py @@ -1,12 +1,13 @@ -__all__ = ['Loader'] +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) -from .reader import Reader -from .scanner import Scanner -from .parser import Parser -from .composer import Composer -from .constructor import Constructor -from .resolver import Resolver -from .error import echoerr +from powerline.lint.markedjson.reader import Reader +from powerline.lint.markedjson.scanner import Scanner +from powerline.lint.markedjson.parser import Parser +from powerline.lint.markedjson.composer import Composer +from powerline.lint.markedjson.constructor import Constructor +from powerline.lint.markedjson.resolver import Resolver +from powerline.lint.markedjson.error import echoerr class Loader(Reader, Scanner, Parser, Composer, Constructor, Resolver): diff --git a/powerline/lint/markedjson/markedvalue.py b/powerline/lint/markedjson/markedvalue.py index 6a9600dc..74a62b64 100644 --- a/powerline/lint/markedjson/markedvalue.py +++ b/powerline/lint/markedjson/markedvalue.py @@ -1,10 +1,7 @@ -__all__ = ['gen_marked_value', 'MarkedValue'] +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) - -try: - from __builtin__ import unicode -except ImportError: - unicode = str +from powerline.lib.unicode import unicode def gen_new(cls): diff --git a/powerline/lint/markedjson/nodes.py b/powerline/lint/markedjson/nodes.py index 9325a64c..66ad8433 100644 --- a/powerline/lint/markedjson/nodes.py +++ b/powerline/lint/markedjson/nodes.py @@ -1,3 +1,7 @@ +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) + + class Node(object): def __init__(self, tag, value, start_mark, end_mark): self.tag = tag diff --git a/powerline/lint/markedjson/parser.py b/powerline/lint/markedjson/parser.py index aa5f7ade..960b74a3 100644 --- a/powerline/lint/markedjson/parser.py +++ b/powerline/lint/markedjson/parser.py @@ -1,8 +1,9 @@ -__all__ = ['Parser', 'ParserError'] +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) -from .error import MarkedError -from .tokens import * # NOQA -from .events import * # NOQA +from powerline.lint.markedjson.error import MarkedError +from powerline.lint.markedjson import tokens +from powerline.lint.markedjson import events class ParserError(MarkedError): @@ -58,7 +59,7 @@ class Parser: def parse_stream_start(self): # Parse the stream start. token = self.get_token() - event = StreamStartEvent(token.start_mark, token.end_mark, encoding=token.encoding) + event = events.StreamStartEvent(token.start_mark, token.end_mark, encoding=token.encoding) # Prepare the next state. self.state = self.parse_implicit_document_start @@ -67,10 +68,10 @@ class Parser: def parse_implicit_document_start(self): # Parse an implicit document. - if not self.check_token(StreamEndToken): + if not self.check_token(tokens.StreamEndToken): token = self.peek_token() start_mark = end_mark = token.start_mark - event = DocumentStartEvent(start_mark, end_mark, explicit=False) + event = events.DocumentStartEvent(start_mark, end_mark, explicit=False) # Prepare the next state. self.states.append(self.parse_document_end) @@ -83,17 +84,17 @@ class Parser: def parse_document_start(self): # Parse an explicit document. - if not self.check_token(StreamEndToken): + if not self.check_token(tokens.StreamEndToken): token = self.peek_token() self.echoerr( None, None, ("expected '', but found %r" % token.id), token.start_mark ) - return StreamEndEvent(token.start_mark, token.end_mark) + return events.StreamEndEvent(token.start_mark, token.end_mark) else: # Parse the end of the stream. token = self.get_token() - event = StreamEndEvent(token.start_mark, token.end_mark) + event = events.StreamEndEvent(token.start_mark, token.end_mark) assert not self.states assert not self.marks self.state = None @@ -104,7 +105,7 @@ class Parser: token = self.peek_token() start_mark = end_mark = token.start_mark explicit = False - event = DocumentEndEvent(start_mark, end_mark, explicit=explicit) + event = events.DocumentEndEvent(start_mark, end_mark, explicit=explicit) # Prepare the next state. self.state = self.parse_document_start @@ -120,22 +121,22 @@ class Parser: start_mark = end_mark = self.peek_token().start_mark event = None implicit = True - if self.check_token(ScalarToken): + if self.check_token(tokens.ScalarToken): token = self.get_token() end_mark = token.end_mark if token.plain: implicit = (True, False) else: implicit = (False, True) - event = ScalarEvent(implicit, token.value, start_mark, end_mark, style=token.style) + event = events.ScalarEvent(implicit, token.value, start_mark, end_mark, style=token.style) self.state = self.states.pop() - elif self.check_token(FlowSequenceStartToken): + elif self.check_token(tokens.FlowSequenceStartToken): end_mark = self.peek_token().end_mark - event = SequenceStartEvent(implicit, start_mark, end_mark, flow_style=True) + event = events.SequenceStartEvent(implicit, start_mark, end_mark, flow_style=True) self.state = self.parse_flow_sequence_first_entry - elif self.check_token(FlowMappingStartToken): + elif self.check_token(tokens.FlowMappingStartToken): end_mark = self.peek_token().end_mark - event = MappingStartEvent(implicit, start_mark, end_mark, flow_style=True) + event = events.MappingStartEvent(implicit, start_mark, end_mark, flow_style=True) self.state = self.parse_flow_mapping_first_key else: token = self.peek_token() @@ -152,11 +153,11 @@ class Parser: return self.parse_flow_sequence_entry(first=True) def parse_flow_sequence_entry(self, first=False): - if not self.check_token(FlowSequenceEndToken): + if not self.check_token(tokens.FlowSequenceEndToken): if not first: - if self.check_token(FlowEntryToken): + if self.check_token(tokens.FlowEntryToken): self.get_token() - if self.check_token(FlowSequenceEndToken): + if self.check_token(tokens.FlowSequenceEndToken): token = self.peek_token() self.echoerr( "While parsing a flow sequence", self.marks[-1], @@ -169,11 +170,11 @@ class Parser: ("expected ',' or ']', but got %r" % token.id), token.start_mark ) - if not self.check_token(FlowSequenceEndToken): + if not self.check_token(tokens.FlowSequenceEndToken): self.states.append(self.parse_flow_sequence_entry) return self.parse_node() token = self.get_token() - event = SequenceEndEvent(token.start_mark, token.end_mark) + event = events.SequenceEndEvent(token.start_mark, token.end_mark) self.state = self.states.pop() self.marks.pop() return event @@ -181,7 +182,7 @@ class Parser: def parse_flow_sequence_entry_mapping_end(self): self.state = self.parse_flow_sequence_entry token = self.peek_token() - return MappingEndEvent(token.start_mark, token.start_mark) + return events.MappingEndEvent(token.start_mark, token.start_mark) def parse_flow_mapping_first_key(self): token = self.get_token() @@ -189,11 +190,11 @@ class Parser: return self.parse_flow_mapping_key(first=True) def parse_flow_mapping_key(self, first=False): - if not self.check_token(FlowMappingEndToken): + if not self.check_token(tokens.FlowMappingEndToken): if not first: - if self.check_token(FlowEntryToken): + if self.check_token(tokens.FlowEntryToken): self.get_token() - if self.check_token(FlowMappingEndToken): + if self.check_token(tokens.FlowMappingEndToken): token = self.peek_token() self.echoerr( "While parsing a flow mapping", self.marks[-1], @@ -205,9 +206,9 @@ class Parser: "while parsing a flow mapping", self.marks[-1], ("expected ',' or '}', but got %r" % token.id), token.start_mark ) - if self.check_token(KeyToken): + if self.check_token(tokens.KeyToken): token = self.get_token() - if not self.check_token(ValueToken, FlowEntryToken, FlowMappingEndToken): + if not self.check_token(tokens.ValueToken, tokens.FlowEntryToken, tokens.FlowMappingEndToken): self.states.append(self.parse_flow_mapping_value) return self.parse_node() else: @@ -216,12 +217,12 @@ class Parser: "while parsing a flow mapping", self.marks[-1], ("expected value, but got %r" % token.id), token.start_mark ) - elif not self.check_token(FlowMappingEndToken): + elif not self.check_token(tokens.FlowMappingEndToken): token = self.peek_token() - expect_key = self.check_token(ValueToken, FlowEntryToken) + expect_key = self.check_token(tokens.ValueToken, tokens.FlowEntryToken) if not expect_key: self.get_token() - expect_key = self.check_token(ValueToken) + expect_key = self.check_token(tokens.ValueToken) if expect_key: raise ParserError( @@ -235,15 +236,15 @@ class Parser: ("expected ':', but got %r" % token.id), token.start_mark ) token = self.get_token() - event = MappingEndEvent(token.start_mark, token.end_mark) + event = events.MappingEndEvent(token.start_mark, token.end_mark) self.state = self.states.pop() self.marks.pop() return event def parse_flow_mapping_value(self): - if self.check_token(ValueToken): + if self.check_token(tokens.ValueToken): token = self.get_token() - if not self.check_token(FlowEntryToken, FlowMappingEndToken): + if not self.check_token(tokens.FlowEntryToken, tokens.FlowMappingEndToken): self.states.append(self.parse_flow_mapping_key) return self.parse_node() diff --git a/powerline/lint/markedjson/reader.py b/powerline/lint/markedjson/reader.py index 32f5d7b6..e212a2bd 100644 --- a/powerline/lint/markedjson/reader.py +++ b/powerline/lint/markedjson/reader.py @@ -1,16 +1,14 @@ -# This module contains abstractions for the input stream. You don't have to -# looks further, there are no pretty code. - -__all__ = ['Reader', 'ReaderError'] - -from .error import MarkedError, Mark, NON_PRINTABLE +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) import codecs -try: - from __builtin__ import unicode -except ImportError: - unicode = str # NOQA +from powerline.lint.markedjson.error import MarkedError, Mark, NON_PRINTABLE +from powerline.lib.unicode import unicode + + +# This module contains abstractions for the input stream. You don't have to +# looks further, there are no pretty code. class ReaderError(MarkedError): diff --git a/powerline/lint/markedjson/resolver.py b/powerline/lint/markedjson/resolver.py index 40b5130d..fa8ceaa4 100644 --- a/powerline/lint/markedjson/resolver.py +++ b/powerline/lint/markedjson/resolver.py @@ -1,10 +1,11 @@ -__all__ = ['BaseResolver', 'Resolver'] - -from .error import MarkedError -from .nodes import * # NOQA +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) import re +from powerline.lint.markedjson.error import MarkedError +from powerline.lint.markedjson import nodes + class ResolverError(MarkedError): pass @@ -73,7 +74,7 @@ class BaseResolver: and current_index is None): return if isinstance(index_check, str): - if not (isinstance(current_index, ScalarNode) and index_check == current_index.value): + if not (isinstance(current_index, nodes.ScalarNode) and index_check == current_index.value): return elif isinstance(index_check, int) and not isinstance(index_check, bool): if index_check != current_index: @@ -81,7 +82,7 @@ class BaseResolver: return True def resolve(self, kind, value, implicit, mark=None): - if kind is ScalarNode and implicit[0]: + if kind is nodes.ScalarNode and implicit[0]: if value == '': resolvers = self.yaml_implicit_resolvers.get('', []) else: @@ -97,11 +98,11 @@ class BaseResolver: mark ) return self.DEFAULT_SCALAR_TAG - if kind is ScalarNode: + if kind is nodes.ScalarNode: return self.DEFAULT_SCALAR_TAG - elif kind is SequenceNode: + elif kind is nodes.SequenceNode: return self.DEFAULT_SEQUENCE_TAG - elif kind is MappingNode: + elif kind is nodes.MappingNode: return self.DEFAULT_MAPPING_TAG diff --git a/powerline/lint/markedjson/scanner.py b/powerline/lint/markedjson/scanner.py index e4defc26..b4776f8a 100644 --- a/powerline/lint/markedjson/scanner.py +++ b/powerline/lint/markedjson/scanner.py @@ -1,3 +1,11 @@ +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) + +from powerline.lint.markedjson.error import MarkedError +from powerline.lint.markedjson import tokens +from powerline.lib.unicode import unicode + + # Scanner produces tokens of the following types: # STREAM-START # STREAM-END @@ -14,22 +22,11 @@ # # Read comments in the Scanner code for more details. -__all__ = ['Scanner', 'ScannerError'] - -from .error import MarkedError -from .tokens import * # NOQA - class ScannerError(MarkedError): pass -try: - from __builtin__ import unicode -except ImportError: - unicode = str # NOQA - - class SimpleKey: # See below simple keys treatment. def __init__(self, token_number, index, line, column, mark): @@ -241,8 +238,7 @@ class Scanner: mark = self.get_mark() # Add STREAM-START. - self.tokens.append(StreamStartToken(mark, mark, - encoding=self.encoding)) + self.tokens.append(tokens.StreamStartToken(mark, mark, encoding=self.encoding)) def fetch_stream_end(self): # Reset simple keys. @@ -254,19 +250,18 @@ class Scanner: mark = self.get_mark() # Add STREAM-END. - self.tokens.append(StreamEndToken(mark, mark)) + self.tokens.append(tokens.StreamEndToken(mark, mark)) # The steam is finished. self.done = True def fetch_flow_sequence_start(self): - self.fetch_flow_collection_start(FlowSequenceStartToken) + self.fetch_flow_collection_start(tokens.FlowSequenceStartToken) def fetch_flow_mapping_start(self): - self.fetch_flow_collection_start(FlowMappingStartToken) + self.fetch_flow_collection_start(tokens.FlowMappingStartToken) def fetch_flow_collection_start(self, TokenClass): - # '[' and '{' may start a simple key. self.save_possible_simple_key() @@ -283,13 +278,12 @@ class Scanner: self.tokens.append(TokenClass(start_mark, end_mark)) def fetch_flow_sequence_end(self): - self.fetch_flow_collection_end(FlowSequenceEndToken) + self.fetch_flow_collection_end(tokens.FlowSequenceEndToken) def fetch_flow_mapping_end(self): - self.fetch_flow_collection_end(FlowMappingEndToken) + self.fetch_flow_collection_end(tokens.FlowMappingEndToken) def fetch_flow_collection_end(self, TokenClass): - # Reset possible simple key on the current level. self.remove_possible_simple_key() @@ -312,7 +306,7 @@ class Scanner: # Add KEY. key = self.possible_simple_keys[self.flow_level] del self.possible_simple_keys[self.flow_level] - self.tokens.insert(key.token_number - self.tokens_taken, KeyToken(key.mark, key.mark)) + self.tokens.insert(key.token_number - self.tokens_taken, tokens.KeyToken(key.mark, key.mark)) # There cannot be two simple keys one after another. self.allow_simple_key = False @@ -321,10 +315,9 @@ class Scanner: start_mark = self.get_mark() self.forward() end_mark = self.get_mark() - self.tokens.append(ValueToken(start_mark, end_mark)) + self.tokens.append(tokens.ValueToken(start_mark, end_mark)) def fetch_flow_entry(self): - # Simple keys are allowed after ','. self.allow_simple_key = True @@ -335,7 +328,7 @@ class Scanner: start_mark = self.get_mark() self.forward() end_mark = self.get_mark() - self.tokens.append(FlowEntryToken(start_mark, end_mark)) + self.tokens.append(tokens.FlowEntryToken(start_mark, end_mark)) def fetch_double(self): # A flow scalar could be a simple key. @@ -385,7 +378,7 @@ class Scanner: chunks.extend(self.scan_flow_scalar_non_spaces(start_mark)) self.forward() end_mark = self.get_mark() - return ScalarToken(unicode().join(chunks), False, start_mark, end_mark, '"') + return tokens.ScalarToken(unicode().join(chunks), False, start_mark, end_mark, '"') ESCAPE_REPLACEMENTS = { 'b': '\x08', @@ -480,4 +473,4 @@ class Scanner: chunks.append(self.prefix(length)) self.forward(length) end_mark = self.get_mark() - return ScalarToken(''.join(chunks), True, start_mark, end_mark) + return tokens.ScalarToken(''.join(chunks), True, start_mark, end_mark) diff --git a/powerline/lint/markedjson/tokens.py b/powerline/lint/markedjson/tokens.py index 15b1836c..6fa8bf18 100644 --- a/powerline/lint/markedjson/tokens.py +++ b/powerline/lint/markedjson/tokens.py @@ -1,3 +1,7 @@ +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) + + class Token(object): def __init__(self, start_mark, end_mark): self.start_mark = start_mark diff --git a/powerline/listers/vim.py b/powerline/listers/vim.py index b8d38ecb..c40743d1 100644 --- a/powerline/listers/vim.py +++ b/powerline/listers/vim.py @@ -1,15 +1,14 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) -from __future__ import unicode_literals, absolute_import, division +from powerline.theme import requires_segment_info +from powerline.bindings.vim import (current_tabpage, list_tabpages, vim_getbufoption) try: import vim except ImportError: vim = {} # NOQA -from powerline.theme import requires_segment_info -from powerline.bindings.vim import (current_tabpage, list_tabpages, vim_getbufoption) - def tabpage_updated_segment_info(segment_info, tabpage, mode): segment_info = segment_info.copy() diff --git a/powerline/matchers/__init__.py b/powerline/matchers/__init__.py index 3ad9513f..b2b9f102 100644 --- a/powerline/matchers/__init__.py +++ b/powerline/matchers/__init__.py @@ -1,2 +1,6 @@ +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) from pkgutil import extend_path + + __path__ = extend_path(__path__, __name__) diff --git a/powerline/matchers/vim/__init__.py b/powerline/matchers/vim/__init__.py index 1a16fb49..d7e9b48d 100644 --- a/powerline/matchers/vim/__init__.py +++ b/powerline/matchers/vim/__init__.py @@ -1,8 +1,8 @@ # vim:fileencoding=utf-8:noet - -from __future__ import absolute_import +from __future__ import (unicode_literals, division, absolute_import, print_function) import os + from powerline.bindings.vim import vim_getbufoption diff --git a/powerline/matchers/vim/plugin/__init__.py b/powerline/matchers/vim/plugin/__init__.py index 3ad9513f..b2b9f102 100644 --- a/powerline/matchers/vim/plugin/__init__.py +++ b/powerline/matchers/vim/plugin/__init__.py @@ -1,2 +1,6 @@ +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) from pkgutil import extend_path + + __path__ = extend_path(__path__, __name__) diff --git a/powerline/matchers/vim/plugin/ctrlp.py b/powerline/matchers/vim/plugin/ctrlp.py index d6754798..6ba1c76d 100644 --- a/powerline/matchers/vim/plugin/ctrlp.py +++ b/powerline/matchers/vim/plugin/ctrlp.py @@ -1,22 +1,28 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) import os + try: import vim - - vim.command('''function! Powerline_plugin_ctrlp_main(...) +except ImportError: + vim = object() # NOQA +else: + vim.command(''' + function! Powerline_plugin_ctrlp_main(...) let b:powerline_ctrlp_type = 'main' let b:powerline_ctrlp_args = a:000 endfunction''') - vim.command('''function! Powerline_plugin_ctrlp_prog(...) + vim.command(''' + function! Powerline_plugin_ctrlp_prog(...) let b:powerline_ctrlp_type = 'prog' let b:powerline_ctrlp_args = a:000 endfunction''') - vim.command('''let g:ctrlp_status_func = { 'main': 'Powerline_plugin_ctrlp_main', 'prog': 'Powerline_plugin_ctrlp_prog' }''') -except ImportError: - vim = object() # NOQA + vim.command(''' + let g:ctrlp_status_func = {'main': 'Powerline_plugin_ctrlp_main', 'prog': 'Powerline_plugin_ctrlp_prog'} + ''') def ctrlp(matcher_info): diff --git a/powerline/matchers/vim/plugin/gundo.py b/powerline/matchers/vim/plugin/gundo.py index 1992f711..356ffd65 100644 --- a/powerline/matchers/vim/plugin/gundo.py +++ b/powerline/matchers/vim/plugin/gundo.py @@ -1,4 +1,5 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) import os diff --git a/powerline/matchers/vim/plugin/nerdtree.py b/powerline/matchers/vim/plugin/nerdtree.py index a9f8f0bc..aeb2c24c 100644 --- a/powerline/matchers/vim/plugin/nerdtree.py +++ b/powerline/matchers/vim/plugin/nerdtree.py @@ -1,4 +1,5 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) import os import re diff --git a/powerline/renderer.py b/powerline/renderer.py index a1408b5e..2e97e16f 100644 --- a/powerline/renderer.py +++ b/powerline/renderer.py @@ -1,4 +1,5 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) import os @@ -6,16 +7,10 @@ from unicodedata import east_asian_width, combining from itertools import chain from powerline.theme import Theme +from powerline.lib.unicode import unichr -try: - NBSP = unicode(' ', 'utf-8') -except NameError: - NBSP = ' ' -try: - from __builtin__ import unichr as chr -except ImportError: - pass +NBSP = ' ' def construct_returned_value(rendered_highlighted, segments, width, output_raw, output_width): @@ -80,7 +75,7 @@ class Renderer(object): See documentation of ``unicode.translate`` for details. ''' - np_character_translations = dict(((i, '^' + chr(i + 0x40)) for i in range(0x20))) + np_character_translations = dict(((i, '^' + unichr(i + 0x40)) for i in range(0x20))) '''Non-printable character translations These are used to transform characters in range 0x00—0x1F into ``^@``, diff --git a/powerline/renderers/i3bar.py b/powerline/renderers/i3bar.py index 2e0ef9b3..223458c2 100644 --- a/powerline/renderers/i3bar.py +++ b/powerline/renderers/i3bar.py @@ -1,7 +1,9 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) + +import json from powerline.renderer import Renderer -import json class I3barRenderer(Renderer): diff --git a/powerline/renderers/ipython/__init__.py b/powerline/renderers/ipython/__init__.py index 1fce961e..985e6c34 100644 --- a/powerline/renderers/ipython/__init__.py +++ b/powerline/renderers/ipython/__init__.py @@ -1,4 +1,5 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) from powerline.renderers.shell import ShellRenderer from powerline.theme import Theme diff --git a/powerline/renderers/pango_markup.py b/powerline/renderers/pango_markup.py index ea1fe15e..02511ab5 100644 --- a/powerline/renderers/pango_markup.py +++ b/powerline/renderers/pango_markup.py @@ -1,10 +1,11 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) + +from xml.sax.saxutils import escape as _escape from powerline.renderer import Renderer from powerline.colorscheme import ATTR_BOLD, ATTR_ITALIC, ATTR_UNDERLINE -from xml.sax.saxutils import escape as _escape - class PangoMarkupRenderer(Renderer): '''Powerline Pango markup segment renderer.''' diff --git a/powerline/renderers/shell/__init__.py b/powerline/renderers/shell/__init__.py index 70d9ac6a..b767fc26 100644 --- a/powerline/renderers/shell/__init__.py +++ b/powerline/renderers/shell/__init__.py @@ -1,6 +1,5 @@ # vim:fileencoding=utf-8:noet - -from __future__ import absolute_import, unicode_literals, division, print_function +from __future__ import (unicode_literals, division, absolute_import, print_function) from powerline.renderer import Renderer from powerline.theme import Theme diff --git a/powerline/renderers/shell/bash.py b/powerline/renderers/shell/bash.py index c37a2cf9..783bd501 100644 --- a/powerline/renderers/shell/bash.py +++ b/powerline/renderers/shell/bash.py @@ -1,6 +1,5 @@ # vim:fileencoding=utf-8:noet - -from __future__ import absolute_import, unicode_literals +from __future__ import (unicode_literals, division, absolute_import, print_function) from powerline.renderers.shell import ShellRenderer diff --git a/powerline/renderers/shell/ksh.py b/powerline/renderers/shell/ksh.py index 3b4387a4..0828e573 100644 --- a/powerline/renderers/shell/ksh.py +++ b/powerline/renderers/shell/ksh.py @@ -1,6 +1,5 @@ # vim:fileencoding=utf-8:noet - -from __future__ import absolute_import, unicode_literals +from __future__ import (unicode_literals, division, absolute_import, print_function) from powerline.renderers.shell import ShellRenderer diff --git a/powerline/renderers/shell/tcsh.py b/powerline/renderers/shell/tcsh.py index 261b081a..5d138b93 100644 --- a/powerline/renderers/shell/tcsh.py +++ b/powerline/renderers/shell/tcsh.py @@ -1,6 +1,5 @@ # vim:fileencoding=utf-8:noet - -from __future__ import absolute_import, unicode_literals +from __future__ import (unicode_literals, division, absolute_import, print_function) from powerline.renderers.shell.zsh import ZshPromptRenderer diff --git a/powerline/renderers/shell/zsh.py b/powerline/renderers/shell/zsh.py index 47e76cc3..a2315124 100644 --- a/powerline/renderers/shell/zsh.py +++ b/powerline/renderers/shell/zsh.py @@ -1,6 +1,5 @@ # vim:fileencoding=utf-8:noet - -from __future__ import absolute_import, unicode_literals +from __future__ import (unicode_literals, division, absolute_import, print_function) from powerline.renderers.shell import ShellRenderer diff --git a/powerline/renderers/tmux.py b/powerline/renderers/tmux.py index 5daccbbb..5c02f29b 100644 --- a/powerline/renderers/tmux.py +++ b/powerline/renderers/tmux.py @@ -1,6 +1,5 @@ # vim:fileencoding=utf-8:noet - -from __future__ import absolute_import, unicode_literals +from __future__ import (unicode_literals, division, absolute_import, print_function) from powerline.renderer import Renderer from powerline.colorscheme import ATTR_BOLD, ATTR_ITALIC, ATTR_UNDERLINE diff --git a/powerline/renderers/vim.py b/powerline/renderers/vim.py index 89f54630..6ea2a30b 100644 --- a/powerline/renderers/vim.py +++ b/powerline/renderers/vim.py @@ -1,20 +1,15 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) -from __future__ import absolute_import, unicode_literals +import sys + +import vim from powerline.bindings.vim import vim_get_func, vim_getoption, environ, current_tabpage from powerline.renderer import Renderer from powerline.colorscheme import ATTR_BOLD, ATTR_ITALIC, ATTR_UNDERLINE from powerline.theme import Theme - -import vim -import sys - - -try: - from __builtin__ import unichr as chr -except ImportError: - pass +from powerline.lib.unicode import unichr vim_mode = vim_get_func('mode', rettype=str) @@ -23,8 +18,8 @@ if int(vim.eval('v:version')) >= 702: vim_mode = lambda: _vim_mode(1) mode_translations = { - chr(ord('V') - 0x40): '^V', - chr(ord('S') - 0x40): '^S', + unichr(ord('V') - 0x40): '^V', + unichr(ord('S') - 0x40): '^S', } diff --git a/powerline/segment.py b/powerline/segment.py index 4dd283e4..c098756a 100644 --- a/powerline/segment.py +++ b/powerline/segment.py @@ -1,5 +1,5 @@ # vim:fileencoding=utf-8:noet -from __future__ import absolute_import, unicode_literals, division, print_function +from __future__ import (unicode_literals, division, absolute_import, print_function) from powerline.lib.watcher import create_file_watcher diff --git a/powerline/segments/__init__.py b/powerline/segments/__init__.py index 0a33bdbc..681a7289 100644 --- a/powerline/segments/__init__.py +++ b/powerline/segments/__init__.py @@ -1,5 +1,5 @@ # vim:fileencoding=utf-8:noet -from __future__ import absolute_import +from __future__ import (unicode_literals, division, absolute_import, print_function) import sys diff --git a/powerline/segments/common.py b/powerline/segments/common.py index ee6e0b75..047bada1 100644 --- a/powerline/segments/common.py +++ b/powerline/segments/common.py @@ -1,6 +1,5 @@ # vim:fileencoding=utf-8:noet - -from __future__ import unicode_literals, absolute_import, division +from __future__ import (unicode_literals, division, absolute_import, print_function) import os import sys @@ -9,6 +8,7 @@ import socket from datetime import datetime from multiprocessing import cpu_count as _cpu_count +from collections import namedtuple from powerline.lib import add_divider_highlight_group from powerline.lib.shell import asrun, run_cmd @@ -20,7 +20,6 @@ from powerline.lib.humanize_bytes import humanize_bytes from powerline.lib.unicode import u from powerline.theme import requires_segment_info, requires_filesystem_watcher from powerline.segments import Segment, with_docstring -from collections import namedtuple cpu_count = None diff --git a/powerline/segments/i3wm.py b/powerline/segments/i3wm.py index 69752dff..1a290c78 100644 --- a/powerline/segments/i3wm.py +++ b/powerline/segments/i3wm.py @@ -1,4 +1,5 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) import i3 diff --git a/powerline/segments/ipython.py b/powerline/segments/ipython.py index 9a29ea8e..622e0a50 100644 --- a/powerline/segments/ipython.py +++ b/powerline/segments/ipython.py @@ -1,4 +1,5 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) from powerline.theme import requires_segment_info diff --git a/powerline/segments/shell.py b/powerline/segments/shell.py index bfd7c9a3..e7e71f19 100644 --- a/powerline/segments/shell.py +++ b/powerline/segments/shell.py @@ -1,4 +1,5 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) from powerline.theme import requires_segment_info from powerline.segments import with_docstring diff --git a/powerline/segments/tmux.py b/powerline/segments/tmux.py index 3a027aa4..b26824dc 100644 --- a/powerline/segments/tmux.py +++ b/powerline/segments/tmux.py @@ -1,5 +1,5 @@ # vim:fileencoding=utf-8:noet -from __future__ import absolute_import, unicode_literals, division, print_function +from __future__ import (unicode_literals, division, absolute_import, print_function) from powerline.bindings.tmux import get_tmux_output diff --git a/powerline/segments/vim/__init__.py b/powerline/segments/vim/__init__.py index c973af1d..f4246a14 100644 --- a/powerline/segments/vim/__init__.py +++ b/powerline/segments/vim/__init__.py @@ -1,17 +1,16 @@ # vim:fileencoding=utf-8:noet - -from __future__ import unicode_literals, absolute_import, division +from __future__ import (unicode_literals, division, absolute_import, print_function) import os import re +from collections import defaultdict + try: import vim except ImportError: vim = {} # NOQA -from collections import defaultdict - from powerline.bindings.vim import (vim_get_func, getbufvar, vim_getbufoption, buffer_name, vim_getwinvar, register_buffer_cache, current_tabpage, diff --git a/powerline/segments/vim/plugin/__init__.py b/powerline/segments/vim/plugin/__init__.py index 3ad9513f..b2b9f102 100644 --- a/powerline/segments/vim/plugin/__init__.py +++ b/powerline/segments/vim/plugin/__init__.py @@ -1,2 +1,6 @@ +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) from pkgutil import extend_path + + __path__ = extend_path(__path__, __name__) diff --git a/powerline/segments/vim/plugin/ctrlp.py b/powerline/segments/vim/plugin/ctrlp.py index f54f8bac..eb658b56 100644 --- a/powerline/segments/vim/plugin/ctrlp.py +++ b/powerline/segments/vim/plugin/ctrlp.py @@ -1,4 +1,5 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) try: import vim diff --git a/powerline/segments/vim/plugin/nerdtree.py b/powerline/segments/vim/plugin/nerdtree.py index a8e6ad85..6ea9a04b 100644 --- a/powerline/segments/vim/plugin/nerdtree.py +++ b/powerline/segments/vim/plugin/nerdtree.py @@ -1,4 +1,5 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) try: import vim diff --git a/powerline/segments/vim/plugin/syntastic.py b/powerline/segments/vim/plugin/syntastic.py index 71a411fa..f3da22c3 100644 --- a/powerline/segments/vim/plugin/syntastic.py +++ b/powerline/segments/vim/plugin/syntastic.py @@ -1,4 +1,5 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) try: import vim diff --git a/powerline/segments/vim/plugin/tagbar.py b/powerline/segments/vim/plugin/tagbar.py index 24e8db52..dc92d88d 100644 --- a/powerline/segments/vim/plugin/tagbar.py +++ b/powerline/segments/vim/plugin/tagbar.py @@ -1,4 +1,5 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) try: import vim diff --git a/powerline/shell.py b/powerline/shell.py index d1f717e6..047f21af 100644 --- a/powerline/shell.py +++ b/powerline/shell.py @@ -1,4 +1,6 @@ # vim:fileencoding=utf-8:noet +# WARNING: using unicode_literals causes errors in argparse +from __future__ import (division, absolute_import, print_function) from powerline import Powerline from powerline.lib import mergedicts, parsedotval diff --git a/powerline/theme.py b/powerline/theme.py index 2558ca0e..9fa90e54 100644 --- a/powerline/theme.py +++ b/powerline/theme.py @@ -1,9 +1,10 @@ # vim:fileencoding=utf-8:noet -from __future__ import division +from __future__ import (unicode_literals, division, absolute_import, print_function) + +import itertools from powerline.segment import gen_segment_getter, process_segment from powerline.lib.unicode import u -import itertools def requires_segment_info(func): diff --git a/powerline/vim.py b/powerline/vim.py index 56159f00..5f83e54e 100644 --- a/powerline/vim.py +++ b/powerline/vim.py @@ -1,6 +1,5 @@ # vim:fileencoding=utf-8:noet - -from __future__ import absolute_import +from __future__ import (unicode_literals, division, absolute_import, print_function) import sys diff --git a/scripts/powerline-config b/scripts/powerline-config index 0d82eba5..b89e4e39 100755 --- a/scripts/powerline-config +++ b/scripts/powerline-config @@ -1,7 +1,10 @@ #!/usr/bin/env python # vim:fileencoding=utf-8:noet + '''Script used to obtain powerline configuration''' +from __future__ import (unicode_literals, division, absolute_import, print_function) + import argparse try: diff --git a/scripts/powerline-daemon b/scripts/powerline-daemon index 956710d9..5ac069d8 100755 --- a/scripts/powerline-daemon +++ b/scripts/powerline-daemon @@ -6,6 +6,7 @@ import socket import os import errno import sys + from argparse import ArgumentParser from select import select from signal import signal, SIGTERM diff --git a/scripts/powerline-lint b/scripts/powerline-lint index 5a9b1285..cfebad3e 100755 --- a/scripts/powerline-lint +++ b/scripts/powerline-lint @@ -1,10 +1,15 @@ #!/usr/bin/env python # vim:fileencoding=utf-8:noet + '''Powerline configuration checker.''' + +from __future__ import (unicode_literals, division, absolute_import, print_function) + import argparse -from powerline.lint import check import sys +from powerline.lint import check + parser = argparse.ArgumentParser(description=__doc__) parser.add_argument('-p', '--config_path', action='append', metavar='PATH') diff --git a/scripts/powerline-render b/scripts/powerline-render index 52f85a13..cf422b04 100755 --- a/scripts/powerline-render +++ b/scripts/powerline-render @@ -1,6 +1,10 @@ #!/usr/bin/env python # vim:fileencoding=utf-8:noet + '''Powerline prompt and statusline script.''' + +from __future__ import (unicode_literals, division, absolute_import, print_function) + import sys import os diff --git a/setup.py b/setup.py index d397e03e..c34d8424 100755 --- a/setup.py +++ b/setup.py @@ -1,6 +1,7 @@ #!/usr/bin/env python # vim:fileencoding=utf-8:noet -from __future__ import unicode_literals +from __future__ import (unicode_literals, division, absolute_import, print_function) + import os import sys import subprocess @@ -8,6 +9,7 @@ import logging from setuptools import setup, find_packages + CURRENT_DIR = os.path.abspath(os.path.dirname(__file__)) try: README = open(os.path.join(CURRENT_DIR, 'README.rst'), 'rb').read().decode('utf-8') diff --git a/tests/__init__.py b/tests/__init__.py index 2492b045..9a961acd 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,5 +1,8 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) + import sys + if sys.version_info < (2, 7): from unittest2 import TestCase, main # NOQA from unittest2.case import SkipTest # NOQA diff --git a/tests/lib/__init__.py b/tests/lib/__init__.py index 5399df1a..80af8097 100644 --- a/tests/lib/__init__.py +++ b/tests/lib/__init__.py @@ -1,4 +1,6 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) + import imp import sys diff --git a/tests/lib/config_mock.py b/tests/lib/config_mock.py index 55f206d1..7161ea28 100644 --- a/tests/lib/config_mock.py +++ b/tests/lib/config_mock.py @@ -1,13 +1,18 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) + +import os + from threading import Lock -from powerline.renderer import Renderer -from powerline.lib.config import ConfigLoader -from powerline import Powerline -from tests.lib import Args, replace_attr from copy import deepcopy from time import sleep from functools import wraps -import os + +from powerline.renderer import Renderer +from powerline.lib.config import ConfigLoader +from powerline import Powerline + +from tests.lib import Args, replace_attr class TestHelpers(object): diff --git a/tests/lib/fsconfig.py b/tests/lib/fsconfig.py index db80488b..a1066f65 100644 --- a/tests/lib/fsconfig.py +++ b/tests/lib/fsconfig.py @@ -1,5 +1,5 @@ # vim:fileencoding=utf-8:noet -from __future__ import unicode_literals, absolute_import, division +from __future__ import (unicode_literals, division, absolute_import, print_function) import os import json diff --git a/tests/matchers.py b/tests/matchers.py index 3937f2f1..e905de32 100644 --- a/tests/matchers.py +++ b/tests/matchers.py @@ -1,5 +1,4 @@ # vim:fileencoding=utf-8:noet - from __future__ import (unicode_literals, division, absolute_import, print_function) diff --git a/tests/path/vim.py b/tests/path/vim.py index 899678e5..1de56240 100644 --- a/tests/path/vim.py +++ b/tests/path/vim.py @@ -1,4 +1,6 @@ # vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) + from tests import vim diff --git a/tests/test_cmdline.py b/tests/test_cmdline.py index 5af43eee..f28c3896 100644 --- a/tests/test_cmdline.py +++ b/tests/test_cmdline.py @@ -2,15 +2,19 @@ '''Tests for shell.py parser''' +from __future__ import (unicode_literals, division, absolute_import, print_function) -from powerline.shell import get_argparser, finish_args -from tests import TestCase -from tests.lib import replace_attr import sys + if sys.version_info < (3,): from io import BytesIO as StrIO else: - from io import StringIO as StrIO # NOQA + from io import StringIO as StrIO + +from powerline.shell import get_argparser, finish_args + +from tests import TestCase +from tests.lib import replace_attr class TestParser(TestCase): diff --git a/tests/test_config_merging.py b/tests/test_config_merging.py index 5249a0a3..ffdc4b51 100644 --- a/tests/test_config_merging.py +++ b/tests/test_config_merging.py @@ -1,15 +1,18 @@ # vim:fileencoding=utf-8:noet -from __future__ import unicode_literals +from __future__ import (unicode_literals, division, absolute_import, print_function) -from powerline import Powerline -from tests import TestCase -from tests.lib.config_mock import select_renderer -from shutil import rmtree import os import json -from powerline.lib import mergedicts_copy as mdc + from subprocess import check_call from operator import add +from shutil import rmtree + +from powerline.lib import mergedicts_copy as mdc +from powerline import Powerline + +from tests import TestCase +from tests.lib.config_mock import select_renderer CONFIG_DIR = 'tests/config' diff --git a/tests/test_config_reload.py b/tests/test_config_reload.py index eb7e1cb9..3bcfc9e2 100644 --- a/tests/test_config_reload.py +++ b/tests/test_config_reload.py @@ -1,5 +1,5 @@ # vim:fileencoding=utf-8:noet -from __future__ import unicode_literals +from __future__ import (unicode_literals, division, absolute_import, print_function) from time import sleep from copy import deepcopy diff --git a/tests/test_configuration.py b/tests/test_configuration.py index f6cbc975..c0dbf8e5 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -1,5 +1,5 @@ # vim:fileencoding=utf-8:noet -from __future__ import unicode_literals, absolute_import, division +from __future__ import (unicode_literals, division, absolute_import, print_function) import sys import os diff --git a/tests/test_lib.py b/tests/test_lib.py index 16f4c760..ef8dc737 100644 --- a/tests/test_lib.py +++ b/tests/test_lib.py @@ -1,5 +1,5 @@ # vim:fileencoding=utf-8:noet -from __future__ import division +from __future__ import (unicode_literals, division, absolute_import, print_function) import threading import os @@ -385,7 +385,7 @@ class TestLib(TestCase): return str(kwargs) func = add_divider_highlight_group('hl_group')(decorated_function_name) self.assertEqual(func.__name__, 'decorated_function_name') - self.assertEqual(func(kw={}), [{'contents': repr({'kw': {}}), 'divider_highlight_group': 'hl_group'}]) + self.assertEqual(func(kw={}), [{'contents': repr({str('kw'): {}}), 'divider_highlight_group': 'hl_group'}]) def test_humanize_bytes(self): self.assertEqual(humanize_bytes(0), '0 B') diff --git a/tests/test_lib_config.py b/tests/test_lib_config.py index 5c941d72..2b3db707 100644 --- a/tests/test_lib_config.py +++ b/tests/test_lib_config.py @@ -1,9 +1,10 @@ # vim:fileencoding=utf-8:noet -from __future__ import unicode_literals, absolute_import, division +from __future__ import (unicode_literals, division, absolute_import, print_function) import os from powerline.lib.config import ConfigLoader + from tests import TestCase from tests.lib.fsconfig import FSTree diff --git a/tests/test_provided_config_files.py b/tests/test_provided_config_files.py index e6329d1f..214748ea 100644 --- a/tests/test_provided_config_files.py +++ b/tests/test_provided_config_files.py @@ -2,11 +2,14 @@ '''Dynamic configuration files tests.''' +from __future__ import (unicode_literals, division, absolute_import, print_function) -import tests.vim as vim_module import sys import os import json + +import tests.vim as vim_module + from tests.lib import Args, urllib_read, replace_attr from tests import TestCase diff --git a/tests/test_segments.py b/tests/test_segments.py index 0f143bda..641d5f81 100644 --- a/tests/test_segments.py +++ b/tests/test_segments.py @@ -1,6 +1,5 @@ # vim:fileencoding=utf-8:noet - -from __future__ import unicode_literals +from __future__ import (unicode_literals, division, absolute_import, print_function) import sys import os diff --git a/tests/test_shells/postproc.py b/tests/test_shells/postproc.py index ddacb8b1..71e79f9e 100755 --- a/tests/test_shells/postproc.py +++ b/tests/test_shells/postproc.py @@ -1,6 +1,6 @@ #!/usr/bin/env python - -from __future__ import unicode_literals +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) import os import socket diff --git a/tests/test_watcher.py b/tests/test_watcher.py index 323a39ab..13aecbea 100644 --- a/tests/test_watcher.py +++ b/tests/test_watcher.py @@ -1,5 +1,5 @@ # vim:fileencoding=utf-8:noet -from __future__ import absolute_import, unicode_literals, print_function, division +from __future__ import (unicode_literals, division, absolute_import, print_function) import shutil import os diff --git a/tools/colors_find.py b/tools/colors_find.py index cdc01e10..cf66ef91 100755 --- a/tools/colors_find.py +++ b/tools/colors_find.py @@ -1,7 +1,10 @@ #!/usr/bin/env python -from __future__ import division, print_function +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) + import sys import os + from colormath.color_objects import sRGBColor, LabColor from colormath.color_conversions import convert_color from colormath.color_diff import delta_e_cie2000 diff --git a/tools/generate_gradients.py b/tools/generate_gradients.py index b3c94615..290e75e4 100755 --- a/tools/generate_gradients.py +++ b/tools/generate_gradients.py @@ -1,21 +1,22 @@ #!/usr/bin/env python # vim:fileencoding=utf-8:noet + '''Gradients generator ''' -from __future__ import division, unicode_literals + +from __future__ import (unicode_literals, division, absolute_import, print_function) + import sys import json -from powerline.colorscheme import cterm_to_hex -from itertools import groupby import argparse + +from itertools import groupby + from colormath.color_objects import sRGBColor, LabColor from colormath.color_conversions import convert_color from colormath.color_diff import delta_e_cie2000 -try: - from __builtin__ import unicode -except ImportError: - unicode = str # NOQA +from powerline.colorscheme import cterm_to_hex def num2(s):