From 67c2e4964e526ca8c7951490be493c5acbe52e63 Mon Sep 17 00:00:00 2001 From: Jintao Zhang Date: Tue, 25 Sep 2018 09:07:43 +0800 Subject: [PATCH] Enhanced code readability Signed-off-by: Jintao Zhang --- kubeshell/client.py | 12 +++++++----- kubeshell/completer.py | 16 +++++++++------- kubeshell/kubeshell.py | 28 ++++++++++++++-------------- kubeshell/logger.py | 2 +- kubeshell/main.py | 9 ++++++--- kubeshell/parser.py | 9 +++++---- kubeshell/style.py | 7 ++++--- kubeshell/tests/test_cli.py | 6 ++++-- kubeshell/toolbar.py | 8 +++++--- 9 files changed, 55 insertions(+), 42 deletions(-) diff --git a/kubeshell/client.py b/kubeshell/client.py index a6304bb..e58caea 100644 --- a/kubeshell/client.py +++ b/kubeshell/client.py @@ -1,11 +1,13 @@ -from __future__ import absolute_import, unicode_literals, print_function -from urllib3.exceptions import NewConnectionError, ConnectTimeoutError, MaxRetryError -from kubernetes import client, config -from kubernetes.client.api_client import ApiException +from __future__ import absolute_import, print_function, unicode_literals -import os import logging +import os + import urllib3 +from kubernetes import client, config +from kubernetes.client.api_client import ApiException +from urllib3.exceptions import (ConnectTimeoutError, MaxRetryError, + NewConnectionError) # disable warnings on stdout/stderr from urllib3 connection errors ulogger = logging.getLogger("urllib3") diff --git a/kubeshell/completer.py b/kubeshell/completer.py index d710ce9..a3bb7d4 100644 --- a/kubeshell/completer.py +++ b/kubeshell/completer.py @@ -1,15 +1,17 @@ -from __future__ import absolute_import, unicode_literals, print_function -from subprocess import check_output -from prompt_toolkit.completion import Completer, Completion -from fuzzyfinder import fuzzyfinder -import logging -import shlex +from __future__ import absolute_import, print_function, unicode_literals + import json +import logging import os import os.path +import shlex +from subprocess import check_output -from kubeshell.parser import Parser +from fuzzyfinder import fuzzyfinder from kubeshell.client import KubernetesClient +from kubeshell.parser import Parser +from prompt_toolkit.completion import Completer, Completion + logger = logging.getLogger(__name__) diff --git a/kubeshell/kubeshell.py b/kubeshell/kubeshell.py index 7bbc8f2..46ee1bc 100644 --- a/kubeshell/kubeshell.py +++ b/kubeshell/kubeshell.py @@ -1,23 +1,23 @@ -from __future__ import print_function, absolute_import, unicode_literals +from __future__ import absolute_import, print_function, unicode_literals -from prompt_toolkit import prompt -from prompt_toolkit.history import FileHistory -from prompt_toolkit.auto_suggest import AutoSuggestFromHistory -from prompt_toolkit.key_binding.defaults import load_key_bindings_for_prompt -from prompt_toolkit.keys import Keys +import logging +import os +import subprocess +import sys -from kubeshell.style import StyleFactory +import click +import yaml +from kubeshell.client import KubernetesClient, kubeconfig_filepath from kubeshell.completer import KubectlCompleter from kubeshell.lexer import KubectlLexer +from kubeshell.style import StyleFactory from kubeshell.toolbar import Toolbar -from kubeshell.client import KubernetesClient, kubeconfig_filepath +from prompt_toolkit import prompt +from prompt_toolkit.auto_suggest import AutoSuggestFromHistory +from prompt_toolkit.history import FileHistory +from prompt_toolkit.key_binding.defaults import load_key_bindings_for_prompt +from prompt_toolkit.keys import Keys -import os -import click -import sys -import subprocess -import yaml -import logging logger = logging.getLogger(__name__) inline_help = True diff --git a/kubeshell/logger.py b/kubeshell/logger.py index e3af938..0137a8c 100644 --- a/kubeshell/logger.py +++ b/kubeshell/logger.py @@ -50,4 +50,4 @@ } }, } -logging.config.dictConfig(loggingConf) \ No newline at end of file +logging.config.dictConfig(loggingConf) diff --git a/kubeshell/main.py b/kubeshell/main.py index 01bc5d8..3f41d3d 100644 --- a/kubeshell/main.py +++ b/kubeshell/main.py @@ -2,17 +2,20 @@ # -*- coding: utf-8 -*- -from __future__ import print_function, absolute_import, unicode_literals -from kubeshell.kubeshell import Kubeshell +from __future__ import absolute_import, print_function, unicode_literals import logging + +from kubeshell.kubeshell import Kubeshell + logger = logging.getLogger(__name__) def cli(): - kube_shell= Kubeshell() + kube_shell = Kubeshell() logger.info("session start") kube_shell.run_cli() + if __name__ == "__main__": cli() diff --git a/kubeshell/parser.py b/kubeshell/parser.py index eb41b68..193c30b 100644 --- a/kubeshell/parser.py +++ b/kubeshell/parser.py @@ -1,12 +1,12 @@ -from __future__ import absolute_import, unicode_literals, print_function -import json -import os +from __future__ import absolute_import, print_function, unicode_literals +import json import logging -logger = logging.getLogger(__name__) from kubeshell.client import KubernetesClient +logger = logging.getLogger(__name__) + class Option(object): """ Option represents an optional local flag in kubectl """ @@ -164,6 +164,7 @@ def evalOptions(self, root, parsed, unparsed): unparsed.append(token) return parsed, unparsed, suggestions + if __name__ == '__main__': parser = Parser('/Users/tsp/workspace/py/kube-shell/kubeshell/data/cli.json') p, _, s = parser.treewalk(parser.ast, parsed=list(), unparsed=['--', '--tcp 900:8080', 'nodeport', 'service', 'create', 'kubectl']) diff --git a/kubeshell/style.py b/kubeshell/style.py index d02e1ce..21b4dd2 100644 --- a/kubeshell/style.py +++ b/kubeshell/style.py @@ -10,11 +10,12 @@ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. -from __future__ import print_function, absolute_import, unicode_literals +from __future__ import absolute_import, print_function, unicode_literals + +from prompt_toolkit.styles import default_style_extensions, style_from_dict +from pygments.styles import get_style_by_name from pygments.token import Token from pygments.util import ClassNotFound -from pygments.styles import get_style_by_name -from prompt_toolkit.styles import default_style_extensions, style_from_dict class StyleFactory(object): diff --git a/kubeshell/tests/test_cli.py b/kubeshell/tests/test_cli.py index 2a3d008..de92d01 100644 --- a/kubeshell/tests/test_cli.py +++ b/kubeshell/tests/test_cli.py @@ -1,8 +1,9 @@ from __future__ import unicode_literals + import unittest -import pip + import pexpect -import unittest + class CliTest(unittest.TestCase): @@ -17,5 +18,6 @@ def step_run_cli(self): def step_see_prompt(self): self.cli.expect('kube-shell> ') + if __name__ == "__main__": unittest.main() diff --git a/kubeshell/toolbar.py b/kubeshell/toolbar.py index 000c784..a678b2b 100644 --- a/kubeshell/toolbar.py +++ b/kubeshell/toolbar.py @@ -1,6 +1,8 @@ -from __future__ import print_function, absolute_import, unicode_literals -from pygments.token import Token -from pygments.token import Keyword, Name, Operator, Generic, Literal, Text +from __future__ import absolute_import, print_function, unicode_literals + +from pygments.token import (Generic, Keyword, Literal, Name, Operator, Text, + Token) + class Toolbar(object): """Show information about the aws-shell in a tool bar.