From a238a724c33f91bb35a58db0c51f55babb801840 Mon Sep 17 00:00:00 2001
From: John Chilton <jmchilton@gmail.com>
Date: Mon, 29 Aug 2016 23:53:48 -0400
Subject: [PATCH] Slew of import order fixes to bring in line with gx standard.

---
 pulsar/cache/__init__.py            |  2 +-
 pulsar/cache/persistence.py         |  4 ++-
 pulsar/cache/util.py                |  9 ++++---
 pulsar/client/__init__.py           | 14 +++++------
 pulsar/client/action_mapper.py      | 38 +++++++++++++++++------------
 pulsar/client/amqp_exchange.py      |  5 ++--
 pulsar/client/client.py             | 20 +++++++--------
 pulsar/client/destination.py        |  1 +
 pulsar/client/interface.py          |  7 +++---
 pulsar/client/job_directory.py      |  7 +++---
 pulsar/client/manager.py            | 13 +++++-----
 pulsar/client/path_mapper.py        |  5 ++--
 pulsar/client/setup_handler.py      |  3 ++-
 pulsar/client/staging/__init__.py   | 10 +++++---
 pulsar/client/staging/down.py       |  7 +++---
 pulsar/client/staging/up.py         | 23 ++++++++++-------
 pulsar/client/test/check.py         | 22 ++++++++++-------
 pulsar/client/transport/__init__.py |  8 +++---
 pulsar/client/transport/curl.py     | 13 +++++-----
 pulsar/client/transport/ssh.py      |  2 +-
 pulsar/client/transport/standard.py |  5 +++-
 pulsar/client/util.py               | 35 ++++++++++++++------------
 pulsar/mesos/framework.py           | 12 ++++-----
 pulsar/messaging/__init__.py        |  3 ++-
 pulsar/messaging/bind_amqp.py       | 10 +++++---
 pulsar/scripts/submit_util.py       |  4 +--
 pulsar/tools/toolbox.py             |  9 ++++---
 pulsar/tools/validator.py           |  4 +--
 pulsar/web/routes.py                | 14 ++++++-----
 29 files changed, 176 insertions(+), 133 deletions(-)

diff --git a/pulsar/cache/__init__.py b/pulsar/cache/__init__.py
index 7a97262b..57cbffe8 100644
--- a/pulsar/cache/__init__.py
+++ b/pulsar/cache/__init__.py
@@ -1,6 +1,6 @@
 
-from os.path import join, exists
 from hashlib import sha256
+from os.path import exists, join
 
 from .persistence import PersistenceStore
 from .util import atomicish_move
diff --git a/pulsar/cache/persistence.py b/pulsar/cache/persistence.py
index 2bc667d9..67262850 100644
--- a/pulsar/cache/persistence.py
+++ b/pulsar/cache/persistence.py
@@ -1,7 +1,9 @@
+
 import shelve
-from threading import Lock
 import traceback
 
+from threading import Lock
+
 
 class PersistenceStore(object):
 
diff --git a/pulsar/cache/util.py b/pulsar/cache/util.py
index a8926e3e..dba36897 100644
--- a/pulsar/cache/util.py
+++ b/pulsar/cache/util.py
@@ -1,12 +1,12 @@
+
 import os
 import shutil
+
 from datetime import datetime
 
 
 def atomicish_move(source, destination, tmp_suffix="_TMP"):
-    """
-    Move source to destination without copying to directly to destination
-    there is never a partial file.
+    """Move source to destination without risk of partial moves.
 
     > from tempfile import mkdtemp
     > from os.path import join, exists
@@ -28,8 +28,9 @@ def atomicish_move(source, destination, tmp_suffix="_TMP"):
 
 
 class Time:
-    """ Time utilities of now that can be instrumented for testing."""
+    """Time utilities of now that can be instrumented for testing."""
 
     @classmethod
     def now(cls):
+        """Return the current datetime."""
         return datetime.utcnow()
diff --git a/pulsar/client/__init__.py b/pulsar/client/__init__.py
index b28ab87c..a42c6017 100644
--- a/pulsar/client/__init__.py
+++ b/pulsar/client/__init__.py
@@ -39,16 +39,16 @@ in the ``galaxy.ini`` file.
 
 """
 
-from .staging.down import finish_job
-from .staging.up import submit_job
-from .staging import ClientJobDescription
-from .staging import PulsarOutputs
-from .staging import ClientOutputs
 from .client import OutputNotFoundException
-from .manager import build_client_manager
 from .destination import url_to_destination_params
-from .path_mapper import PathMapper
 from .exceptions import PulsarClientTransportError
+from .manager import build_client_manager
+from .path_mapper import PathMapper
+from .staging import ClientJobDescription
+from .staging import PulsarOutputs
+from .staging import ClientOutputs
+from .staging.down import finish_job
+from .staging.up import submit_job
 
 __all__ = [
     'build_client_manager',
diff --git a/pulsar/client/action_mapper.py b/pulsar/client/action_mapper.py
index 34e40b75..6d698592 100644
--- a/pulsar/client/action_mapper.py
+++ b/pulsar/client/action_mapper.py
@@ -1,26 +1,34 @@
+import fnmatch
+import tempfile
+
 from contextlib import contextmanager
 from json import load
 from os import makedirs
 from os import unlink
-from os.path import exists
-from os.path import abspath
-from os.path import dirname
-from os.path import join
-from os.path import basename
-from os.path import sep
-import fnmatch
-from re import compile
-from re import escape
+from os.path import (
+    abspath,
+    basename,
+    dirname,
+    exists,
+    join,
+    sep,
+)
+from re import compile, escape
+
 from galaxy.util.bunch import Bunch
+
 from .config_util import read_file
-from .util import directory_files
-from .util import unique_path_prefix
-from .util import copy_to_path
 from .transport import get_file
 from .transport import post_file
-from .transport import rsync_get_file, scp_get_file
-from .transport import rsync_post_file, scp_post_file
-import tempfile
+from .transport import (
+    rsync_get_file,
+    rsync_post_file,
+    scp_get_file,
+    scp_post_file,
+)
+from .util import copy_to_path
+from .util import directory_files
+from .util import unique_path_prefix
 
 
 DEFAULT_MAPPED_ACTION = 'transfer'  # Not really clear to me what this should be, exception?
diff --git a/pulsar/client/amqp_exchange.py b/pulsar/client/amqp_exchange.py
index 03ad85ff..9c47ee08 100644
--- a/pulsar/client/amqp_exchange.py
+++ b/pulsar/client/amqp_exchange.py
@@ -1,8 +1,9 @@
 import copy
-import uuid
-import socket
 import logging
+import socket
 import threading
+import uuid
+
 from time import sleep, time
 
 try:
diff --git a/pulsar/client/client.py b/pulsar/client/client.py
index 4b9c4df0..e3af9783 100644
--- a/pulsar/client/client.py
+++ b/pulsar/client/client.py
@@ -1,23 +1,23 @@
+import logging
 import os
 
 from six import string_types
 
-from .destination import submit_params
-from .setup_handler import build as build_setup_handler
-from .job_directory import RemoteJobDirectory
+from .action_mapper import (
+    actions,
+    path_type,
+)
 from .decorators import parseJson
 from .decorators import retry
-from .util import json_dumps
-from .util import json_loads
+from .destination import submit_params
+from .job_directory import RemoteJobDirectory
+from .setup_handler import build as build_setup_handler
 from .util import copy
 from .util import ensure_directory
+from .util import json_dumps
+from .util import json_loads
 from .util import to_base64_json
-from .action_mapper import (
-    path_type,
-    actions,
-)
 
-import logging
 log = logging.getLogger(__name__)
 
 CACHE_WAIT_SECONDS = 3
diff --git a/pulsar/client/destination.py b/pulsar/client/destination.py
index cee7a40f..7197da97 100644
--- a/pulsar/client/destination.py
+++ b/pulsar/client/destination.py
@@ -1,5 +1,6 @@
 
 from re import match
+
 from .util import filter_destination_params
 
 SUBMIT_PREFIX = "submit_"
diff --git a/pulsar/client/interface.py b/pulsar/client/interface.py
index d0f5b117..00962d3c 100644
--- a/pulsar/client/interface.py
+++ b/pulsar/client/interface.py
@@ -1,18 +1,19 @@
+import logging
+
 from abc import ABCMeta
 from abc import abstractmethod
 from string import Template
 
 from six import BytesIO
-from six.moves.urllib.parse import urlencode
-from six.moves.urllib.parse import urljoin
 try:
     from six import text_type
 except ImportError:
     from galaxy.util import unicodify as text_type
+from six.moves.urllib.parse import urlencode
+from six.moves.urllib.parse import urljoin
 
 from .util import copy_to_path
 
-import logging
 log = logging.getLogger(__name__)
 
 
diff --git a/pulsar/client/job_directory.py b/pulsar/client/job_directory.py
index f8d49b1c..cd00e96b 100644
--- a/pulsar/client/job_directory.py
+++ b/pulsar/client/job_directory.py
@@ -1,13 +1,14 @@
 """
 """
 import os.path
-from collections import deque
 import posixpath
 
-from .util import PathHelper
+from collections import deque
+from logging import getLogger
+
 from galaxy.util import in_directory
 
-from logging import getLogger
+from .util import PathHelper
 log = getLogger(__name__)
 
 
diff --git a/pulsar/client/manager.py b/pulsar/client/manager.py
index c43db089..459efa09 100644
--- a/pulsar/client/manager.py
+++ b/pulsar/client/manager.py
@@ -5,28 +5,29 @@ to create a ``ClientManager``, that in return can create Pulsar clients for
 specific actions.
 """
 
-import threading
 import functools
+import threading
+
+from logging import getLogger
+from os import getenv
 try:
     from Queue import Queue
 except ImportError:
     from queue import Queue
-from os import getenv
 
-from .client import JobClient
+from .amqp_exchange_factory import get_exchange
 from .client import InputCachingJobClient
+from .client import JobClient
 from .client import MessageJobClient
 from .client import MessageCLIJobClient
+from .destination import url_to_destination_params
 from .interface import HttpPulsarInterface
 from .interface import LocalPulsarInterface
 from .object_client import ObjectStoreClient
 from .transport import get_transport
 from .util import TransferEventManager
-from .destination import url_to_destination_params
-from .amqp_exchange_factory import get_exchange
 
 
-from logging import getLogger
 log = getLogger(__name__)
 
 DEFAULT_TRANSFER_THREADS = 2
diff --git a/pulsar/client/path_mapper.py b/pulsar/client/path_mapper.py
index 8e963387..4ab8805b 100644
--- a/pulsar/client/path_mapper.py
+++ b/pulsar/client/path_mapper.py
@@ -1,10 +1,11 @@
 import os.path
+
+from galaxy.util import in_directory
+
 from .action_mapper import FileActionMapper
 from .action_mapper import path_type
 from .util import PathHelper
 
-from galaxy.util import in_directory
-
 
 class PathMapper(object):
     """ Ties together a FileActionMapper and remote job configuration returned
diff --git a/pulsar/client/setup_handler.py b/pulsar/client/setup_handler.py
index 368deb8b..81475794 100644
--- a/pulsar/client/setup_handler.py
+++ b/pulsar/client/setup_handler.py
@@ -1,8 +1,9 @@
 import os
-from .util import filter_destination_params
 
 from pulsar import __version__ as pulsar_version
 
+from .util import filter_destination_params
+
 REMOTE_SYSTEM_PROPERTY_PREFIX = "remote_property_"
 
 
diff --git a/pulsar/client/staging/__init__.py b/pulsar/client/staging/__init__.py
index 029e08bc..de2718ad 100644
--- a/pulsar/client/staging/__init__.py
+++ b/pulsar/client/staging/__init__.py
@@ -1,8 +1,12 @@
+
 import re
-from os.path import basename
-from os.path import join
-from os.path import dirname
+
 from os import sep
+from os.path import (
+    basename,
+    dirname,
+    join,
+)
 
 from ..util import PathHelper
 
diff --git a/pulsar/client/staging/down.py b/pulsar/client/staging/down.py
index 10a3423b..afdd1cec 100644
--- a/pulsar/client/staging/down.py
+++ b/pulsar/client/staging/down.py
@@ -1,13 +1,12 @@
 """Code run on the client side for unstaging complete Pulsar jobs."""
-from os.path import join
-from os.path import relpath
 from contextlib import contextmanager
+from logging import getLogger
+from os.path import join, relpath
 
-from ..staging import COMMAND_VERSION_FILENAME
 from ..action_mapper import FileActionMapper
+from ..staging import COMMAND_VERSION_FILENAME
 
 
-from logging import getLogger
 log = getLogger(__name__)
 
 
diff --git a/pulsar/client/staging/up.py b/pulsar/client/staging/up.py
index 1db85b0b..92b93cd2 100644
--- a/pulsar/client/staging/up.py
+++ b/pulsar/client/staging/up.py
@@ -1,19 +1,24 @@
-from os.path import abspath, basename, join, exists
-from os.path import isfile
-from os.path import dirname
-from os.path import relpath
+from io import open
+from logging import getLogger
 from os import listdir, sep
+from os.path import (
+    abspath,
+    basename,
+    dirname,
+    exists,
+    isfile,
+    join,
+    relpath,
+)
 from re import findall
-from io import open
 
-from ..staging import COMMAND_VERSION_FILENAME
 from ..action_mapper import FileActionMapper
-from ..action_mapper import path_type
 from ..action_mapper import MessageAction
-from ..util import PathHelper
+from ..action_mapper import path_type
+from ..staging import COMMAND_VERSION_FILENAME
 from ..util import directory_files
+from ..util import PathHelper
 
-from logging import getLogger
 log = getLogger(__name__)
 
 
diff --git a/pulsar/client/test/check.py b/pulsar/client/test/check.py
index 599cf01b..c9b2f8ab 100644
--- a/pulsar/client/test/check.py
+++ b/pulsar/client/test/check.py
@@ -3,6 +3,7 @@
 
 Exercises various features both the Pulsar client and server.
 """
+
 import optparse
 import os
 import re
@@ -12,20 +13,23 @@ import tempfile
 import threading
 import time
 import traceback
-from collections import namedtuple
 
+from collections import namedtuple
 from io import open
 
-from six import binary_type
-
-from pulsar.client import submit_job
-from pulsar.client import finish_job
-from pulsar.client import PulsarOutputs
-from pulsar.client import ClientOutputs
-from pulsar.client import build_client_manager
-from pulsar.client import ClientJobDescription
 from galaxy.tools.deps.dependencies import DependenciesDescription
 from galaxy.tools.deps.requirements import ToolRequirement
+from six import binary_type
+
+from pulsar.client import (
+    build_client_manager,
+    ClientJobDescription,
+    ClientOutputs,
+    finish_job,
+    PulsarOutputs,
+    submit_job,
+)
+
 from .test_common import write_config
 
 TEST_SCRIPT = b"""# -*- coding: utf-8 -*-
diff --git a/pulsar/client/transport/__init__.py b/pulsar/client/transport/__init__.py
index db2541ba..a1a0f7de 100644
--- a/pulsar/client/transport/__init__.py
+++ b/pulsar/client/transport/__init__.py
@@ -1,12 +1,12 @@
-from .standard import Urllib2Transport
-from .curl import PycurlTransport
 import os
 
+from .curl import curl_available
+from .curl import PycurlTransport
+from .requests import requests_multipart_post_available
 from .ssh import rsync_get_file, scp_get_file
 from .ssh import rsync_post_file, scp_post_file
+from .standard import Urllib2Transport
 
-from .curl import curl_available
-from .requests import requests_multipart_post_available
 if curl_available:
     from .curl import get_file
     from .curl import post_file
diff --git a/pulsar/client/transport/curl.py b/pulsar/client/transport/curl.py
index 02ff12c5..f59d9364 100644
--- a/pulsar/client/transport/curl.py
+++ b/pulsar/client/transport/curl.py
@@ -1,8 +1,5 @@
-import os.path
 import logging
-
-from six import string_types
-from six import BytesIO
+import os.path
 
 try:
     import pycurl
@@ -10,6 +7,8 @@ try:
     curl_available = True
 except ImportError:
     curl_available = False
+from six import string_types
+from six import BytesIO
 
 from ..exceptions import PulsarClientTransportError
 
@@ -52,9 +51,9 @@ class PycurlTransport(object):
                 c.perform()
             except error as exc:
                 raise PulsarClientTransportError(
-                        _error_curl_to_pulsar(exc.args[0]),
-                        transport_code=exc.args[0],
-                        transport_message=exc.args[1])
+                    _error_curl_to_pulsar(exc.args[0]),
+                    transport_code=exc.args[0],
+                    transport_message=exc.args[1])
             if not output_path:
                 return buf.getvalue()
         finally:
diff --git a/pulsar/client/transport/ssh.py b/pulsar/client/transport/ssh.py
index b0c7a3b1..f0aff6f9 100644
--- a/pulsar/client/transport/ssh.py
+++ b/pulsar/client/transport/ssh.py
@@ -1,5 +1,5 @@
-import subprocess
 import os
+import subprocess
 
 SSH_OPTIONS = ['-o', 'StrictHostKeyChecking=no', '-o', 'PreferredAuthentications=publickey', '-o', 'PubkeyAuthentication=yes']
 
diff --git a/pulsar/client/transport/standard.py b/pulsar/client/transport/standard.py
index 01df9c71..25ce84c4 100644
--- a/pulsar/client/transport/standard.py
+++ b/pulsar/client/transport/standard.py
@@ -1,10 +1,13 @@
 """
 Pulsar HTTP Client layer based on Python Standard Library (urllib2)
 """
+
 from __future__ import with_statement
-from os.path import getsize
+
 import mmap
 import socket
+
+from os.path import getsize
 try:
     from urllib2 import urlopen, URLError
 except ImportError:
diff --git a/pulsar/client/util.py b/pulsar/client/util.py
index 9edda1a0..1a2497eb 100644
--- a/pulsar/client/util.py
+++ b/pulsar/client/util.py
@@ -1,22 +1,27 @@
-from functools import wraps
-from threading import Lock, Event
-from weakref import WeakValueDictionary
-from os import walk
-from os import curdir
-from os import listdir
-from os import makedirs
-from os import unlink
-from os.path import relpath
-from os.path import join
-from os.path import abspath
-from os.path import exists
-from errno import ENOENT, EEXIST
-import os.path
 import hashlib
-import shutil
 import json
+import os.path
+import shutil
 import sys
 
+from errno import EEXIST, ENOENT
+from functools import wraps
+from os import (
+    curdir,
+    listdir,
+    makedirs,
+    unlink,
+    walk,
+)
+from os.path import (
+    abspath,
+    exists,
+    join,
+    relpath,
+)
+from threading import Event, Lock
+from weakref import WeakValueDictionary
+
 from six import binary_type
 
 # TODO: move to galaxy.util so it doesn't have to be duplicated
diff --git a/pulsar/mesos/framework.py b/pulsar/mesos/framework.py
index 636c25cc..dc774247 100644
--- a/pulsar/mesos/framework.py
+++ b/pulsar/mesos/framework.py
@@ -2,18 +2,18 @@ import collections
 import logging
 import os
 
-from pulsar.mesos import (
-    Scheduler,
-    MesosSchedulerDriver,
-    mesos_pb2,
-)
 from pulsar.client.util import to_base64_json
-
 from pulsar.main import (
     PULSAR_ROOT_DIR,
 )
+from pulsar.mesos import (
+    mesos_pb2,
+    MesosSchedulerDriver,
+    Scheduler,
+)
 from pulsar.messaging import bind_amqp
 
+
 log = logging.getLogger(__name__)
 
 
diff --git a/pulsar/messaging/__init__.py b/pulsar/messaging/__init__.py
index 720486a5..67d1a6d3 100644
--- a/pulsar/messaging/__init__.py
+++ b/pulsar/messaging/__init__.py
@@ -5,9 +5,10 @@ submodules of ``pulsar.client``.
 
 import logging
 
-from ..messaging import bind_amqp
 from six import itervalues
 
+from ..messaging import bind_amqp
+
 log = logging.getLogger(__name__)
 
 
diff --git a/pulsar/messaging/bind_amqp.py b/pulsar/messaging/bind_amqp.py
index 54c54cc2..b17c7e24 100644
--- a/pulsar/messaging/bind_amqp.py
+++ b/pulsar/messaging/bind_amqp.py
@@ -1,9 +1,11 @@
-from galaxy.util import asbool, mask_password_from_url
-from pulsar.client import amqp_exchange_factory
-from pulsar import manager_endpoint_util
 import functools
-import threading
 import logging
+import threading
+
+from galaxy.util import asbool, mask_password_from_url
+
+from pulsar import manager_endpoint_util
+from pulsar.client import amqp_exchange_factory
 
 log = logging.getLogger(__name__)
 
diff --git a/pulsar/scripts/submit_util.py b/pulsar/scripts/submit_util.py
index 87ce6df1..5de1334a 100644
--- a/pulsar/scripts/submit_util.py
+++ b/pulsar/scripts/submit_util.py
@@ -1,7 +1,8 @@
 """ CLI related utilities for submitting Pulsar jobs.
 """
-import time
 import json
+import logging
+import time
 
 from pulsar.client.util import from_base64_json
 from pulsar.main import (
@@ -11,7 +12,6 @@ from pulsar.main import (
 from pulsar.manager_endpoint_util import submit_job
 from pulsar.managers.status import is_job_done
 
-import logging
 log = logging.getLogger(__name__)
 
 DEFAULT_POLL_TIME = 2
diff --git a/pulsar/tools/toolbox.py b/pulsar/tools/toolbox.py
index 6386d578..0d191ab1 100644
--- a/pulsar/tools/toolbox.py
+++ b/pulsar/tools/toolbox.py
@@ -1,10 +1,11 @@
-from pulsar.tools.validator import ExpressionValidator
+from io import open
+from logging import getLogger
+from os.path import abspath, dirname, join
 from xml.etree import ElementTree
-from os.path import join, abspath, dirname
 
-from io import open
+from pulsar.tools.validator import ExpressionValidator
+
 
-from logging import getLogger
 log = getLogger(__name__)
 
 
diff --git a/pulsar/tools/validator.py b/pulsar/tools/validator.py
index 9cb77e95..b181afc4 100644
--- a/pulsar/tools/validator.py
+++ b/pulsar/tools/validator.py
@@ -1,7 +1,7 @@
+from os.path import join
+from re import compile, escape
 from xml.etree.ElementTree import fromstring
-from re import escape, compile
 
-from os.path import join
 from galaxy.util import in_directory
 
 
diff --git a/pulsar/web/routes.py b/pulsar/web/routes.py
index 1f529608..f460ef43 100644
--- a/pulsar/web/routes.py
+++ b/pulsar/web/routes.py
@@ -1,22 +1,24 @@
+import logging
 import os
-from webob import exc
+
 from json import loads
 
+from webob import exc
+
 from pulsar.util import (
     copy_to_path,
     copy_to_temp,
 )
 from pulsar.client.job_directory import verify_is_in_directory
-from pulsar.web.framework import Controller
-from pulsar.manager_factory import DEFAULT_MANAGER_NAME
+from pulsar.client.action_mapper import path_type
 from pulsar.manager_endpoint_util import (
-    submit_job,
     setup_job,
     status_dict,
+    submit_job,
 )
-from pulsar.client.action_mapper import path_type
+from pulsar.manager_factory import DEFAULT_MANAGER_NAME
+from pulsar.web.framework import Controller
 
-import logging
 log = logging.getLogger(__name__)
 
 
-- 
GitLab