diff --git a/pulsar/cache/__init__.py b/pulsar/cache/__init__.py
index 7a97262b38b32fd89252660931e9f38ad4c702d9..57cbffe835db0eaa62c2a38cf773a2af37759950 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 2bc667d9fd43a3ec83ea8a91590b9255337d483f..67262850c45ce3c17c3cf02b48238e6d1b4d2a05 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 a8926e3edd7c4a248c342c355bff8320afadce9a..dba36897e6c908ec86bf53eadea891a3c1ba8a44 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 b28ab87cd93d2b8c915c847127c9e8583741f4cb..a42c60173cef27dd2005ffaa0ff5bd10f2cb401d 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 34e40b753f91d4fd385bd1b7ce4b9e0735066e76..6d6985926dbc01cee6246ad482f64dcec262f8a5 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 03ad85ffa95be5fef37dd6adc9fdb5641e6e0b83..9c47ee0803a7441189daf913d763f13ed4441808 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 4b9c4df07d289538880c552de3d347c130861889..e3af9783fd475c78eb42362bad96cad93af8a52b 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 cee7a40f63025b8cefdce00ca039d5861ec4a094..7197da976a2d323c025564d75be0d0d2517de3c6 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 d0f5b117ddbfae1992af0c9a4550e6cdaa3eb9bb..00962d3ca71efdae852f66bd26395f1332bd78b7 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 f8d49b1c12151cfb5b0928a881626dd307d3cf50..cd00e96b5ac59ad2514b2c6167ce03c57c6ecd5f 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 c43db0896c2db45738a00ff6b7d47ce458056f33..459efa0905ab33a0c9e97469b17e65c28527d02c 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 8e963387bb171fe37eb641ae9b764a5a6bde4d81..4ab8805b62a1eddeadb6fdebee898f9b581c841f 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 368deb8b9d00f73965a20f8085ebe3822453871c..8147579499c37cfb22d0d9692131959c3ef0a350 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 029e08bc9c2bd60d04580933fdad641a1aeed6dd..de2718ade6edc4b507af2db608cd8e4ad86defcf 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 10a3423bf4599a39fe9627dec5a31877a64b9838..afdd1cec5c98cc14722dffa279ac625b40be4d2d 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 1db85b0bdd89fbec3c72b9185704efaba4d4f0ab..92b93cd2faa3e271e20db5215a47ed8ed5a69669 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 599cf01bc018b87b48556cd3d5ac8c3602b8f050..c9b2f8ab1f86e4c43cc165abc99be67964877364 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 db2541baabb55c83c1a861ed612873b7e29972c0..a1a0f7de74e96a872a5b8f94c163462264618e0d 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 02ff12c547c0a3fb9934c46ea4dcaf727b9e2a28..f59d9364dc834bf1fba0d5c2279fa4fdc1d4ab14 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 b0c7a3b13fd1acbdb777bdd250466690100c2f3e..f0aff6f925081cb00b3213a6ede55aa231fc0467 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 01df9c71b80e07fb4d19da5f808e7e86f02d0efe..25ce84c490a2f4caf210300763dcd62d2f9ebf02 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 9edda1a0b40273c786156c3bc199355d27ba93f2..1a2497eba190a59991ace136c7cad21d4b9592ad 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 636c25cc41ce689c64d7d16115031e8421b77168..dc774247222582001006ade424c93f44594e3419 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 720486a5cfce1c94fb68445fec3b0b85796cc289..67d1a6d36de69e92ab8005e9fba0a98cfbf58ca5 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 54c54cc2231317c987bc0c50693c26cb2066d95d..b17c7e2441385768e7cef59a849dab64311c029d 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 87ce6df17f25482385e9ce7b86b7b8548626be48..5de1334a09e0c92cd849e96e93e502fd1db361a6 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 6386d578e3015d6d769bfc8b55326e20fe353377..0d191ab17eee6aaf2fb2d708a78c11fe3343e3be 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 9cb77e95bc526dd15ba8f6fede5fb6359da26276..b181afc4b839fb80e1fba8826639b4fa25decfba 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 1f529608b86957c7f020f65f385a20f3bbabf290..f460ef439cb488f030fe04e585a5306fd6a00b2a 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__)