From 176c745c97f008b404f2b7d42788ee865b1ec6d8 Mon Sep 17 00:00:00 2001 From: Bas Nijholt Date: Tue, 7 May 2019 14:42:40 -0700 Subject: [PATCH] fix import order and style --- adaptive/__init__.py | 23 +++++++------------ adaptive/_version.py | 12 +++++----- adaptive/learner/__init__.py | 6 ++--- adaptive/learner/balancing_learner.py | 4 ++-- adaptive/learner/base_learner.py | 2 +- adaptive/learner/data_saver.py | 2 +- adaptive/learner/integrator_coeffs.py | 3 ++- adaptive/learner/integrator_learner.py | 15 ++++++------ adaptive/learner/learner1D.py | 4 ++-- adaptive/learner/learner2D.py | 3 +-- adaptive/learner/learnerND.py | 18 +++++++-------- adaptive/learner/skopt_learner.py | 2 +- adaptive/learner/triangulation.py | 16 ++++++------- adaptive/notebook_integration.py | 3 +-- adaptive/runner.py | 4 ++-- adaptive/tests/algorithm_4.py | 6 ++--- adaptive/tests/test_balancing_learner.py | 2 +- adaptive/tests/test_cquad.py | 11 +++++---- adaptive/tests/test_learner1d.py | 5 ++-- adaptive/tests/test_learnernd.py | 2 +- adaptive/tests/test_learners.py | 4 ++-- adaptive/tests/test_runner.py | 4 ++-- adaptive/tests/test_skopt_learner.py | 1 - adaptive/tests/test_triangulation.py | 10 +++----- adaptive/tests/unit/test_learnernd.py | 8 ++++--- .../tests/unit/test_learnernd_integration.py | 9 +++++--- adaptive/utils.py | 4 ++-- benchmarks/benchmarks/__init__.py | 1 - benchmarks/benchmarks/benchmarks.py | 4 ++-- setup.py | 2 +- 30 files changed, 91 insertions(+), 99 deletions(-) diff --git a/adaptive/__init__.py b/adaptive/__init__.py index 43774e46a..320c6bc31 100644 --- a/adaptive/__init__.py +++ b/adaptive/__init__.py @@ -2,26 +2,19 @@ from contextlib import suppress -from adaptive.notebook_integration import (notebook_extension, live_plot, - active_plotting_tasks) - -from adaptive import learner -from adaptive import runner -from adaptive import utils - -from adaptive.learner import ( - BaseLearner, Learner1D, Learner2D, LearnerND, - AverageLearner, BalancingLearner, make_datasaver, - DataSaver, IntegratorLearner -) +from adaptive import learner, runner, utils +from adaptive._version import __version__ +from adaptive.learner import (AverageLearner, BalancingLearner, BaseLearner, + DataSaver, IntegratorLearner, Learner1D, + Learner2D, LearnerND, make_datasaver) +from adaptive.notebook_integration import (active_plotting_tasks, live_plot, + notebook_extension) +from adaptive.runner import AsyncRunner, BlockingRunner, Runner with suppress(ImportError): # Only available if 'scikit-optimize' is installed from adaptive.learner import SKOptLearner -from adaptive.runner import Runner, AsyncRunner, BlockingRunner -from adaptive._version import __version__ del _version - del notebook_integration # to avoid confusion with `notebook_extension` diff --git a/adaptive/_version.py b/adaptive/_version.py index 02bb5b1d4..63156a31c 100644 --- a/adaptive/_version.py +++ b/adaptive/_version.py @@ -1,11 +1,11 @@ # -*- coding: utf-8 -*- # This file is part of 'miniver': https://github.com/jbweston/miniver # -from collections import namedtuple import os import subprocess - +from collections import namedtuple from distutils.command.build_py import build_py as build_py_orig + from setuptools.command.sdist import sdist as sdist_orig Version = namedtuple('Version', ('release', 'dev', 'labels')) @@ -53,7 +53,7 @@ def pep440_format(version_info): if release.endswith('-dev') or release.endswith('.dev'): version_parts.append(dev) else: # prefer PEP440 over strict adhesion to semver - version_parts.append('.dev{}'.format(dev)) + version_parts.append(f'.dev{dev}') if labels: version_parts.append('+') @@ -146,13 +146,13 @@ def get_version_from_git_archive(version_info): return None VTAG = 'tag: v' - refs = set(r.strip() for r in refnames.split(",")) - version_tags = set(r[len(VTAG):] for r in refs if r.startswith(VTAG)) + refs = {r.strip() for r in refnames.split(",")} + version_tags = {r[len(VTAG):] for r in refs if r.startswith(VTAG)} if version_tags: release, *_ = sorted(version_tags) # prefer e.g. "2.0" over "2.0rc1" return Version(release, dev=None, labels=None) else: - return Version('unknown', dev=None, labels=['g{}'.format(git_hash)]) + return Version('unknown', dev=None, labels=[f'g{git_hash}']) __version__ = get_version() diff --git a/adaptive/learner/__init__.py b/adaptive/learner/__init__.py index c2eb0acbc..c251fe935 100644 --- a/adaptive/learner/__init__.py +++ b/adaptive/learner/__init__.py @@ -3,13 +3,13 @@ from contextlib import suppress from adaptive.learner.average_learner import AverageLearner -from adaptive.learner.base_learner import BaseLearner from adaptive.learner.balancing_learner import BalancingLearner +from adaptive.learner.base_learner import BaseLearner +from adaptive.learner.data_saver import DataSaver, make_datasaver +from adaptive.learner.integrator_learner import IntegratorLearner from adaptive.learner.learner1D import Learner1D from adaptive.learner.learner2D import Learner2D from adaptive.learner.learnerND import LearnerND -from adaptive.learner.integrator_learner import IntegratorLearner -from adaptive.learner.data_saver import DataSaver, make_datasaver with suppress(ImportError): # Only available if 'scikit-optimize' is installed diff --git a/adaptive/learner/balancing_learner.py b/adaptive/learner/balancing_learner.py index 0d696ba9d..df20f4edd 100644 --- a/adaptive/learner/balancing_learner.py +++ b/adaptive/learner/balancing_learner.py @@ -1,11 +1,11 @@ # -*- coding: utf-8 -*- +import os.path from collections import defaultdict from collections.abc import Iterable from contextlib import suppress from functools import partial from operator import itemgetter -import os.path import numpy as np @@ -82,7 +82,7 @@ def __init__(self, learners, *, cdims=None, strategy='loss_improvements'): self._pending_loss = {} self._cdims_default = cdims - if len(set(learner.__class__ for learner in self.learners)) > 1: + if len({learner.__class__ for learner in self.learners}) > 1: raise TypeError('A BalacingLearner can handle only one type' ' of learners.') diff --git a/adaptive/learner/base_learner.py b/adaptive/learner/base_learner.py index e278697da..e9df247ea 100644 --- a/adaptive/learner/base_learner.py +++ b/adaptive/learner/base_learner.py @@ -4,7 +4,7 @@ from contextlib import suppress from copy import deepcopy -from adaptive.utils import save, load +from adaptive.utils import load, save def uses_nth_neighbors(n): diff --git a/adaptive/learner/data_saver.py b/adaptive/learner/data_saver.py index 6b9ae6343..b35fd3c8d 100644 --- a/adaptive/learner/data_saver.py +++ b/adaptive/learner/data_saver.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from collections import OrderedDict import functools +from collections import OrderedDict from adaptive.learner.base_learner import BaseLearner from adaptive.utils import copy_docstring_from diff --git a/adaptive/learner/integrator_coeffs.py b/adaptive/learner/integrator_coeffs.py index 7521ca45f..cc3ee201d 100644 --- a/adaptive/learner/integrator_coeffs.py +++ b/adaptive/learner/integrator_coeffs.py @@ -1,8 +1,9 @@ # -*- coding: utf-8 -*- # Based on an adaptive quadrature algorithm by Pedro Gonnet -from fractions import Fraction from collections import defaultdict +from fractions import Fraction + import numpy as np import scipy.linalg diff --git a/adaptive/learner/integrator_learner.py b/adaptive/learner/integrator_learner.py index e3fbc5917..ed1325cda 100644 --- a/adaptive/learner/integrator_learner.py +++ b/adaptive/learner/integrator_learner.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- # Based on an adaptive quadrature algorithm by Pedro Gonnet +import sys from collections import defaultdict from math import sqrt from operator import attrgetter -import sys import numpy as np from scipy.linalg import norm @@ -14,9 +14,8 @@ from adaptive.notebook_integration import ensure_holoviews from adaptive.utils import cache_latest, restore -from .integrator_coeffs import (b_def, T_left, T_right, ns, hint, - ndiv_max, min_sep, eps, xi, V_inv, - Vcond, alpha, gamma) +from .integrator_coeffs import (T_left, T_right, V_inv, Vcond, alpha, b_def, + eps, gamma, hint, min_sep, ndiv_max, ns, xi) def _downdate(c, nans, depth): @@ -298,10 +297,10 @@ def complete_process(self, depth): def __repr__(self): lst = [ - '(a, b)=({:.5f}, {:.5f})'.format(self.a, self.b), - 'depth={}'.format(self.depth), - 'rdepth={}'.format(self.rdepth), - 'err={:.5E}'.format(self.err), + f'(a, b)=({self.a:.5f}, {self.b:.5f})', + f'depth={self.depth}', + f'rdepth={self.rdepth}', + f'err={self.err:.5E}', 'igral={:.5E}'.format(self.igral if hasattr(self, 'igral') else np.inf), ] return ' '.join(lst) diff --git a/adaptive/learner/learner1D.py b/adaptive/learner/learner1D.py index 6c694d714..872e975b1 100644 --- a/adaptive/learner/learner1D.py +++ b/adaptive/learner/learner1D.py @@ -1,14 +1,14 @@ # -*- coding: utf-8 -*- -from copy import deepcopy import heapq import itertools import math from collections.abc import Iterable +from copy import deepcopy import numpy as np -import sortedcontainers import sortedcollections +import sortedcontainers from adaptive.learner.base_learner import BaseLearner, uses_nth_neighbors from adaptive.learner.learnerND import volume diff --git a/adaptive/learner/learner2D.py b/adaptive/learner/learner2D.py index 804baf7c3..2dd4a59ec 100644 --- a/adaptive/learner/learner2D.py +++ b/adaptive/learner/learner2D.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- +import itertools from collections import OrderedDict from copy import copy -import itertools from math import sqrt import numpy as np @@ -12,7 +12,6 @@ from adaptive.notebook_integration import ensure_holoviews from adaptive.utils import cache_latest - # Learner2D and helper functions. def deviations(ip): diff --git a/adaptive/learner/learnerND.py b/adaptive/learner/learnerND.py index b327dbc4f..bb7142931 100644 --- a/adaptive/learner/learnerND.py +++ b/adaptive/learner/learnerND.py @@ -1,23 +1,23 @@ # -*- coding: utf-8 -*- -from collections import OrderedDict -from collections.abc import Iterable import functools import heapq import itertools import random +from collections import OrderedDict +from collections.abc import Iterable import numpy as np -from scipy import interpolate import scipy.spatial +from scipy import interpolate from sortedcontainers import SortedKeyList from adaptive.learner.base_learner import BaseLearner, uses_nth_neighbors +from adaptive.learner.triangulation import (Triangulation, circumsphere, + fast_det, point_in_simplex, + simplex_volume_in_embedding) from adaptive.notebook_integration import ensure_holoviews, ensure_plotly -from adaptive.learner.triangulation import ( - Triangulation, point_in_simplex, circumsphere, - simplex_volume_in_embedding, fast_det) -from adaptive.utils import restore, cache_latest +from adaptive.utils import cache_latest, restore def to_list(inp): @@ -573,8 +573,8 @@ def _update_losses(self, to_delete: set, to_add: set): if subtri is not None: pending_points_unbound.update(subtri.vertices) - pending_points_unbound = set(p for p in pending_points_unbound - if p not in self.data) + pending_points_unbound = {p for p in pending_points_unbound + if p not in self.data} for simplex in to_add: loss = self._compute_loss(simplex) self._losses[simplex] = loss diff --git a/adaptive/learner/skopt_learner.py b/adaptive/learner/skopt_learner.py index 8f3152dc8..6afb507f8 100644 --- a/adaptive/learner/skopt_learner.py +++ b/adaptive/learner/skopt_learner.py @@ -1,11 +1,11 @@ # -*- coding: utf-8 -*- import numpy as np -from skopt import Optimizer from adaptive.learner.base_learner import BaseLearner from adaptive.notebook_integration import ensure_holoviews from adaptive.utils import cache_latest +from skopt import Optimizer class SKOptLearner(Optimizer, BaseLearner): diff --git a/adaptive/learner/triangulation.py b/adaptive/learner/triangulation.py index 69b76dc4c..ba86dd43c 100644 --- a/adaptive/learner/triangulation.py +++ b/adaptive/learner/triangulation.py @@ -1,11 +1,11 @@ +import math from collections import Counter -from collections.abc import Sized, Iterable -from itertools import combinations, chain +from collections.abc import Iterable, Sized +from itertools import chain, combinations +from math import factorial import numpy as np -import math import scipy.spatial -from math import factorial def fast_norm(v): @@ -624,8 +624,8 @@ def get_neighbors_from_vertices(self, simplex): def get_face_sharing_neighbors(self, neighbors, simplex): """Keep only the simplices sharing a whole face with simplex.""" - return set(simpl for simpl in neighbors - if len(set(simpl) & set(simplex)) == self.dim) # they share a face + return {simpl for simpl in neighbors + if len(set(simpl) & set(simplex)) == self.dim} # they share a face def get_simplices_attached_to_points(self, indices): # Get all simplices that share at least a point with the simplex @@ -667,8 +667,8 @@ def hull(self): raise RuntimeError("Broken triangulation, a (N-1)-dimensional" " appears in more than 2 simplices.") - hull = set(point for face, count in counts.items() if count == 1 - for point in face) + hull = {point for face, count in counts.items() if count == 1 + for point in face} return hull def convex_invariant(self, vertex): diff --git a/adaptive/notebook_integration.py b/adaptive/notebook_integration.py index 19de012c2..3a4c91552 100644 --- a/adaptive/notebook_integration.py +++ b/adaptive/notebook_integration.py @@ -1,12 +1,11 @@ # -*- coding: utf-8 -*- import asyncio -from contextlib import suppress import datetime import importlib import random import warnings - +from contextlib import suppress _async_enabled = False _holoviews_enabled = False diff --git a/adaptive/runner.py b/adaptive/runner.py index 82d6c03b1..c27554799 100644 --- a/adaptive/runner.py +++ b/adaptive/runner.py @@ -3,7 +3,6 @@ import abc import asyncio import concurrent.futures as concurrent -from contextlib import suppress import functools import inspect import os @@ -11,8 +10,9 @@ import time import traceback import warnings +from contextlib import suppress -from adaptive.notebook_integration import live_plot, live_info, in_ipynb +from adaptive.notebook_integration import in_ipynb, live_info, live_plot try: import ipyparallel diff --git a/adaptive/tests/algorithm_4.py b/adaptive/tests/algorithm_4.py index 0dca88cef..e755f21b2 100644 --- a/adaptive/tests/algorithm_4.py +++ b/adaptive/tests/algorithm_4.py @@ -2,12 +2,12 @@ # Copyright 2017 Christoph Groth import warnings -from fractions import Fraction as Frac from collections import defaultdict +from fractions import Fraction as Frac + import numpy as np from numpy.testing import assert_allclose -from scipy.linalg import norm, inv - +from scipy.linalg import inv, norm eps = np.spacing(1) diff --git a/adaptive/tests/test_balancing_learner.py b/adaptive/tests/test_balancing_learner.py index 2354f634b..147d8117b 100644 --- a/adaptive/tests/test_balancing_learner.py +++ b/adaptive/tests/test_balancing_learner.py @@ -2,7 +2,7 @@ import pytest -from adaptive.learner import Learner1D, BalancingLearner +from adaptive.learner import BalancingLearner, Learner1D from adaptive.runner import simple diff --git a/adaptive/tests/test_cquad.py b/adaptive/tests/test_cquad.py index 588361462..543d45f54 100644 --- a/adaptive/tests/test_cquad.py +++ b/adaptive/tests/test_cquad.py @@ -7,10 +7,11 @@ import pytest from adaptive.learner import IntegratorLearner -from adaptive.learner.integrator_learner import DivergentIntegralError from adaptive.learner.integrator_coeffs import ns -from .algorithm_4 import algorithm_4, f0, f7, f21, f24, f63, fdiv +from adaptive.learner.integrator_learner import DivergentIntegralError + from .algorithm_4 import DivergentIntegralError as A4DivergentIntegralError +from .algorithm_4 import algorithm_4, f0, f7, f21, f24, f63, fdiv eps = np.spacing(1) @@ -27,7 +28,7 @@ def equal_ival(ival, other, *, verbose=False): """Note: Implementing __eq__ breaks SortedContainers in some way.""" if ival.depth_complete is None: if verbose: - print('Interval {} is not complete.'.format(ival)) + print(f'Interval {ival} is not complete.') return False slots = set(ival.__slots__).intersection(other.__slots__) @@ -75,7 +76,7 @@ def test_that_gives_same_intervals_as_reference_implementation(): [f7, 0, 1, 1e-6], [f21, 0, 1, 1e-3], [f24, 0, 3, 1e-3]]): - assert same_ivals(*args), 'Function {}'.format(i) + assert same_ivals(*args), f'Function {i}' @pytest.mark.xfail @@ -202,7 +203,7 @@ def test_tell_in_random_order(first_add_33=False): assert all(ival.a == other_ival.a for ival, other_ival in zip(*ivals)) # Test if the approximating_intervals are the same - ivals = [set((i.a, i.b) for i in l.approximating_intervals) + ivals = [{(i.a, i.b) for i in l.approximating_intervals} for l in learners] assert ivals[0] == ivals[1] diff --git a/adaptive/tests/test_learner1d.py b/adaptive/tests/test_learner1d.py index 7815ef6ed..5749a9446 100644 --- a/adaptive/tests/test_learner1d.py +++ b/adaptive/tests/test_learner1d.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- import random + import numpy as np from adaptive.learner import Learner1D @@ -55,12 +56,12 @@ def test_first_iteration(): learner = Learner1D(lambda x: None, (-1, 1)) points, loss_improvements = learner.ask(3) - assert set(points) == set([-1, 0, 1]) + assert set(points) == {-1, 0, 1} learner = Learner1D(lambda x: None, (-1, 1)) points, loss_improvements = learner.ask(1) assert len(points) == 1 and points[0] in learner.bounds - rest = set([-1, 0, 1]) - set(points) + rest = {-1, 0, 1} - set(points) points, loss_improvements = learner.ask(2) assert set(points) == set(rest) diff --git a/adaptive/tests/test_learnernd.py b/adaptive/tests/test_learnernd.py index 04ad0d35c..c5da14a59 100644 --- a/adaptive/tests/test_learnernd.py +++ b/adaptive/tests/test_learnernd.py @@ -6,7 +6,7 @@ from adaptive.learner import LearnerND from adaptive.runner import replay_log, simple -from .test_learners import ring_of_fire, generate_random_parametrization +from .test_learners import generate_random_parametrization, ring_of_fire def test_faiure_case_LearnerND(): diff --git a/adaptive/tests/test_learners.py b/adaptive/tests/test_learners.py index 6869c384f..794f42857 100644 --- a/adaptive/tests/test_learners.py +++ b/adaptive/tests/test_learners.py @@ -17,10 +17,10 @@ import adaptive from adaptive.learner import (AverageLearner, BalancingLearner, DataSaver, - IntegratorLearner, Learner1D, Learner2D, LearnerND) + IntegratorLearner, Learner1D, Learner2D, + LearnerND) from adaptive.runner import simple - try: import skopt from adaptive.learner import SKOptLearner diff --git a/adaptive/tests/test_runner.py b/adaptive/tests/test_runner.py index c5df75bb6..af9d44371 100644 --- a/adaptive/tests/test_runner.py +++ b/adaptive/tests/test_runner.py @@ -5,8 +5,8 @@ import pytest from adaptive.learner import Learner1D, Learner2D -from adaptive.runner import (simple, BlockingRunner, AsyncRunner, - SequentialExecutor, with_ipyparallel, with_distributed) +from adaptive.runner import (AsyncRunner, BlockingRunner, SequentialExecutor, + simple, with_distributed, with_ipyparallel) def blocking_runner(learner, goal): diff --git a/adaptive/tests/test_skopt_learner.py b/adaptive/tests/test_skopt_learner.py index 16c67cb63..b7bcc7e59 100644 --- a/adaptive/tests/test_skopt_learner.py +++ b/adaptive/tests/test_skopt_learner.py @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*- import numpy as np - import pytest try: diff --git a/adaptive/tests/test_triangulation.py b/adaptive/tests/test_triangulation.py index 0defe9dbd..e3a9eee88 100644 --- a/adaptive/tests/test_triangulation.py +++ b/adaptive/tests/test_triangulation.py @@ -1,11 +1,11 @@ # -*- coding: utf-8 -*- +import itertools from collections import Counter from math import factorial -import itertools -import pytest import numpy as np +import pytest from adaptive.learner.triangulation import Triangulation @@ -49,11 +49,7 @@ def _check_faces_are_valid(t): def _check_hull_is_valid(t): """Check that the stored hull is consistent with one computed from scratch.""" counts = Counter(t.faces()) - hull = set(point - for face, count in counts.items() - if count == 1 - for point in face) - + hull = {point for face, count in counts.items() if count == 1 for point in face} assert t.hull == hull diff --git a/adaptive/tests/unit/test_learnernd.py b/adaptive/tests/unit/test_learnernd.py index 3bfee4020..8e89eabda 100644 --- a/adaptive/tests/unit/test_learnernd.py +++ b/adaptive/tests/unit/test_learnernd.py @@ -1,10 +1,12 @@ -from adaptive.learner.learnerND import LearnerND, curvature_loss_function -from adaptive.learner.base_learner import uses_nth_neighbors import math import time -from scipy.spatial import ConvexHull + import numpy as np import pytest +from scipy.spatial import ConvexHull + +from adaptive.learner.base_learner import uses_nth_neighbors +from adaptive.learner.learnerND import LearnerND, curvature_loss_function def ring_of_fire(xy): diff --git a/adaptive/tests/unit/test_learnernd_integration.py b/adaptive/tests/unit/test_learnernd_integration.py index d4026112c..4aad90872 100644 --- a/adaptive/tests/unit/test_learnernd_integration.py +++ b/adaptive/tests/unit/test_learnernd_integration.py @@ -1,9 +1,12 @@ -from adaptive.learner import LearnerND -from adaptive.learner.learnerND import curvature_loss_function -from adaptive.runner import simple as SimpleRunner, BlockingRunner, AsyncRunner import math + import pytest +from adaptive.learner import LearnerND +from adaptive.learner.learnerND import curvature_loss_function +from adaptive.runner import AsyncRunner, BlockingRunner +from adaptive.runner import simple as SimpleRunner + def ring_of_fire(xy, d=.75): a = 0.2 diff --git a/adaptive/utils.py b/adaptive/utils.py index 437b7f21a..aef2ef8a8 100644 --- a/adaptive/utils.py +++ b/adaptive/utils.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from contextlib import contextmanager import functools import gzip -from itertools import product import os import pickle import time +from contextlib import contextmanager +from itertools import product def named_product(**items): diff --git a/benchmarks/benchmarks/__init__.py b/benchmarks/benchmarks/__init__.py index 8b1378917..e69de29bb 100644 --- a/benchmarks/benchmarks/__init__.py +++ b/benchmarks/benchmarks/__init__.py @@ -1 +0,0 @@ - diff --git a/benchmarks/benchmarks/benchmarks.py b/benchmarks/benchmarks/benchmarks.py index f972a6011..4d2ef77db 100644 --- a/benchmarks/benchmarks/benchmarks.py +++ b/benchmarks/benchmarks/benchmarks.py @@ -1,8 +1,8 @@ -import adaptive +import random import numpy as np -import random +import adaptive offset = random.uniform(-0.5, 0.5) diff --git a/setup.py b/setup.py index 249c01fa7..c278e843f 100644 --- a/setup.py +++ b/setup.py @@ -1,9 +1,9 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -from setuptools import setup, find_packages import sys +from setuptools import find_packages, setup if sys.version_info < (3, 6): print('adaptive requires Python 3.6 or above.')