[Kimchi-devel] [PATCH 1/4] pep8: Reorder import statements
Aline Manera
alinefm at linux.vnet.ibm.com
Mon Jan 20 15:29:59 UTC 2014
On 01/15/2014 12:05 AM, Crístian Viana wrote:
> According to the PEP8 Style Guide[1], imports should be grouped in the
> following order:
>
> 1) standard library imports
> 2) related third party imports
> 3) local application/library specific imports
>
> For Kimchi, that means:
>
> 1) standard Python libraries
> 2) CherryPy, Cheetah, Libvirt, etc.
> 3) util, kimchi.*, everything developed by our team
>
> Conditional/exceptional imports should be moved to the end of their
> corresponding groups.
>
> And according to some examples from the Style Guide, the "import ..."
> lines should come before the "from .... import" lines inside the same
> group.
>
> Here is an example:
>
> """
> import os
> import sys
> from glob import iglob
>
> try:
> from collections import OrderedDict
> except ImportError:
> from ordereddict import OrderedDict
>
> import cherrypy
>
> import kimchi.model
> from kimchi.exception import NotFoundError
>
> if something():
> import kimchi.control
> """
>
> [1]: http://www.python.org/dev/peps/pep-0008/#imports
>
> Signed-off-by: Crístian Viana <vianac at linux.vnet.ibm.com>
> ---
> src/kimchi/asynctask.py | 4 +++-
> src/kimchi/auth.py | 4 +++-
> src/kimchi/control/base.py | 4 +++-
> src/kimchi/control/utils.py | 2 +-
> src/kimchi/featuretests.py | 5 +++--
> src/kimchi/kvmusertests.py | 4 +++-
> src/kimchi/mockmodel.py | 3 ++-
> src/kimchi/model.py | 10 +++++-----
> src/kimchi/networkxml.py | 2 --
> src/kimchi/osinfo.py | 2 --
> src/kimchi/root.py | 4 +++-
> src/kimchi/server.py | 5 ++++-
> src/kimchi/template.py | 2 +-
> src/kimchi/utils.py | 2 +-
> src/kimchi/xmlutils.py | 2 --
> tests/test_mockmodel.py | 6 ++++--
> tests/test_networkxml.py | 2 --
> tests/test_plugin.py | 2 --
> tests/test_rest.py | 2 --
> tests/test_server.py | 2 +-
> tests/utils.py | 6 +++---
> 21 files changed, 40 insertions(+), 35 deletions(-)
>
> diff --git a/src/kimchi/asynctask.py b/src/kimchi/asynctask.py
> index 4ff76e4..3b7d505 100644
> --- a/src/kimchi/asynctask.py
> +++ b/src/kimchi/asynctask.py
> @@ -20,11 +20,13 @@
> # License along with this library; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
>
> -import cherrypy
> import threading
> import traceback
>
>
> +import cherrypy
> +
> +
> from kimchi.exception import OperationFailed
>
>
> diff --git a/src/kimchi/auth.py b/src/kimchi/auth.py
> index 242fdcf..d0a1318 100644
> --- a/src/kimchi/auth.py
> +++ b/src/kimchi/auth.py
> @@ -23,11 +23,13 @@
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
>
> import base64
> -import cherrypy
> import PAM
> import re
>
>
PAM is also a third-party module. It comes in PyPAM/python-pam package
> +import cherrypy
> +
> +
> from kimchi import template
> from kimchi.exception import OperationFailed
>
> diff --git a/src/kimchi/control/base.py b/src/kimchi/control/base.py
> index 185c8d8..031bf59 100644
> --- a/src/kimchi/control/base.py
> +++ b/src/kimchi/control/base.py
> @@ -22,10 +22,12 @@
> # License along with this library; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
>
> -import cherrypy
> import urllib2
>
>
> +import cherrypy
> +
> +
> import kimchi.template
> from kimchi.control.utils import get_class_name, internal_redirect, model_fn
> from kimchi.control.utils import parse_request, validate_method
> diff --git a/src/kimchi/control/utils.py b/src/kimchi/control/utils.py
> index c3c5f8e..894f35b 100644
> --- a/src/kimchi/control/utils.py
> +++ b/src/kimchi/control/utils.py
> @@ -23,10 +23,10 @@
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> #
>
> -import cherrypy
> import json
>
>
> +import cherrypy
> from jsonschema import Draft3Validator, ValidationError
>
>
> diff --git a/src/kimchi/featuretests.py b/src/kimchi/featuretests.py
> index a5755a2..e8d654d 100644
> --- a/src/kimchi/featuretests.py
> +++ b/src/kimchi/featuretests.py
> @@ -20,13 +20,14 @@
> # License along with this library; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
>
> -import cherrypy
> -import libvirt
> import os
> import subprocess
> import threading
>
>
> +import cherrypy
> +import libvirt
> +
> from kimchi import config
>
>
> diff --git a/src/kimchi/kvmusertests.py b/src/kimchi/kvmusertests.py
> index 3d69eb4..82e3862 100644
> --- a/src/kimchi/kvmusertests.py
> +++ b/src/kimchi/kvmusertests.py
> @@ -20,11 +20,13 @@
> # License along with this library; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
>
> -import libvirt
> import psutil
psutil is also a third-party module. It comes in python-psutil package
> import uuid
>
>
> +import libvirt
> +
> +
> from kimchi.rollbackcontext import RollbackContext
>
>
> diff --git a/src/kimchi/mockmodel.py b/src/kimchi/mockmodel.py
> index 1f5178f..494a757 100644
> --- a/src/kimchi/mockmodel.py
> +++ b/src/kimchi/mockmodel.py
> @@ -20,7 +20,6 @@
> # License along with this library; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
>
> -import cherrypy
> import copy
> import disks
disks is a kimchi module. So it should be "from kimchi import disks"
> import glob
> @@ -41,6 +40,8 @@ except ImportError:
> import ImageDraw
>
>
> +import cherrypy
> +
> import kimchi.model
> from kimchi import config
> from kimchi import network as knetwork
> diff --git a/src/kimchi/model.py b/src/kimchi/model.py
> index 671af02..0125a93 100644
> --- a/src/kimchi/model.py
> +++ b/src/kimchi/model.py
> @@ -20,7 +20,6 @@
> # License along with this library; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
>
> -import cherrypy
> import copy
> import disks
disks is a kimchi module. So it should be "from kimchi import disks"
> import fnmatch
> @@ -40,10 +39,6 @@ import sys
> import threading
> import time
> import uuid
> -
> -
> -from cherrypy.process.plugins import BackgroundTask
> -from cherrypy.process.plugins import SimplePlugin
> from collections import defaultdict
> from xml.etree import ElementTree
>
> @@ -54,6 +49,11 @@ except ImportError:
> from ordereddict import OrderedDict
>
>
> +import cherrypy
> +from cherrypy.process.plugins import BackgroundTask
> +from cherrypy.process.plugins import SimplePlugin
> +
> +
> from kimchi import config
> from kimchi import netinfo
> from kimchi import network as knetwork
> diff --git a/src/kimchi/networkxml.py b/src/kimchi/networkxml.py
> index 63cb210..61a9ba0 100644
> --- a/src/kimchi/networkxml.py
> +++ b/src/kimchi/networkxml.py
> @@ -22,8 +22,6 @@
>
> import ipaddr
> import lxml.etree as ET
> -
> -
> from lxml.builder import E
>
>
> diff --git a/src/kimchi/osinfo.py b/src/kimchi/osinfo.py
> index 0509622..5ed5186 100644
> --- a/src/kimchi/osinfo.py
> +++ b/src/kimchi/osinfo.py
> @@ -22,8 +22,6 @@
>
> import copy
> import os
> -
> -
> from distutils.version import LooseVersion
>
>
> diff --git a/src/kimchi/root.py b/src/kimchi/root.py
> index 3cc6321..ae06bc3 100644
> --- a/src/kimchi/root.py
> +++ b/src/kimchi/root.py
> @@ -21,10 +21,12 @@
> # License along with this library; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
>
> -import cherrypy
> import json
>
>
> +import cherrypy
> +
> +
> from kimchi import auth
> from kimchi import template
> from kimchi.config import get_api_schema_file
> diff --git a/src/kimchi/server.py b/src/kimchi/server.py
> index b820263..53fe889 100644
> --- a/src/kimchi/server.py
> +++ b/src/kimchi/server.py
> @@ -22,12 +22,15 @@
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> #
>
> -import cherrypy
> import logging
> import logging.handlers
> import os
> import sslcert
>
sscert is a kimchi module. So it should be "from kimchi import sslcert"
> +
> +import cherrypy
> +
> +
> from kimchi import auth
> from kimchi import config
> from kimchi import model
> diff --git a/src/kimchi/template.py b/src/kimchi/template.py
> index 1f19c4a..3f94d24 100644
> --- a/src/kimchi/template.py
> +++ b/src/kimchi/template.py
> @@ -21,12 +21,12 @@
> # License along with this library; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
>
> -import cherrypy
> import errno
> import json
> import os
>
>
> +import cherrypy
> from Cheetah.Template import Template
>
>
> diff --git a/src/kimchi/utils.py b/src/kimchi/utils.py
> index af245c6..ac7dee5 100644
> --- a/src/kimchi/utils.py
> +++ b/src/kimchi/utils.py
> @@ -21,11 +21,11 @@
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> #
>
> -import cherrypy
> import os
> import urllib2
>
>
> +import cherrypy
> from cherrypy.lib.reprconf import Parser
>
>
> diff --git a/src/kimchi/xmlutils.py b/src/kimchi/xmlutils.py
> index 51ff0ec..e368e9d 100644
> --- a/src/kimchi/xmlutils.py
> +++ b/src/kimchi/xmlutils.py
> @@ -21,8 +21,6 @@
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
>
> import libxml2
> -
> -
> from xml.etree import ElementTree
>
>
> diff --git a/tests/test_mockmodel.py b/tests/test_mockmodel.py
> index f167dc6..3e0701f 100644
> --- a/tests/test_mockmodel.py
> +++ b/tests/test_mockmodel.py
> @@ -20,16 +20,18 @@
> # License along with this library; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
>
> -import cherrypy
> import json
> import os
> import time
> import unittest
>
>
> +import cherrypy
> +
> +
> import kimchi.mockmodel
> -from utils import get_free_port, patch_auth, request, run_server
> from kimchi.control.base import Collection, Resource
> +from utils import get_free_port, patch_auth, request, run_server
>
>
> test_server = None
> diff --git a/tests/test_networkxml.py b/tests/test_networkxml.py
> index 42b3ea9..fc97f6a 100644
> --- a/tests/test_networkxml.py
> +++ b/tests/test_networkxml.py
> @@ -26,8 +26,6 @@ import unittest
>
> import kimchi.networkxml as nxml
> import utils
> -
> -
> from kimchi.xmlutils import xpath_get_text
>
>
> diff --git a/tests/test_plugin.py b/tests/test_plugin.py
> index 42c87a9..f12b11f 100644
> --- a/tests/test_plugin.py
> +++ b/tests/test_plugin.py
> @@ -24,8 +24,6 @@ import json
> import os
> import sys
> import unittest
> -
> -
> from functools import partial
>
>
> diff --git a/tests/test_rest.py b/tests/test_rest.py
> index 8732781..89bc616 100644
> --- a/tests/test_rest.py
> +++ b/tests/test_rest.py
> @@ -25,8 +25,6 @@ import json
> import os
> import time
> import unittest
> -
> -
> from functools import partial
>
>
> diff --git a/tests/test_server.py b/tests/test_server.py
> index 734a618..adbf770 100644
> --- a/tests/test_server.py
> +++ b/tests/test_server.py
> @@ -25,8 +25,8 @@ import os
> import unittest
>
>
> -import utils
> import kimchi.mockmodel
> +import utils
>
> #utils.silence_server()
>
> diff --git a/tests/utils.py b/tests/utils.py
> index 79fc2e2..452a001 100644
> --- a/tests/utils.py
> +++ b/tests/utils.py
> @@ -22,19 +22,19 @@
> #
>
> import base64
> -import cherrypy
> import httplib
> import os
> import socket
> import sys
> import threading
> import unittest
> -
> -
> from contextlib import closing
> from lxml import etree
>
>
> +import cherrypy
> +
> +
> import kimchi.server
> import kimchi.model
>
More information about the Kimchi-devel
mailing list