From 310197fcdbe04beb65f71915e527972a7ff542ea Mon Sep 17 00:00:00 2001 From: Min RK Date: Tue, 3 May 2022 11:38:15 +0200 Subject: [PATCH 1/2] switch to isort for import formatting --- .pre-commit-config.yaml | 6 +++--- pyproject.toml | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c385348a8..aaaac5aa0 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,10 +6,10 @@ repos: args: - --py36-plus exclude: setupbase.py - - repo: https://github.com/asottile/reorder_python_imports - rev: v3.0.1 + - repo: https://github.com/pycqa/isort + rev: 5.10.1 hooks: - - id: reorder-python-imports + - id: isort exclude: setupbase.py - repo: https://github.com/psf/black rev: 22.3.0 diff --git a/pyproject.toml b/pyproject.toml index b6c7087e5..5b75fa6c1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,6 +15,9 @@ target_version = [ "py38", ] +[tool.isort] +profile = "black" + [tool.pytest.ini_options] addopts = "-raXs --durations 10 --color=yes" asyncio_mode = "auto" From ea36b8f64e019ecaf00e60cfdb5de0db2dc2bd52 Mon Sep 17 00:00:00 2001 From: Min RK Date: Tue, 3 May 2022 11:40:18 +0200 Subject: [PATCH 2/2] run isort --- benchmarks/benchmarks/throughput.py | 6 +- benchmarks/gcloud_setup.py | 3 +- benchmarks/profiling/profiling_code_runner.py | 4 +- docs/source/examples/customresults.py | 3 +- .../examples/daVinci Word Count/pwordfreq.py | 3 +- .../examples/daVinci Word Count/wordfreq.py | 3 +- docs/source/examples/dagdeps.py | 2 +- docs/source/examples/fetchparse.py | 3 +- docs/source/examples/interengine/bintree.py | 3 +- .../examples/interengine/bintree_script.py | 1 - .../examples/interengine/interengine.py | 1 - docs/source/examples/pi/parallelpi.py | 10 ++-- .../source/examples/wave2D/RectPartitioner.py | 4 +- docs/source/examples/wave2D/wavesolver.py | 5 +- ipyparallel/__init__.py | 1 + ipyparallel/apps/baseapp.py | 11 +--- ipyparallel/apps/iploggerapp.py | 8 ++- ipyparallel/apps/logwatcher.py | 7 +-- ipyparallel/client/_joblib.py | 3 +- ipyparallel/client/asyncresult.py | 24 +++----- ipyparallel/client/client.py | 50 +++++++---------- ipyparallel/client/magics.py | 6 +- ipyparallel/client/map.py | 3 +- ipyparallel/client/remotefunction.py | 2 +- ipyparallel/client/view.py | 27 +++------ ipyparallel/cluster/_winhpcjob.py | 7 +-- ipyparallel/cluster/app.py | 16 +----- ipyparallel/cluster/cluster.py | 42 +++++++------- ipyparallel/cluster/launcher.py | 38 ++++++------- ipyparallel/controller/app.py | 55 +++++++++---------- ipyparallel/controller/broadcast_scheduler.py | 14 ++--- ipyparallel/controller/dictdb.py | 5 +- ipyparallel/controller/heartmonitor.py | 16 +----- ipyparallel/controller/hub.py | 26 +++++---- ipyparallel/controller/mongodb.py | 2 +- ipyparallel/controller/scheduler.py | 11 +--- ipyparallel/controller/sqlitedb.py | 8 +-- ipyparallel/controller/task_scheduler.py | 16 ++---- ipyparallel/engine/app.py | 49 +++++++++-------- ipyparallel/engine/datapub.py | 8 +-- ipyparallel/engine/kernel.py | 9 ++- ipyparallel/engine/nanny.py | 6 +- ipyparallel/nbextension/handlers.py | 1 - ipyparallel/nbextension/install.py | 7 ++- ipyparallel/serialize/__init__.py | 30 +++++----- ipyparallel/serialize/serialize.py | 10 ++-- ipyparallel/tests/__init__.py | 15 ++--- ipyparallel/tests/_test_startup_crash.py | 1 - ipyparallel/tests/clienttest.py | 8 +-- ipyparallel/tests/conftest.py | 10 ++-- ipyparallel/tests/test_apps.py | 11 +--- ipyparallel/tests/test_asyncresult.py | 4 +- ipyparallel/tests/test_canning.py | 3 +- ipyparallel/tests/test_client.py | 11 +--- ipyparallel/tests/test_cluster.py | 3 +- ipyparallel/tests/test_db.py | 3 +- ipyparallel/tests/test_dependency.py | 6 +- ipyparallel/tests/test_executor.py | 4 +- ipyparallel/tests/test_joblib.py | 5 +- ipyparallel/tests/test_lbview.py | 4 +- ipyparallel/tests/test_magics.py | 4 +- ipyparallel/tests/test_remotefunction.py | 1 + ipyparallel/tests/test_serialize.py | 6 +- ipyparallel/tests/test_util.py | 3 +- ipyparallel/tests/test_view.py | 11 +--- ipyparallel/tests/test_view_broadcast.py | 1 - ipyparallel/traitlets.py | 4 +- ipyparallel/util.py | 17 ++---- setup.py | 2 +- 69 files changed, 294 insertions(+), 412 deletions(-) diff --git a/benchmarks/benchmarks/throughput.py b/benchmarks/benchmarks/throughput.py index 7eb95750a..197ce1f6d 100644 --- a/benchmarks/benchmarks/throughput.py +++ b/benchmarks/benchmarks/throughput.py @@ -1,11 +1,13 @@ import os os.environ['OPENBLAS_NUM_THREADS'] = '1' -import ipyparallel as ipp -import timeit import time +import timeit + import numpy as np +import ipyparallel as ipp + delay = [0] engines = [1, 2, 16, 64, 128, 256, 512, 1024] byte_param = [1000, 10_000, 100_000, 1_000_000, 2_000_000] diff --git a/benchmarks/gcloud_setup.py b/benchmarks/gcloud_setup.py index 2a1bdcfd8..99eeff0c8 100755 --- a/benchmarks/gcloud_setup.py +++ b/benchmarks/gcloud_setup.py @@ -2,8 +2,7 @@ import multiprocessing as mp import os import sys -from subprocess import check_call -from subprocess import Popen +from subprocess import Popen, check_call from time import sleep from typing import List diff --git a/benchmarks/profiling/profiling_code_runner.py b/benchmarks/profiling/profiling_code_runner.py index c340145c1..324c272dc 100644 --- a/benchmarks/profiling/profiling_code_runner.py +++ b/benchmarks/profiling/profiling_code_runner.py @@ -2,9 +2,7 @@ import os import sys import time -from subprocess import check_call -from subprocess import check_output -from subprocess import Popen +from subprocess import Popen, check_call, check_output import ipyparallel as ipp diff --git a/docs/source/examples/customresults.py b/docs/source/examples/customresults.py index f24d85824..61b3d5fc1 100644 --- a/docs/source/examples/customresults.py +++ b/docs/source/examples/customresults.py @@ -26,7 +26,8 @@ def sleep_here(count, t): """simple function that takes args, prints a short message, sleeps for a time, and returns the same args""" - import time, sys + import sys + import time print("hi from engine %i" % id) sys.stdout.flush() diff --git a/docs/source/examples/daVinci Word Count/pwordfreq.py b/docs/source/examples/daVinci Word Count/pwordfreq.py index 806a68b3d..b14f6b09e 100644 --- a/docs/source/examples/daVinci Word Count/pwordfreq.py +++ b/docs/source/examples/daVinci Word Count/pwordfreq.py @@ -8,8 +8,7 @@ from itertools import repeat import requests -from wordfreq import print_wordfreq -from wordfreq import wordfreq +from wordfreq import print_wordfreq, wordfreq import ipyparallel as ipp diff --git a/docs/source/examples/daVinci Word Count/wordfreq.py b/docs/source/examples/daVinci Word Count/wordfreq.py index 443c8107e..f2e40c362 100644 --- a/docs/source/examples/daVinci Word Count/wordfreq.py +++ b/docs/source/examples/daVinci Word Count/wordfreq.py @@ -38,9 +38,10 @@ def wordfreq_to_weightsize( def tagcloud(worddict, n=10, minsize=25, maxsize=50, minalpha=0.5, maxalpha=1.0): - from matplotlib import pyplot as plt import random + from matplotlib import pyplot as plt + worddict = wordfreq_to_weightsize(worddict, minsize, maxsize, minalpha, maxalpha) fig = plt.figure() diff --git a/docs/source/examples/dagdeps.py b/docs/source/examples/dagdeps.py index a0f64e081..37245760b 100644 --- a/docs/source/examples/dagdeps.py +++ b/docs/source/examples/dagdeps.py @@ -89,8 +89,8 @@ def main(nodes, edges): point at least slightly to the right if the graph is valid. """ from matplotlib import pyplot as plt - from matplotlib.dates import date2num from matplotlib.cm import gist_rainbow + from matplotlib.dates import date2num print("building DAG") G = random_dag(nodes, edges) diff --git a/docs/source/examples/fetchparse.py b/docs/source/examples/fetchparse.py index 60f8b630b..24e1895fa 100644 --- a/docs/source/examples/fetchparse.py +++ b/docs/source/examples/fetchparse.py @@ -19,9 +19,10 @@ def fetchAndParse(url, data=None): - import requests from urllib.parse import urljoin + import bs4 # noqa + import requests links = [] r = requests.get(url, data=data) diff --git a/docs/source/examples/interengine/bintree.py b/docs/source/examples/interengine/bintree.py index 1870a15d8..c92d1b3e7 100644 --- a/docs/source/examples/interengine/bintree.py +++ b/docs/source/examples/interengine/bintree.py @@ -12,8 +12,7 @@ import zmq -from ipyparallel.serialize import deserialize_object -from ipyparallel.serialize import serialize_object +from ipyparallel.serialize import deserialize_object, serialize_object from ipyparallel.util import disambiguate_url # ---------------------------------------------------------------------------- diff --git a/docs/source/examples/interengine/bintree_script.py b/docs/source/examples/interengine/bintree_script.py index 21ceb5422..0265c413a 100755 --- a/docs/source/examples/interengine/bintree_script.py +++ b/docs/source/examples/interengine/bintree_script.py @@ -18,7 +18,6 @@ """ import ipyparallel as ipp - # connect client and create views rc = ipp.Client() rc.block = True diff --git a/docs/source/examples/interengine/interengine.py b/docs/source/examples/interengine/interengine.py index 82348822a..7acc3a26f 100644 --- a/docs/source/examples/interengine/interengine.py +++ b/docs/source/examples/interengine/interengine.py @@ -1,6 +1,5 @@ import ipyparallel as ipp - rc = ipp.Client() rc.block = True view = rc[:] diff --git a/docs/source/examples/pi/parallelpi.py b/docs/source/examples/pi/parallelpi.py index 17cf3d39b..c849c78ac 100644 --- a/docs/source/examples/pi/parallelpi.py +++ b/docs/source/examples/pi/parallelpi.py @@ -18,10 +18,12 @@ from timeit import default_timer as clock from matplotlib import pyplot as plt -from pidigits import compute_two_digit_freqs -from pidigits import fetch_pi_file -from pidigits import plot_two_digit_freqs -from pidigits import reduce_freqs +from pidigits import ( + compute_two_digit_freqs, + fetch_pi_file, + plot_two_digit_freqs, + reduce_freqs, +) import ipyparallel as ipp diff --git a/docs/source/examples/wave2D/RectPartitioner.py b/docs/source/examples/wave2D/RectPartitioner.py index 8bd1f5cfa..f5531c1de 100755 --- a/docs/source/examples/wave2D/RectPartitioner.py +++ b/docs/source/examples/wave2D/RectPartitioner.py @@ -15,9 +15,7 @@ * Min Ragan-Kelley """ -from numpy import ascontiguousarray -from numpy import frombuffer -from numpy import zeros +from numpy import ascontiguousarray, frombuffer, zeros try: from mpi4py import MPI diff --git a/docs/source/examples/wave2D/wavesolver.py b/docs/source/examples/wave2D/wavesolver.py index ca26a0c50..5f84fc8e1 100755 --- a/docs/source/examples/wave2D/wavesolver.py +++ b/docs/source/examples/wave2D/wavesolver.py @@ -12,10 +12,7 @@ """ import time -from numpy import arange -from numpy import newaxis -from numpy import sqrt -from numpy import zeros +from numpy import arange, newaxis, sqrt, zeros def iseq(start=0, stop=None, inc=1): diff --git a/ipyparallel/__init__.py b/ipyparallel/__init__.py index a028b683c..7678158e4 100644 --- a/ipyparallel/__init__.py +++ b/ipyparallel/__init__.py @@ -35,6 +35,7 @@ def bind_kernel(**kwargs): This function returns immediately. """ from ipykernel.kernelapp import IPKernelApp + from ipyparallel.engine.app import IPEngine # first check for IPKernelApp, in which case this should be a no-op diff --git a/ipyparallel/apps/baseapp.py b/ipyparallel/apps/baseapp.py index a5850c079..b0ddbe702 100644 --- a/ipyparallel/apps/baseapp.py +++ b/ipyparallel/apps/baseapp.py @@ -7,19 +7,14 @@ import sys import traitlets +from IPython.core.application import BaseIPythonApplication from IPython.core.application import base_aliases as base_ip_aliases from IPython.core.application import base_flags as base_ip_flags -from IPython.core.application import BaseIPythonApplication from IPython.utils.path import expand_path from jupyter_client.session import Session from tornado.ioloop import IOLoop -from traitlets import Bool -from traitlets import default -from traitlets import Instance -from traitlets import observe -from traitlets import Unicode -from traitlets.config.application import catch_config_error -from traitlets.config.application import LevelFormatter +from traitlets import Bool, Instance, Unicode, default, observe +from traitlets.config.application import LevelFormatter, catch_config_error from .._version import __version__ diff --git a/ipyparallel/apps/iploggerapp.py b/ipyparallel/apps/iploggerapp.py index 3185944ea..ad642ab5a 100755 --- a/ipyparallel/apps/iploggerapp.py +++ b/ipyparallel/apps/iploggerapp.py @@ -5,9 +5,11 @@ from IPython.core.profiledir import ProfileDir from traitlets import Dict -from ipyparallel.apps.baseapp import base_aliases -from ipyparallel.apps.baseapp import BaseParallelApplication -from ipyparallel.apps.baseapp import catch_config_error +from ipyparallel.apps.baseapp import ( + BaseParallelApplication, + base_aliases, + catch_config_error, +) from ipyparallel.apps.logwatcher import LogWatcher # ----------------------------------------------------------------------------- diff --git a/ipyparallel/apps/logwatcher.py b/ipyparallel/apps/logwatcher.py index 8b79cdc08..7c69c80a7 100644 --- a/ipyparallel/apps/logwatcher.py +++ b/ipyparallel/apps/logwatcher.py @@ -5,12 +5,9 @@ import zmq from jupyter_client.localinterfaces import localhost -from traitlets import Instance -from traitlets import List -from traitlets import Unicode +from traitlets import Instance, List, Unicode from traitlets.config.configurable import LoggingConfigurable -from zmq.eventloop import ioloop -from zmq.eventloop import zmqstream +from zmq.eventloop import ioloop, zmqstream class LogWatcher(LoggingConfigurable): diff --git a/ipyparallel/client/_joblib.py b/ipyparallel/client/_joblib.py index 7098a73b1..ba1a80166 100644 --- a/ipyparallel/client/_joblib.py +++ b/ipyparallel/client/_joblib.py @@ -1,8 +1,7 @@ """joblib parallel backend for IPython Parallel""" # Copyright (c) IPython Development Team. # Distributed under the terms of the Modified BSD License. -from joblib.parallel import AutoBatchingMixin -from joblib.parallel import ParallelBackendBase +from joblib.parallel import AutoBatchingMixin, ParallelBackendBase import ipyparallel as ipp diff --git a/ipyparallel/client/asyncresult.py b/ipyparallel/client/asyncresult.py index c344b069f..d86e55ae2 100644 --- a/ipyparallel/client/asyncresult.py +++ b/ipyparallel/client/asyncresult.py @@ -6,32 +6,22 @@ import threading import time import warnings -from concurrent.futures import ALL_COMPLETED -from concurrent.futures import FIRST_COMPLETED -from concurrent.futures import FIRST_EXCEPTION -from concurrent.futures import Future +from concurrent.futures import ALL_COMPLETED, FIRST_COMPLETED, FIRST_EXCEPTION, Future from contextlib import contextmanager from datetime import datetime -from functools import lru_cache -from functools import partial -from itertools import chain -from itertools import repeat +from functools import lru_cache, partial +from itertools import chain, repeat from threading import Event import zmq from decorator import decorator from IPython import get_ipython -from IPython.display import display -from IPython.display import display_pretty -from IPython.display import publish_display_data +from IPython.display import display, display_pretty, publish_display_data -from .futures import MessageFuture -from .futures import multi_future from ipyparallel import error -from ipyparallel.util import _parse_date -from ipyparallel.util import compare_datetimes -from ipyparallel.util import progress -from ipyparallel.util import utcnow +from ipyparallel.util import _parse_date, compare_datetimes, progress, utcnow + +from .futures import MessageFuture, multi_future def _raw_text(s): diff --git a/ipyparallel/client/client.py b/ipyparallel/client/client.py index b9ef6e61f..14d4887f0 100644 --- a/ipyparallel/client/client.py +++ b/ipyparallel/client/client.py @@ -14,9 +14,7 @@ from functools import partial from getpass import getpass from pprint import pprint -from threading import current_thread -from threading import Event -from threading import Thread +from threading import Event, Thread, current_thread import jupyter_client.session import zmq @@ -24,41 +22,35 @@ from ipykernel.comm import Comm from IPython import get_ipython from IPython.core.application import BaseIPythonApplication -from IPython.core.profiledir import ProfileDir -from IPython.core.profiledir import ProfileDirError +from IPython.core.profiledir import ProfileDir, ProfileDirError from IPython.paths import get_ipython_dir from IPython.utils.capture import RichOutput from IPython.utils.coloransi import TermColors from IPython.utils.path import compress_user -from jupyter_client.localinterfaces import is_local_ip -from jupyter_client.localinterfaces import localhost +from jupyter_client.localinterfaces import is_local_ip, localhost from jupyter_client.session import Session from tornado import ioloop -from traitlets import Any -from traitlets import Bool -from traitlets import Bytes -from traitlets import default -from traitlets import Dict -from traitlets import HasTraits -from traitlets import Instance -from traitlets import List -from traitlets import Set -from traitlets import Unicode +from traitlets import ( + Any, + Bool, + Bytes, + Dict, + HasTraits, + Instance, + List, + Set, + Unicode, + default, +) from traitlets.config.configurable import MultipleInstanceError from zmq.eventloop.zmqstream import ZMQStream -from .asyncresult import AsyncHubResult -from .asyncresult import AsyncResult -from .futures import MessageFuture -from .futures import multi_future -from .view import BroadcastView -from .view import DirectView -from .view import LoadBalancedView -from ipyparallel import error -from ipyparallel import serialize -from ipyparallel import util -from ipyparallel.serialize import PrePickled -from ipyparallel.serialize import Reference +from ipyparallel import error, serialize, util +from ipyparallel.serialize import PrePickled, Reference + +from .asyncresult import AsyncHubResult, AsyncResult +from .futures import MessageFuture, multi_future +from .view import BroadcastView, DirectView, LoadBalancedView pjoin = os.path.join jupyter_client.session.extract_dates = lambda obj: obj diff --git a/ipyparallel/client/magics.py b/ipyparallel/client/magics.py index 43362dac4..f836839b5 100644 --- a/ipyparallel/client/magics.py +++ b/ipyparallel/client/magics.py @@ -28,6 +28,7 @@ import time from contextlib import contextmanager + # Python 3.6 doesn't have nullcontext, so we define our own @contextmanager def nullcontext(): @@ -43,13 +44,14 @@ def nullcontext(): import inspect import re +import sys from textwrap import dedent +from IPython.core import magic_arguments from IPython.core.error import UsageError from IPython.core.magic import Magics -from IPython.core import magic_arguments + from .. import error -import sys # ----------------------------------------------------------------------------- # Definitions of magic functions for use with IPython diff --git a/ipyparallel/client/map.py b/ipyparallel/client/map.py index c405b91c8..f2c7aaec3 100644 --- a/ipyparallel/client/map.py +++ b/ipyparallel/client/map.py @@ -6,8 +6,7 @@ # Copyright (c) IPython Development Team. # Distributed under the terms of the Modified BSD License. import sys -from itertools import chain -from itertools import islice +from itertools import chain, islice numpy = None diff --git a/ipyparallel/client/remotefunction.py b/ipyparallel/client/remotefunction.py index 944257597..87a2c27a1 100644 --- a/ipyparallel/client/remotefunction.py +++ b/ipyparallel/client/remotefunction.py @@ -7,8 +7,8 @@ from decorator import decorator -from . import map as Map from ..serialize import PrePickled +from . import map as Map from .asyncresult import AsyncMapResult # ----------------------------------------------------------------------------- diff --git a/ipyparallel/client/view.py b/ipyparallel/client/view.py index 9de62fc2c..a6a4b6090 100644 --- a/ipyparallel/client/view.py +++ b/ipyparallel/client/view.py @@ -13,28 +13,16 @@ from decorator import decorator from IPython import get_ipython -from traitlets import Any -from traitlets import Bool -from traitlets import CFloat -from traitlets import Dict -from traitlets import HasTraits -from traitlets import Instance -from traitlets import Integer -from traitlets import List -from traitlets import Set +from traitlets import Any, Bool, CFloat, Dict, HasTraits, Instance, Integer, List, Set + +from ipyparallel import util +from ipyparallel.controller.dependency import Dependency, dependent -from . import map as Map from .. import serialize from ..serialize import PrePickled -from .asyncresult import AsyncMapResult -from .asyncresult import AsyncResult -from .remotefunction import getname -from .remotefunction import parallel -from .remotefunction import ParallelFunction -from .remotefunction import remote -from ipyparallel import util -from ipyparallel.controller.dependency import Dependency -from ipyparallel.controller.dependency import dependent +from . import map as Map +from .asyncresult import AsyncMapResult, AsyncResult +from .remotefunction import ParallelFunction, getname, parallel, remote # ----------------------------------------------------------------------------- # Decorators @@ -1563,6 +1551,7 @@ def register_joblib_backend(self, name='ipyparallel', make_default=False): .. versionadded:: 5.1 """ from joblib.parallel import register_parallel_backend + from ._joblib import IPythonParallelBackend register_parallel_backend( diff --git a/ipyparallel/cluster/_winhpcjob.py b/ipyparallel/cluster/_winhpcjob.py index a89e45935..173d5301d 100644 --- a/ipyparallel/cluster/_winhpcjob.py +++ b/ipyparallel/cluster/_winhpcjob.py @@ -7,12 +7,7 @@ import uuid from xml.etree import ElementTree as ET -from traitlets import Bool -from traitlets import Enum -from traitlets import Instance -from traitlets import Integer -from traitlets import List -from traitlets import Unicode +from traitlets import Bool, Enum, Instance, Integer, List, Unicode from traitlets.config.configurable import Configurable # ----------------------------------------------------------------------------- diff --git a/ipyparallel/cluster/app.py b/ipyparallel/cluster/app.py index 2e80c5aa0..e2f2d78a6 100755 --- a/ipyparallel/cluster/app.py +++ b/ipyparallel/cluster/app.py @@ -13,24 +13,14 @@ import entrypoints import zmq from IPython.core.profiledir import ProfileDir -from traitlets import Bool -from traitlets import CaselessStrEnum -from traitlets import default -from traitlets import Dict -from traitlets import Integer -from traitlets import List +from traitlets import Bool, CaselessStrEnum, Dict, Integer, List, default from traitlets.config.application import catch_config_error from ipyparallel._version import __version__ -from ipyparallel.apps.baseapp import base_aliases -from ipyparallel.apps.baseapp import base_flags -from ipyparallel.apps.baseapp import BaseParallelApplication -from ipyparallel.cluster import clean_cluster_files -from ipyparallel.cluster import Cluster -from ipyparallel.cluster import ClusterManager +from ipyparallel.apps.baseapp import BaseParallelApplication, base_aliases, base_flags +from ipyparallel.cluster import Cluster, ClusterManager, clean_cluster_files from ipyparallel.util import abbreviate_profile_dir - # ----------------------------------------------------------------------------- # Module level variables # ----------------------------------------------------------------------------- diff --git a/ipyparallel/cluster/cluster.py b/ipyparallel/cluster/cluster.py index ff8bcc67f..9cc3d680a 100644 --- a/ipyparallel/cluster/cluster.py +++ b/ipyparallel/cluster/cluster.py @@ -21,29 +21,31 @@ from weakref import WeakSet import IPython -from traitlets import Any -from traitlets import Bool -from traitlets import default -from traitlets import Dict -from traitlets import Float -from traitlets import import_item -from traitlets import Instance -from traitlets import Integer -from traitlets import List -from traitlets import Unicode -from traitlets import validate -from traitlets.config import Application -from traitlets.config import Config -from traitlets.config import LoggingConfigurable +from traitlets import ( + Any, + Bool, + Dict, + Float, + Instance, + Integer, + List, + Unicode, + default, + import_item, + validate, +) +from traitlets.config import Application, Config, LoggingConfigurable -from . import launcher from .._async import AsyncFirst from ..traitlets import Launcher -from ..util import _all_profile_dirs -from ..util import _default_profile_dir -from ..util import _locate_profiles -from ..util import _traitlet_signature -from ..util import abbreviate_profile_dir +from ..util import ( + _all_profile_dirs, + _default_profile_dir, + _locate_profiles, + _traitlet_signature, + abbreviate_profile_dir, +) +from . import launcher _suffix_chars = string.ascii_lowercase + string.digits diff --git a/ipyparallel/cluster/launcher.py b/ipyparallel/cluster/launcher.py index f18d83b7f..5a463ee10 100644 --- a/ipyparallel/cluster/launcher.py +++ b/ipyparallel/cluster/launcher.py @@ -16,39 +16,33 @@ import threading import time from concurrent.futures import ThreadPoolExecutor -from functools import lru_cache -from functools import partial +from functools import lru_cache, partial from signal import SIGTERM -from subprocess import check_output -from subprocess import PIPE -from subprocess import Popen -from subprocess import STDOUT +from subprocess import PIPE, STDOUT, Popen, check_output from tempfile import TemporaryDirectory from textwrap import indent import entrypoints import psutil -from IPython.utils.path import ensure_dir_exists -from IPython.utils.path import get_home_dir +from IPython.utils.path import ensure_dir_exists, get_home_dir from IPython.utils.text import EvalFormatter from tornado import ioloop -from traitlets import Any -from traitlets import CRegExp -from traitlets import default -from traitlets import Dict -from traitlets import Float -from traitlets import Instance -from traitlets import Integer -from traitlets import List -from traitlets import observe -from traitlets import Unicode +from traitlets import ( + Any, + CRegExp, + Dict, + Float, + Instance, + Integer, + List, + Unicode, + default, + observe, +) from traitlets.config.configurable import LoggingConfigurable from ..util import shlex_join -from ._winhpcjob import IPControllerJob -from ._winhpcjob import IPControllerTask -from ._winhpcjob import IPEngineSetJob -from ._winhpcjob import IPEngineTask +from ._winhpcjob import IPControllerJob, IPControllerTask, IPEngineSetJob, IPEngineTask WINDOWS = os.name == 'nt' diff --git a/ipyparallel/controller/app.py b/ipyparallel/controller/app.py index bdeec47ca..72ef82505 100755 --- a/ipyparallel/controller/app.py +++ b/ipyparallel/controller/app.py @@ -11,52 +11,51 @@ import sys import time from multiprocessing import Process -from signal import SIGABRT -from signal import SIGINT -from signal import signal -from signal import SIGTERM +from signal import SIGABRT, SIGINT, SIGTERM, signal import zmq from IPython.core.profiledir import ProfileDir from jupyter_client.localinterfaces import localhost -from jupyter_client.session import Session -from jupyter_client.session import session_aliases -from jupyter_client.session import session_flags -from traitlets import Bool -from traitlets import Bytes -from traitlets import default -from traitlets import Dict -from traitlets import import_item -from traitlets import Instance -from traitlets import Integer -from traitlets import List -from traitlets import observe -from traitlets import Tuple -from traitlets import Type -from traitlets import Unicode -from traitlets import Union -from traitlets import validate +from jupyter_client.session import Session, session_aliases, session_flags +from traitlets import ( + Bool, + Bytes, + Dict, + Instance, + Integer, + List, + Tuple, + Type, + Unicode, + Union, + default, + import_item, + observe, + validate, +) from traitlets.config import Config from zmq.devices import ProcessMonitoredQueue from zmq.eventloop.zmqstream import ZMQStream from zmq.log.handlers import PUBHandler -from .broadcast_scheduler import BroadcastScheduler from ipyparallel import util -from ipyparallel.apps.baseapp import base_aliases -from ipyparallel.apps.baseapp import base_flags -from ipyparallel.apps.baseapp import BaseParallelApplication -from ipyparallel.apps.baseapp import catch_config_error +from ipyparallel.apps.baseapp import ( + BaseParallelApplication, + base_aliases, + base_flags, + catch_config_error, +) from ipyparallel.controller.broadcast_scheduler import launch_broadcast_scheduler from ipyparallel.controller.dictdb import DictDB -from ipyparallel.controller.heartmonitor import HeartMonitor -from ipyparallel.controller.heartmonitor import start_heartmonitor +from ipyparallel.controller.heartmonitor import HeartMonitor, start_heartmonitor from ipyparallel.controller.hub import Hub from ipyparallel.controller.scheduler import launch_scheduler from ipyparallel.controller.task_scheduler import TaskScheduler from ipyparallel.traitlets import PortList from ipyparallel.util import disambiguate_url +from .broadcast_scheduler import BroadcastScheduler + # conditional import of SQLiteDB / MongoDB backend class real_dbs = [] diff --git a/ipyparallel/controller/broadcast_scheduler.py b/ipyparallel/controller/broadcast_scheduler.py index 0899da9d3..f29c06cce 100644 --- a/ipyparallel/controller/broadcast_scheduler.py +++ b/ipyparallel/controller/broadcast_scheduler.py @@ -1,16 +1,14 @@ import logging import zmq -from traitlets import Bool -from traitlets import Bytes -from traitlets import Integer -from traitlets import List -from traitlets import Unicode +from traitlets import Bool, Bytes, Integer, List, Unicode from ipyparallel import util -from ipyparallel.controller.scheduler import get_common_scheduler_streams -from ipyparallel.controller.scheduler import Scheduler -from ipyparallel.controller.scheduler import ZMQStream +from ipyparallel.controller.scheduler import ( + Scheduler, + ZMQStream, + get_common_scheduler_streams, +) class BroadcastScheduler(Scheduler): diff --git a/ipyparallel/controller/dictdb.py b/ipyparallel/controller/dictdb.py index f1b041f14..554605f56 100644 --- a/ipyparallel/controller/dictdb.py +++ b/ipyparallel/controller/dictdb.py @@ -38,10 +38,7 @@ from copy import deepcopy from datetime import datetime -from traitlets import Dict -from traitlets import Float -from traitlets import Integer -from traitlets import Unicode +from traitlets import Dict, Float, Integer, Unicode from traitlets.config.configurable import LoggingConfigurable from ..util import ensure_timezone diff --git a/ipyparallel/controller/heartmonitor.py b/ipyparallel/controller/heartmonitor.py index 586cf4679..f3506c5ff 100755 --- a/ipyparallel/controller/heartmonitor.py +++ b/ipyparallel/controller/heartmonitor.py @@ -12,22 +12,12 @@ import zmq from jupyter_client.session import Session from tornado import ioloop -from traitlets import Bool -from traitlets import default -from traitlets import Dict -from traitlets import Float -from traitlets import Instance -from traitlets import Integer -from traitlets import Set +from traitlets import Bool, Dict, Float, Instance, Integer, Set, default from traitlets.config.configurable import LoggingConfigurable -from zmq.devices import ThreadDevice -from zmq.devices import ThreadMonitoredQueue +from zmq.devices import ThreadDevice, ThreadMonitoredQueue from zmq.eventloop.zmqstream import ZMQStream -from ipyparallel.util import bind -from ipyparallel.util import connect -from ipyparallel.util import log_errors -from ipyparallel.util import set_hwm +from ipyparallel.util import bind, connect, log_errors, set_hwm class Heart: diff --git a/ipyparallel/controller/hub.py b/ipyparallel/controller/hub.py index 5dd494d4a..6f5e512b3 100644 --- a/ipyparallel/controller/hub.py +++ b/ipyparallel/controller/hub.py @@ -17,23 +17,25 @@ from jupyter_client.jsonutil import parse_date from jupyter_client.session import Session from tornado import ioloop -from traitlets import Any -from traitlets import Bytes -from traitlets import default -from traitlets import Dict -from traitlets import Float -from traitlets import HasTraits -from traitlets import Instance -from traitlets import Integer -from traitlets import Set -from traitlets import Unicode +from traitlets import ( + Any, + Bytes, + Dict, + Float, + HasTraits, + Instance, + Integer, + Set, + Unicode, + default, +) from traitlets.config import LoggingConfigurable from zmq.eventloop.zmqstream import ZMQStream +from ipyparallel import error, util + from ..util import extract_dates from .heartmonitor import HeartMonitor -from ipyparallel import error -from ipyparallel import util # internal: diff --git a/ipyparallel/controller/mongodb.py b/ipyparallel/controller/mongodb.py index 6ec50e5e7..26f675a26 100644 --- a/ipyparallel/controller/mongodb.py +++ b/ipyparallel/controller/mongodb.py @@ -12,7 +12,7 @@ except ImportError: from bson import Binary -from traitlets import Dict, List, Unicode, Instance +from traitlets import Dict, Instance, List, Unicode from .dictdb import BaseDB diff --git a/ipyparallel/controller/scheduler.py b/ipyparallel/controller/scheduler.py index 99db60f6f..d0eb01e14 100644 --- a/ipyparallel/controller/scheduler.py +++ b/ipyparallel/controller/scheduler.py @@ -13,17 +13,12 @@ import zmq from decorator import decorator from tornado import ioloop -from traitlets import Bytes -from traitlets import default -from traitlets import Instance -from traitlets import Set -from traitlets.config import Config -from traitlets.config import LoggingConfigurable +from traitlets import Bytes, Instance, Set, default +from traitlets.config import Config, LoggingConfigurable from zmq.eventloop import zmqstream from ipyparallel import util -from ipyparallel.util import connect_logger -from ipyparallel.util import local_logger +from ipyparallel.util import connect_logger, local_logger # local imports diff --git a/ipyparallel/controller/sqlitedb.py b/ipyparallel/controller/sqlitedb.py index 0ad870741..406711c45 100644 --- a/ipyparallel/controller/sqlitedb.py +++ b/ipyparallel/controller/sqlitedb.py @@ -8,6 +8,7 @@ import cPickle as pickle except ImportError: import pickle + from datetime import datetime try: @@ -16,13 +17,12 @@ sqlite3 = None from dateutil.parser import parse as dateutil_parse -from tornado import ioloop - -from traitlets import Unicode, Instance, List, Dict from jupyter_client.jsonutil import json_default +from tornado import ioloop +from traitlets import Dict, Instance, List, Unicode -from .dictdb import BaseDB from ..util import ensure_timezone, extract_dates +from .dictdb import BaseDB # ----------------------------------------------------------------------------- # SQLite operators, adapters, and converters diff --git a/ipyparallel/controller/task_scheduler.py b/ipyparallel/controller/task_scheduler.py index d46079dee..396aa80d6 100644 --- a/ipyparallel/controller/task_scheduler.py +++ b/ipyparallel/controller/task_scheduler.py @@ -1,20 +1,12 @@ import time from collections import deque -from random import randint -from random import random +from random import randint, random from types import FunctionType import zmq -from traitlets import Dict -from traitlets import Enum -from traitlets import Instance -from traitlets import Integer -from traitlets import List -from traitlets import observe - -from ipyparallel import Dependency -from ipyparallel import error -from ipyparallel import util +from traitlets import Dict, Enum, Instance, Integer, List, observe + +from ipyparallel import Dependency, error, util from ipyparallel.controller.scheduler import Scheduler try: diff --git a/ipyparallel/engine/app.py b/ipyparallel/engine/app.py index 217ddadeb..3bf66f707 100755 --- a/ipyparallel/engine/app.py +++ b/ipyparallel/engine/app.py @@ -10,8 +10,7 @@ import sys import time from getpass import getpass -from io import FileIO -from io import TextIOWrapper +from io import FileIO, TextIOWrapper from logging import StreamHandler import zmq @@ -19,35 +18,37 @@ from ipykernel.zmqshell import ZMQInteractiveShell from IPython.core.profiledir import ProfileDir from jupyter_client.localinterfaces import localhost -from jupyter_client.session import Session -from jupyter_client.session import session_aliases -from jupyter_client.session import session_flags +from jupyter_client.session import Session, session_aliases, session_flags from tornado import ioloop -from traitlets import Bool -from traitlets import Bytes -from traitlets import default -from traitlets import Dict -from traitlets import Float -from traitlets import Instance -from traitlets import Integer -from traitlets import List -from traitlets import observe -from traitlets import Type -from traitlets import Unicode -from traitlets import validate +from traitlets import ( + Bool, + Bytes, + Dict, + Float, + Instance, + Integer, + List, + Type, + Unicode, + default, + observe, + validate, +) from traitlets.config import Config from zmq.eventloop import zmqstream +from ipyparallel.apps.baseapp import ( + BaseParallelApplication, + base_aliases, + base_flags, + catch_config_error, +) +from ipyparallel.controller.heartmonitor import Heart +from ipyparallel.util import disambiguate_ip_address, disambiguate_url + from .kernel import IPythonParallelKernel as Kernel from .log import EnginePUBHandler from .nanny import start_nanny -from ipyparallel.apps.baseapp import base_aliases -from ipyparallel.apps.baseapp import base_flags -from ipyparallel.apps.baseapp import BaseParallelApplication -from ipyparallel.apps.baseapp import catch_config_error -from ipyparallel.controller.heartmonitor import Heart -from ipyparallel.util import disambiguate_ip_address -from ipyparallel.util import disambiguate_url # ----------------------------------------------------------------------------- # Module level variables diff --git a/ipyparallel/engine/datapub.py b/ipyparallel/engine/datapub.py index 35a391c2a..cb95996d6 100644 --- a/ipyparallel/engine/datapub.py +++ b/ipyparallel/engine/datapub.py @@ -2,12 +2,8 @@ # Copyright (c) IPython Development Team. # Distributed under the terms of the Modified BSD License. from ipykernel.jsonutil import json_clean -from jupyter_client.session import extract_header -from jupyter_client.session import Session -from traitlets import Any -from traitlets import CBytes -from traitlets import Dict -from traitlets import Instance +from jupyter_client.session import Session, extract_header +from traitlets import Any, CBytes, Dict, Instance from traitlets.config import Configurable from ipyparallel.serialize import serialize_object diff --git a/ipyparallel/engine/kernel.py b/ipyparallel/engine/kernel.py index ebb7cb9c5..3de37895e 100644 --- a/ipyparallel/engine/kernel.py +++ b/ipyparallel/engine/kernel.py @@ -6,14 +6,13 @@ import ipykernel from ipykernel.ipkernel import IPythonKernel -from traitlets import Integer -from traitlets import Type +from traitlets import Integer, Type -from .datapub import ZMQDataPublisher -from ipyparallel.serialize import serialize_object -from ipyparallel.serialize import unpack_apply_message +from ipyparallel.serialize import serialize_object, unpack_apply_message from ipyparallel.util import utcnow +from .datapub import ZMQDataPublisher + class IPythonParallelKernel(IPythonKernel): """Extend IPython kernel for parallel computing""" diff --git a/ipyparallel/engine/nanny.py b/ipyparallel/engine/nanny.py index 427ac0d9e..b1fdc053b 100644 --- a/ipyparallel/engine/nanny.py +++ b/ipyparallel/engine/nanny.py @@ -19,8 +19,7 @@ import pickle import signal import sys -from subprocess import PIPE -from subprocess import Popen +from subprocess import PIPE, Popen from threading import Thread import psutil @@ -30,8 +29,7 @@ from traitlets.config import Config from zmq.eventloop.zmqstream import ZMQStream -from ipyparallel import error -from ipyparallel import util +from ipyparallel import error, util from ipyparallel.util import local_logger diff --git a/ipyparallel/nbextension/handlers.py b/ipyparallel/nbextension/handlers.py index ccd390755..692732e81 100644 --- a/ipyparallel/nbextension/handlers.py +++ b/ipyparallel/nbextension/handlers.py @@ -11,7 +11,6 @@ from ..util import abbreviate_profile_dir from .base import get_api_handler - static = os.path.join(os.path.dirname(__file__), 'static') APIHandler = get_api_handler() diff --git a/ipyparallel/nbextension/install.py b/ipyparallel/nbextension/install.py index 3e8b057d7..aaf1ebd7e 100644 --- a/ipyparallel/nbextension/install.py +++ b/ipyparallel/nbextension/install.py @@ -11,16 +11,17 @@ def install_extensions(enable=True, user=False): Toggle with enable=True/False. """ - from ipyparallel.util import _v import notebook + from ipyparallel.util import _v + if _v(notebook.__version__) < _v('4.2'): return _install_extension_nb41(enable) from notebook.nbextensions import ( - install_nbextension_python, - enable_nbextension, disable_nbextension, + enable_nbextension, + install_nbextension_python, ) from notebook.serverextensions import toggle_serverextension_python diff --git a/ipyparallel/serialize/__init__.py b/ipyparallel/serialize/__init__.py index d1c9e5491..fb500066b 100644 --- a/ipyparallel/serialize/__init__.py +++ b/ipyparallel/serialize/__init__.py @@ -1,16 +1,20 @@ -from .canning import can -from .canning import can_map -from .canning import Reference -from .canning import uncan -from .canning import uncan_map -from .canning import use_cloudpickle -from .canning import use_dill -from .canning import use_pickle -from .serialize import deserialize_object -from .serialize import pack_apply_message -from .serialize import PrePickled -from .serialize import serialize_object -from .serialize import unpack_apply_message +from .canning import ( + Reference, + can, + can_map, + uncan, + uncan_map, + use_cloudpickle, + use_dill, + use_pickle, +) +from .serialize import ( + PrePickled, + deserialize_object, + pack_apply_message, + serialize_object, + unpack_apply_message, +) __all__ = ( 'Reference', diff --git a/ipyparallel/serialize/serialize.py b/ipyparallel/serialize/serialize.py index 297311c6e..0db1fa4d8 100644 --- a/ipyparallel/serialize/serialize.py +++ b/ipyparallel/serialize/serialize.py @@ -18,17 +18,17 @@ from itertools import chain +from jupyter_client.session import MAX_BYTES, MAX_ITEMS + from .canning import ( + CannedObject, can, - uncan, can_sequence, - uncan_sequence, - CannedObject, istype, sequence_types, + uncan, + uncan_sequence, ) -from jupyter_client.session import MAX_ITEMS, MAX_BYTES - # ----------------------------------------------------------------------------- # Serialization Functions diff --git a/ipyparallel/tests/__init__.py b/ipyparallel/tests/__init__.py index 35ac2baaf..dfb968c16 100644 --- a/ipyparallel/tests/__init__.py +++ b/ipyparallel/tests/__init__.py @@ -6,13 +6,14 @@ from IPython.paths import get_ipython_dir -from ipyparallel import Client -from ipyparallel import error -from ipyparallel.cluster.launcher import ipcontroller_cmd_argv -from ipyparallel.cluster.launcher import ipengine_cmd_argv -from ipyparallel.cluster.launcher import LocalProcessLauncher -from ipyparallel.cluster.launcher import ProcessStateError -from ipyparallel.cluster.launcher import SIGKILL +from ipyparallel import Client, error +from ipyparallel.cluster.launcher import ( + SIGKILL, + LocalProcessLauncher, + ProcessStateError, + ipcontroller_cmd_argv, + ipengine_cmd_argv, +) # Copyright (c) IPython Development Team. # Distributed under the terms of the Modified BSD License. diff --git a/ipyparallel/tests/_test_startup_crash.py b/ipyparallel/tests/_test_startup_crash.py index cd89aa7aa..019c6c1ae 100644 --- a/ipyparallel/tests/_test_startup_crash.py +++ b/ipyparallel/tests/_test_startup_crash.py @@ -1,6 +1,5 @@ import os import time - time.sleep(int(os.environ.get("CRASH_DELAY") or "1")) os._exit(1) diff --git a/ipyparallel/tests/clienttest.py b/ipyparallel/tests/clienttest.py index 70b02fb83..fc708074a 100644 --- a/ipyparallel/tests/clienttest.py +++ b/ipyparallel/tests/clienttest.py @@ -11,10 +11,8 @@ from decorator import decorator from zmq.tests import BaseZMQTestCase -from ipyparallel import Client -from ipyparallel import error -from ipyparallel.tests import add_engines -from ipyparallel.tests import launchers +from ipyparallel import Client, error +from ipyparallel.tests import add_engines, launchers # simple tasks for use in apply tests @@ -57,7 +55,7 @@ def generate_output(): a rich displayable object. """ - from IPython.core.display import display, HTML, Math + from IPython.core.display import HTML, Math, display print("stdout") print("stderr", file=sys.stderr) diff --git a/ipyparallel/tests/conftest.py b/ipyparallel/tests/conftest.py index a5be9ab11..319e67545 100644 --- a/ipyparallel/tests/conftest.py +++ b/ipyparallel/tests/conftest.py @@ -5,10 +5,8 @@ import sys from contextlib import contextmanager from pathlib import Path -from subprocess import check_call -from subprocess import check_output -from tempfile import NamedTemporaryFile -from tempfile import TemporaryDirectory +from subprocess import check_call, check_output +from tempfile import NamedTemporaryFile, TemporaryDirectory from unittest import mock import IPython.paths @@ -19,8 +17,8 @@ from traitlets.config import Config import ipyparallel as ipp -from . import setup -from . import teardown + +from . import setup, teardown def default_config(): diff --git a/ipyparallel/tests/test_apps.py b/ipyparallel/tests/test_apps.py index 80d3029b6..6e4074f32 100644 --- a/ipyparallel/tests/test_apps.py +++ b/ipyparallel/tests/test_apps.py @@ -5,17 +5,12 @@ import sys import time import types -from subprocess import check_call -from subprocess import check_output -from subprocess import Popen -from unittest.mock import create_autospec -from unittest.mock import MagicMock -from unittest.mock import patch +from subprocess import Popen, check_call, check_output +from unittest.mock import MagicMock, create_autospec, patch import pytest import zmq -from ipykernel import iostream -from ipykernel import kernelapp +from ipykernel import iostream, kernelapp from ipykernel.ipkernel import IPythonKernel from IPython.core.profiledir import ProfileDir from tornado import ioloop diff --git a/ipyparallel/tests/test_asyncresult.py b/ipyparallel/tests/test_asyncresult.py index 6eb5658f4..93b419af0 100644 --- a/ipyparallel/tests/test_asyncresult.py +++ b/ipyparallel/tests/test_asyncresult.py @@ -9,10 +9,10 @@ from IPython.utils.io import capture_output import ipyparallel as ipp -from .clienttest import ClusterTestCase -from .clienttest import raises_remote from ipyparallel import error +from .clienttest import ClusterTestCase, raises_remote + def wait(n): import time diff --git a/ipyparallel/tests/test_canning.py b/ipyparallel/tests/test_canning.py index c4537758c..64f143459 100644 --- a/ipyparallel/tests/test_canning.py +++ b/ipyparallel/tests/test_canning.py @@ -4,8 +4,7 @@ from functools import partial from ipyparallel.serialize import canning -from ipyparallel.serialize.canning import can -from ipyparallel.serialize.canning import uncan +from ipyparallel.serialize.canning import can, uncan def interactive(f): diff --git a/ipyparallel/tests/test_client.py b/ipyparallel/tests/test_client.py index fd4bd30e5..df8cb79ee 100644 --- a/ipyparallel/tests/test_client.py +++ b/ipyparallel/tests/test_client.py @@ -16,17 +16,12 @@ import tornado from IPython import get_ipython -from .clienttest import ClusterTestCase -from .clienttest import raises_remote -from .clienttest import skip_without -from .clienttest import wait -from ipyparallel import AsyncHubResult -from ipyparallel import DirectView -from ipyparallel import error -from ipyparallel import Reference +from ipyparallel import AsyncHubResult, DirectView, Reference, error from ipyparallel.client import client as clientmod from ipyparallel.util import utc +from .clienttest import ClusterTestCase, raises_remote, skip_without, wait + @pytest.mark.usefixtures('ipython') class TestClient(ClusterTestCase): diff --git a/ipyparallel/tests/test_cluster.py b/ipyparallel/tests/test_cluster.py index f513638fc..43163f1df 100644 --- a/ipyparallel/tests/test_cluster.py +++ b/ipyparallel/tests/test_cluster.py @@ -13,10 +13,11 @@ from traitlets.config import Config import ipyparallel as ipp -from .clienttest import raises_remote from ipyparallel import cluster from ipyparallel.cluster.launcher import find_launcher_class +from .clienttest import raises_remote + _timeout = 30 diff --git a/ipyparallel/tests/test_db.py b/ipyparallel/tests/test_db.py index 8d40a35d3..ee8b0b73f 100644 --- a/ipyparallel/tests/test_db.py +++ b/ipyparallel/tests/test_db.py @@ -5,8 +5,7 @@ import os import tempfile import time -from datetime import datetime -from datetime import timedelta +from datetime import datetime, timedelta from unittest import TestCase from jupyter_client.session import Session diff --git a/ipyparallel/tests/test_dependency.py b/ipyparallel/tests/test_dependency.py index 32704c18c..d1a132fa8 100644 --- a/ipyparallel/tests/test_dependency.py +++ b/ipyparallel/tests/test_dependency.py @@ -2,11 +2,11 @@ # Copyright (c) IPython Development Team. # Distributed under the terms of the Modified BSD License. import ipyparallel as ipp -from .clienttest import ClusterTestCase -from ipyparallel.serialize import can -from ipyparallel.serialize import uncan +from ipyparallel.serialize import can, uncan from ipyparallel.util import interactive +from .clienttest import ClusterTestCase + @ipp.require('time') def wait(n): diff --git a/ipyparallel/tests/test_executor.py b/ipyparallel/tests/test_executor.py index 8110904da..81c16a32d 100644 --- a/ipyparallel/tests/test_executor.py +++ b/ipyparallel/tests/test_executor.py @@ -5,9 +5,9 @@ from tornado.ioloop import IOLoop +from ipyparallel.client.view import LazyMapIterator, LoadBalancedView + from .clienttest import ClusterTestCase -from ipyparallel.client.view import LazyMapIterator -from ipyparallel.client.view import LoadBalancedView def wait(n): diff --git a/ipyparallel/tests/test_joblib.py b/ipyparallel/tests/test_joblib.py index 318cf8a97..d602dc3ff 100644 --- a/ipyparallel/tests/test_joblib.py +++ b/ipyparallel/tests/test_joblib.py @@ -4,13 +4,14 @@ import pytest import ipyparallel as ipp -from .clienttest import add_engines -from .clienttest import ClusterTestCase + +from .clienttest import ClusterTestCase, add_engines try: with warnings.catch_warnings(): warnings.simplefilter("ignore") from joblib import Parallel, delayed + from ipyparallel.client._joblib import IPythonParallelBackend # noqa except (ImportError, TypeError): have_joblib = False diff --git a/ipyparallel/tests/test_lbview.py b/ipyparallel/tests/test_lbview.py index 0c171a33d..3df7e1eba 100644 --- a/ipyparallel/tests/test_lbview.py +++ b/ipyparallel/tests/test_lbview.py @@ -3,10 +3,10 @@ from itertools import count import ipyparallel as ipp -from .clienttest import ClusterTestCase -from .clienttest import crash from ipyparallel import error +from .clienttest import ClusterTestCase, crash + class TestLoadBalancedView(ClusterTestCase): def setUp(self): diff --git a/ipyparallel/tests/test_magics.py b/ipyparallel/tests/test_magics.py index b88a4bd1b..9e8af95fe 100644 --- a/ipyparallel/tests/test_magics.py +++ b/ipyparallel/tests/test_magics.py @@ -9,10 +9,10 @@ from IPython.utils.io import capture_output import ipyparallel as ipp -from .clienttest import ClusterTestCase -from .clienttest import generate_output from ipyparallel import AsyncResult +from .clienttest import ClusterTestCase, generate_output + @pytest.mark.usefixtures('ipython_interactive') class TestParallelMagics(ClusterTestCase): diff --git a/ipyparallel/tests/test_remotefunction.py b/ipyparallel/tests/test_remotefunction.py index de00a3aa3..7a6af40a6 100644 --- a/ipyparallel/tests/test_remotefunction.py +++ b/ipyparallel/tests/test_remotefunction.py @@ -2,6 +2,7 @@ # Copyright (c) IPython Development Team. # Distributed under the terms of the Modified BSD License. import ipyparallel as ipp + from .clienttest import ClusterTestCase diff --git a/ipyparallel/tests/test_serialize.py b/ipyparallel/tests/test_serialize.py index 74e43dc28..74a81e4b9 100644 --- a/ipyparallel/tests/test_serialize.py +++ b/ipyparallel/tests/test_serialize.py @@ -7,10 +7,8 @@ import pytest from ipyparallel import interactive -from ipyparallel.serialize import deserialize_object -from ipyparallel.serialize import serialize_object -from ipyparallel.serialize.canning import CannedArray -from ipyparallel.serialize.canning import CannedClass +from ipyparallel.serialize import deserialize_object, serialize_object +from ipyparallel.serialize.canning import CannedArray, CannedClass # ------------------------------------------------------------------------------- # Globals and Utilities diff --git a/ipyparallel/tests/test_util.py b/ipyparallel/tests/test_util.py index b62c36634..f4e0c9537 100644 --- a/ipyparallel/tests/test_util.py +++ b/ipyparallel/tests/test_util.py @@ -1,8 +1,7 @@ import socket from unittest import mock -from jupyter_client.localinterfaces import localhost -from jupyter_client.localinterfaces import public_ips +from jupyter_client.localinterfaces import localhost, public_ips from ipyparallel import util diff --git a/ipyparallel/tests/test_view.py b/ipyparallel/tests/test_view.py index 6bc2f2a6b..5b5ca41d5 100644 --- a/ipyparallel/tests/test_view.py +++ b/ipyparallel/tests/test_view.py @@ -14,16 +14,11 @@ from IPython.utils.io import capture_output import ipyparallel as ipp -from .clienttest import ClusterTestCase -from .clienttest import conditional_crash -from .clienttest import skip_without -from .clienttest import wait -from ipyparallel import AsyncHubResult -from ipyparallel import AsyncMapResult -from ipyparallel import AsyncResult -from ipyparallel import error +from ipyparallel import AsyncHubResult, AsyncMapResult, AsyncResult, error from ipyparallel.util import interactive +from .clienttest import ClusterTestCase, conditional_crash, skip_without, wait + point = namedtuple("point", "x y") diff --git a/ipyparallel/tests/test_view_broadcast.py b/ipyparallel/tests/test_view_broadcast.py index 5c6870eb1..0ea5c0ec8 100644 --- a/ipyparallel/tests/test_view_broadcast.py +++ b/ipyparallel/tests/test_view_broadcast.py @@ -3,7 +3,6 @@ from . import test_view - needs_map = pytest.mark.xfail(reason="map not yet implemented") diff --git a/ipyparallel/traitlets.py b/ipyparallel/traitlets.py index b016bd445..99a6ecb2c 100644 --- a/ipyparallel/traitlets.py +++ b/ipyparallel/traitlets.py @@ -1,8 +1,6 @@ """Custom ipyparallel trait types""" import entrypoints -from traitlets import List -from traitlets import TraitError -from traitlets import Type +from traitlets import List, TraitError, Type class Launcher(Type): diff --git a/ipyparallel/util.py b/ipyparallel/util.py index 2ba4bde53..130d8cef3 100644 --- a/ipyparallel/util.py +++ b/ipyparallel/util.py @@ -11,13 +11,9 @@ import socket import sys import warnings -from datetime import datetime -from datetime import timezone +from datetime import datetime, timezone from functools import lru_cache -from signal import SIGABRT -from signal import SIGINT -from signal import signal -from signal import SIGTERM +from signal import SIGABRT, SIGINT, SIGTERM, signal from types import FunctionType import traitlets @@ -25,12 +21,9 @@ from dateutil.parser import parse as dateutil_parse from dateutil.tz import tzlocal from IPython import get_ipython -from IPython.core.profiledir import ProfileDir -from IPython.core.profiledir import ProfileDirError +from IPython.core.profiledir import ProfileDir, ProfileDirError from IPython.paths import get_ipython_dir -from jupyter_client.localinterfaces import is_public_ip -from jupyter_client.localinterfaces import localhost -from jupyter_client.localinterfaces import public_ips +from jupyter_client.localinterfaces import is_public_ip, localhost, public_ips from tornado.ioloop import IOLoop from traitlets.log import get_logger from zmq.log import handlers @@ -489,7 +482,7 @@ def become_dask_worker(address, nanny=False, **kwargs): if getattr(kernel, 'dask_worker', None) is not None: kernel.log.info("Dask worker is already running.") return - from distributed import Worker, Nanny + from distributed import Nanny, Worker if nanny: w = Nanny(address, **kwargs) diff --git a/setup.py b/setup.py index 23dbefc1f..8c730b9d8 100644 --- a/setup.py +++ b/setup.py @@ -60,7 +60,7 @@ def run(self): # import setupbase from jupyter_packaging (0.10.4) if '' not in sys.path: sys.path.insert(0, '') -from setupbase import wrap_installers, npm_builder, get_data_files +from setupbase import get_data_files, npm_builder, wrap_installers builder = npm_builder(build_cmd="build:prod", npm="jlpm")