From 62687b907e034aced4d4bbc41a068110e8f097d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20B=C3=A9gaint?= Date: Sun, 12 Apr 2020 12:15:04 -0700 Subject: [PATCH 01/15] Add isort hook --- .isort.cfg | 5 +++++ .pre-commit-config.yaml | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 .isort.cfg diff --git a/.isort.cfg b/.isort.cfg new file mode 100644 index 0000000..d331219 --- /dev/null +++ b/.isort.cfg @@ -0,0 +1,5 @@ +[settings] +lines_between_types=1 +known_numpy=numpy,scipy +known_torch=torch,torchvision +sections=FUTURE,STDLIB,NUMPY,TORCH,THIRDPARTY,FIRSTPARTY,LOCALFOLDER diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6c9de00..23d4244 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -4,3 +4,8 @@ repos: hooks: - id: flake8 additional_dependencies: ["flake8-bugbear==20.1.4", "flake8-comprehensions==3.2.2"] + +- repo: https://github.com/timothycrosley/isort + rev: 4.3.21 # pick the isort version you'd like to use from https://github.com/timothycrosley/isort/releases + hooks: + - id: isort From 6898b03f23843f9e98676542cc807dc3b07bfae8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20B=C3=A9gaint?= Date: Sun, 12 Apr 2020 12:17:02 -0700 Subject: [PATCH 02/15] isort bootstrap --- bootstrap/compare.py | 7 +++++-- bootstrap/run.py | 14 ++++++-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/bootstrap/compare.py b/bootstrap/compare.py index 51f0ab1..ef256fa 100644 --- a/bootstrap/compare.py +++ b/bootstrap/compare.py @@ -1,7 +1,10 @@ -import json -import numpy as np import argparse +import json + from os import path as osp + +import numpy as np + from tabulate import tabulate diff --git a/bootstrap/run.py b/bootstrap/run.py index c181de7..8323451 100755 --- a/bootstrap/run.py +++ b/bootstrap/run.py @@ -1,20 +1,18 @@ import io import os -import sys import shutil -import click -import torch +import sys import traceback + +import torch import torch.backends.cudnn as cudnn +import click + +from . import datasets, engines, models, optimizers, views from .lib import utils from .lib.logger import Logger from .lib.options import Options -from . import engines -from . import datasets -from . import models -from . import optimizers -from . import views def init_experiment_directory(exp_dir, resume=None): From 6e2322dc5a355e04a16fbb876c6415a2f5aeeb60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20B=C3=A9gaint?= Date: Sun, 12 Apr 2020 12:17:41 -0700 Subject: [PATCH 03/15] isort bootstrap/lib --- bootstrap/lib/logger.py | 8 ++++---- bootstrap/lib/options.py | 5 ++++- bootstrap/lib/utils.py | 8 +++++--- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/bootstrap/lib/logger.py b/bootstrap/lib/logger.py index 7b4e42b..58757ec 100755 --- a/bootstrap/lib/logger.py +++ b/bootstrap/lib/logger.py @@ -9,12 +9,12 @@ # SOFTWARE. # ################################################################################# +import collections +import datetime +import inspect +import json import os import sys -import json -import inspect -import datetime -import collections class Logger(object): diff --git a/bootstrap/lib/options.py b/bootstrap/lib/options.py index 12ac3f9..62a868d 100755 --- a/bootstrap/lib/options.py +++ b/bootstrap/lib/options.py @@ -4,10 +4,13 @@ import inspect import json import os + from collections import OrderedDict + import yaml -from yaml import Dumper + from bootstrap.lib.utils import merge_dictionaries +from yaml import Dumper class OptionsDict(OrderedDict): diff --git a/bootstrap/lib/utils.py b/bootstrap/lib/utils.py index c2e6394..29b5c27 100755 --- a/bootstrap/lib/utils.py +++ b/bootstrap/lib/utils.py @@ -1,10 +1,12 @@ import os +import random +import subprocess import sys import time -import torch + import numpy -import random -import subprocess + +import torch def merge_dictionaries(dict1, dict2): From 1ecc5964a4300ba3b6687edeec691779f74ba1d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20B=C3=A9gaint?= Date: Sun, 12 Apr 2020 12:18:07 -0700 Subject: [PATCH 04/15] isort bootstrap/engines --- bootstrap/engines/engine.py | 13 ++++++++----- bootstrap/engines/factory.py | 3 ++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/bootstrap/engines/engine.py b/bootstrap/engines/engine.py index de37236..359bfb2 100755 --- a/bootstrap/engines/engine.py +++ b/bootstrap/engines/engine.py @@ -1,13 +1,16 @@ -import os -import math -import time -import torch import datetime +import math +import os import threading +import time + import numpy as np + +import torch + from ..lib import utils -from ..lib.options import Options from ..lib.logger import Logger +from ..lib.options import Options class Engine(object): diff --git a/bootstrap/engines/factory.py b/bootstrap/engines/factory.py index 6b15ee1..3161e29 100644 --- a/bootstrap/engines/factory.py +++ b/bootstrap/engines/factory.py @@ -1,6 +1,7 @@ import importlib -from ..lib.options import Options + from ..lib.logger import Logger +from ..lib.options import Options from .engine import Engine from .logger import LoggerEngine From 567562285c36ffa35242cbe2c8b9b49175aeaa75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20B=C3=A9gaint?= Date: Sun, 12 Apr 2020 12:19:41 -0700 Subject: [PATCH 05/15] isort bootstrap/models --- bootstrap/models/factory.py | 6 ++---- bootstrap/models/model.py | 3 ++- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/bootstrap/models/factory.py b/bootstrap/models/factory.py index 9388a13..279952e 100755 --- a/bootstrap/models/factory.py +++ b/bootstrap/models/factory.py @@ -1,10 +1,8 @@ import importlib -from ..lib.options import Options from ..lib.logger import Logger - -from .model import DefaultModel -from .model import SimpleModel +from ..lib.options import Options +from .model import DefaultModel, SimpleModel def factory(engine=None): diff --git a/bootstrap/models/model.py b/bootstrap/models/model.py index a4b874a..69b6580 100755 --- a/bootstrap/models/model.py +++ b/bootstrap/models/model.py @@ -1,8 +1,9 @@ import torch.nn as nn + from ..datasets import transforms -from .networks.factory import factory as net_factory from .criterions.factory import factory as cri_factory from .metrics.factory import factory as met_factory +from .networks.factory import factory as net_factory class Model(nn.Module): From 21bd8dd6df5a24ecf605c4e6777ea5aae15e7ab3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20B=C3=A9gaint?= Date: Sun, 12 Apr 2020 12:19:55 -0700 Subject: [PATCH 06/15] isort bootstrap/datasets --- bootstrap/datasets/dataset.py | 5 ++++- bootstrap/datasets/factory.py | 2 +- bootstrap/datasets/transforms.py | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/bootstrap/datasets/dataset.py b/bootstrap/datasets/dataset.py index 7a7a18d..e0360f9 100644 --- a/bootstrap/datasets/dataset.py +++ b/bootstrap/datasets/dataset.py @@ -1,6 +1,9 @@ -import torch.utils.data as data import itertools + import numpy as np + +import torch.utils.data as data + from . import transforms as bootstrap_tf diff --git a/bootstrap/datasets/factory.py b/bootstrap/datasets/factory.py index de5e46d..3b6f2c4 100755 --- a/bootstrap/datasets/factory.py +++ b/bootstrap/datasets/factory.py @@ -1,7 +1,7 @@ import importlib -from ..lib.options import Options from ..lib.logger import Logger +from ..lib.options import Options def factory(engine=None): diff --git a/bootstrap/datasets/transforms.py b/bootstrap/datasets/transforms.py index 1c7fe41..eccae2e 100755 --- a/bootstrap/datasets/transforms.py +++ b/bootstrap/datasets/transforms.py @@ -1,5 +1,7 @@ import collections + import torch + from torch.autograd import Variable From 2aaf17c9333de85228cbaee9ec0da4970b210fc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20B=C3=A9gaint?= Date: Sun, 12 Apr 2020 12:20:23 -0700 Subject: [PATCH 07/15] isort bootstrap/optimizers --- bootstrap/optimizers/factory.py | 7 ++++--- bootstrap/optimizers/lr_scheduler.py | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/bootstrap/optimizers/factory.py b/bootstrap/optimizers/factory.py index 584db9c..1d030e2 100755 --- a/bootstrap/optimizers/factory.py +++ b/bootstrap/optimizers/factory.py @@ -1,9 +1,10 @@ import copy -import torch import importlib -from ..lib.options import Options -from ..lib.logger import Logger +import torch + +from ..lib.logger import Logger +from ..lib.options import Options from . import lr_scheduler from .grad_clipper import GradClipper diff --git a/bootstrap/optimizers/lr_scheduler.py b/bootstrap/optimizers/lr_scheduler.py index 37f88a3..fd19dcb 100644 --- a/bootstrap/optimizers/lr_scheduler.py +++ b/bootstrap/optimizers/lr_scheduler.py @@ -1,4 +1,5 @@ import torch.optim.lr_scheduler + from bootstrap.lib.logger import Logger From cd9665fe4dcf1e925c6a5f7fe281c1bb0ca66483 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20B=C3=A9gaint?= Date: Sun, 12 Apr 2020 12:21:06 -0700 Subject: [PATCH 08/15] isort bootstrap/views --- bootstrap/views/factory.py | 3 ++- bootstrap/views/plotly.py | 7 +++++-- bootstrap/views/tensorboard.py | 4 +++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/bootstrap/views/factory.py b/bootstrap/views/factory.py index 17a4e20..bbc6c01 100644 --- a/bootstrap/views/factory.py +++ b/bootstrap/views/factory.py @@ -1,6 +1,7 @@ import importlib -from ..lib.options import Options + from ..lib.logger import Logger +from ..lib.options import Options from .utils import MultiViews diff --git a/bootstrap/views/plotly.py b/bootstrap/views/plotly.py index d2b77b3..8a4893d 100644 --- a/bootstrap/views/plotly.py +++ b/bootstrap/views/plotly.py @@ -1,9 +1,12 @@ -import os import json import math +import os + import plotly.graph_objects as go -from plotly.subplots import make_subplots + from plotly.offline import plot +from plotly.subplots import make_subplots + from ..lib.logger import Logger diff --git a/bootstrap/views/tensorboard.py b/bootstrap/views/tensorboard.py index 91a0af2..60019ce 100644 --- a/bootstrap/views/tensorboard.py +++ b/bootstrap/views/tensorboard.py @@ -1,6 +1,8 @@ -import os import json +import os + from tensorboardX import SummaryWriter + from ..lib.logger import Logger From c05dcd05af431042f84bbfec27cdc8336b2dcc91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20B=C3=A9gaint?= Date: Sun, 12 Apr 2020 12:22:03 -0700 Subject: [PATCH 09/15] isort bootstrap/models/networks --- bootstrap/models/networks/data_parallel.py | 1 + bootstrap/models/networks/factory.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bootstrap/models/networks/data_parallel.py b/bootstrap/models/networks/data_parallel.py index a846b71..19d66f6 100644 --- a/bootstrap/models/networks/data_parallel.py +++ b/bootstrap/models/networks/data_parallel.py @@ -1,5 +1,6 @@ import torch import torch.nn as nn + from torch.nn.parallel._functions import Gather diff --git a/bootstrap/models/networks/factory.py b/bootstrap/models/networks/factory.py index 279f984..f8bed0b 100644 --- a/bootstrap/models/networks/factory.py +++ b/bootstrap/models/networks/factory.py @@ -1,7 +1,7 @@ import importlib -from bootstrap.lib.options import Options from bootstrap.lib.logger import Logger +from bootstrap.lib.options import Options def factory(engine=None): From eddb7a0c609a23bf7568de912d5df0b460a95078 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20B=C3=A9gaint?= Date: Sun, 12 Apr 2020 12:22:14 -0700 Subject: [PATCH 10/15] isort bootstrap/models/criterions --- bootstrap/models/criterions/factory.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/bootstrap/models/criterions/factory.py b/bootstrap/models/criterions/factory.py index ec6d8b8..67215e5 100644 --- a/bootstrap/models/criterions/factory.py +++ b/bootstrap/models/criterions/factory.py @@ -1,9 +1,11 @@ import importlib -from bootstrap.lib.options import Options + from bootstrap.lib.logger import Logger -from .nll import NLLLoss +from bootstrap.lib.options import Options + from .bce import BCEWithLogitsLoss from .cross_entropy import CrossEntropyLoss +from .nll import NLLLoss def factory(engine=None, mode=None): From 559f6860fff1290546c5e2d2b1ac23202a3366f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20B=C3=A9gaint?= Date: Sun, 12 Apr 2020 12:24:43 -0700 Subject: [PATCH 11/15] isort setup.py --- setup.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index fad6fbf..5d05dc0 100644 --- a/setup.py +++ b/setup.py @@ -5,12 +5,13 @@ https://github.com/pypa/sampleproject """ -# Always prefer setuptools over distutils -from setuptools import setup, find_packages # To use a consistent encoding from codecs import open from os import path +# Always prefer setuptools over distutils +from setuptools import find_packages, setup + here = path.abspath(path.dirname(__file__)) # Get the long description from the README file From e9c82995a7ca13e0326ea1d7773286a11de17c4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20B=C3=A9gaint?= Date: Sun, 12 Apr 2020 12:25:11 -0700 Subject: [PATCH 12/15] isort tests --- tests/test_options.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_options.py b/tests/test_options.py index 754fe7c..2030862 100644 --- a/tests/test_options.py +++ b/tests/test_options.py @@ -2,13 +2,13 @@ import json import os import sys + from io import StringIO import pytest import yaml -from bootstrap.lib.options import Options -from bootstrap.lib.options import OptionsDict +from bootstrap.lib.options import Options, OptionsDict from bootstrap.lib.utils import merge_dictionaries From 05d1f3d1b271a135c42d1a4b48d1dd79ac222085 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20B=C3=A9gaint?= Date: Sun, 12 Apr 2020 12:29:16 -0700 Subject: [PATCH 13/15] isort bootstrap/models/metrics --- bootstrap/models/metrics/factory.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bootstrap/models/metrics/factory.py b/bootstrap/models/metrics/factory.py index 44de8f8..78a6b7d 100644 --- a/bootstrap/models/metrics/factory.py +++ b/bootstrap/models/metrics/factory.py @@ -1,6 +1,8 @@ import importlib -from bootstrap.lib.options import Options + from bootstrap.lib.logger import Logger +from bootstrap.lib.options import Options + from .accuracy import Accuracy From dac36726d3a746d56c1f11e5e4871a8cba2974c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20B=C3=A9gaint?= Date: Sun, 12 Apr 2020 12:51:19 -0700 Subject: [PATCH 14/15] let isort skip docs directory --- .pre-commit-config.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 23d4244..5f8e177 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -9,3 +9,4 @@ repos: rev: 4.3.21 # pick the isort version you'd like to use from https://github.com/timothycrosley/isort/releases hooks: - id: isort + exclude: ^docs/* From 357f7194d0c96bfa2d0ccee5caf39dcb52565a59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20B=C3=A9gaint?= Date: Sun, 12 Apr 2020 13:10:55 -0700 Subject: [PATCH 15/15] add pytests to known isort third parties --- .isort.cfg | 1 + tests/test_options.py | 1 + 2 files changed, 2 insertions(+) diff --git a/.isort.cfg b/.isort.cfg index d331219..5ed9952 100644 --- a/.isort.cfg +++ b/.isort.cfg @@ -3,3 +3,4 @@ lines_between_types=1 known_numpy=numpy,scipy known_torch=torch,torchvision sections=FUTURE,STDLIB,NUMPY,TORCH,THIRDPARTY,FIRSTPARTY,LOCALFOLDER +known_third_party=pytest diff --git a/tests/test_options.py b/tests/test_options.py index 2030862..a282cc0 100644 --- a/tests/test_options.py +++ b/tests/test_options.py @@ -6,6 +6,7 @@ from io import StringIO import pytest + import yaml from bootstrap.lib.options import Options, OptionsDict