Skip to content

Commit 2bc9601

Browse files
authored
MAINT use isort for imports (#948)
1 parent 4714869 commit 2bc9601

File tree

106 files changed

+386
-491
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+386
-491
lines changed

Diff for: .pre-commit-config.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,7 @@ repos:
2020
- id: mypy
2121
files: sklearn/
2222
additional_dependencies: [pytest==6.2.4]
23+
- repo: https://github.com/PyCQA/isort
24+
rev: 5.10.1
25+
hooks:
26+
- id: isort

Diff for: azure-pipelines.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,14 @@ jobs:
4545
versionSpec: '3.9'
4646
- bash: |
4747
# Include pytest compatibility with mypy
48-
pip install pytest flake8 mypy==0.782 black==22.3
48+
pip install pytest flake8 mypy==0.782 black==22.3 isort
4949
displayName: Install linters
5050
- bash: |
5151
black --check --diff .
5252
displayName: Run black
53+
- bash: |
54+
isort --check --diff .
55+
displayName: Run isort
5356
- bash: |
5457
./build_tools/azure/linting.sh
5558
displayName: Run linting

Diff for: conftest.py

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
# rather than the one from site-packages.
77

88
import os
9+
910
import pytest
1011

1112

Diff for: doc/conf.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
import os
1616
import sys
1717
from datetime import datetime
18-
from pathlib import Path
1918
from io import StringIO
19+
from pathlib import Path
2020

2121
# If extensions (or modules to document with autodoc) are in another directory,
2222
# add these directories to sys.path here. If the directory is relative to the

Diff for: doc/sphinxext/github_link.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
from operator import attrgetter
21
import inspect
3-
import subprocess
42
import os
3+
import subprocess
54
import sys
65
from functools import partial
6+
from operator import attrgetter
77

88
REVISION_CMD = "git rev-parse --short HEAD"
99

Diff for: examples/api/plot_sampling_strategy_usage.py

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
# %%
2828
from sklearn.datasets import load_iris
29+
2930
from imblearn.datasets import make_imbalance
3031

3132
iris = load_iris(as_frame=True)

Diff for: examples/applications/plot_impact_imbalanced_classes.py

+8-6
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,10 @@
6060
# As a baseline, we could use a classifier which will always predict the
6161
# majority class independently of the features provided.
6262

63+
from sklearn.dummy import DummyClassifier
64+
6365
# %%
6466
from sklearn.model_selection import cross_validate
65-
from sklearn.dummy import DummyClassifier
6667

6768
dummy_clf = DummyClassifier(strategy="most_frequent")
6869
scoring = ["accuracy", "balanced_accuracy"]
@@ -121,9 +122,8 @@
121122

122123
# %%
123124
from sklearn.impute import SimpleImputer
124-
from sklearn.preprocessing import StandardScaler
125-
from sklearn.preprocessing import OneHotEncoder
126125
from sklearn.pipeline import make_pipeline
126+
from sklearn.preprocessing import OneHotEncoder, StandardScaler
127127

128128
num_pipe = make_pipeline(
129129
StandardScaler(), SimpleImputer(strategy="mean", add_indicator=True)
@@ -139,8 +139,8 @@
139139
# numerical pipeline
140140

141141
# %%
142-
from sklearn.compose import make_column_transformer
143142
from sklearn.compose import make_column_selector as selector
143+
from sklearn.compose import make_column_transformer
144144

145145
preprocessor_linear = make_column_transformer(
146146
(num_pipe, selector(dtype_include="number")),
@@ -176,9 +176,10 @@
176176
# classifier, we will not need to scale the numerical data, and we will only
177177
# need to ordinal encode the categorical data.
178178

179+
from sklearn.ensemble import RandomForestClassifier
180+
179181
# %%
180182
from sklearn.preprocessing import OrdinalEncoder
181-
from sklearn.ensemble import RandomForestClassifier
182183

183184
num_pipe = SimpleImputer(strategy="mean", add_indicator=True)
184185
cat_pipe = make_pipeline(
@@ -336,8 +337,9 @@
336337
# applying a single random under-sampling. We will use a gradient-boosting
337338
# classifier within a :class:`~imblearn.ensemble.BalancedBaggingClassifier`.
338339

339-
from sklearn.experimental import enable_hist_gradient_boosting # noqa
340340
from sklearn.ensemble import HistGradientBoostingClassifier
341+
from sklearn.experimental import enable_hist_gradient_boosting # noqa
342+
341343
from imblearn.ensemble import BalancedBaggingClassifier
342344

343345
bag_clf = make_pipeline(

Diff for: examples/applications/plot_multi_class_under_sampling.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
from sklearn.preprocessing import StandardScaler
2121

2222
from imblearn.datasets import make_imbalance
23-
from imblearn.under_sampling import NearMiss
24-
from imblearn.pipeline import make_pipeline
2523
from imblearn.metrics import classification_report_imbalanced
24+
from imblearn.pipeline import make_pipeline
25+
from imblearn.under_sampling import NearMiss
2626

2727
print(__doc__)
2828

Diff for: examples/applications/plot_outlier_rejections.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@
1313
# Authors: Guillaume Lemaitre <[email protected]>
1414
# License: MIT
1515

16-
import numpy as np
1716
import matplotlib.pyplot as plt
18-
19-
from sklearn.datasets import make_moons, make_blobs
17+
import numpy as np
18+
from sklearn.datasets import make_blobs, make_moons
2019
from sklearn.ensemble import IsolationForest
2120
from sklearn.linear_model import LogisticRegression
2221
from sklearn.metrics import classification_report

Diff for: examples/applications/plot_over_sampling_benchmark_lfw.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,12 @@
7272
#
7373
# We will create different pipelines and evaluate them.
7474

75+
from sklearn.neighbors import KNeighborsClassifier
76+
7577
# %%
7678
from imblearn import FunctionSampler
77-
from imblearn.over_sampling import ADASYN, RandomOverSampler, SMOTE
79+
from imblearn.over_sampling import ADASYN, SMOTE, RandomOverSampler
7880
from imblearn.pipeline import make_pipeline
79-
from sklearn.neighbors import KNeighborsClassifier
8081

8182
classifier = KNeighborsClassifier(n_neighbors=3)
8283

@@ -98,7 +99,7 @@
9899
# cross-validation.
99100

100101
# %%
101-
from sklearn.metrics import RocCurveDisplay, roc_curve, auc
102+
from sklearn.metrics import RocCurveDisplay, auc, roc_curve
102103

103104
disp = []
104105
for model in pipeline:

Diff for: examples/applications/plot_topic_classication.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,10 @@
8787
# :class:`~imblearn.pipeline.make_pipeline` function implemented in
8888
# imbalanced-learn to properly handle the samplers.
8989

90+
from imblearn.pipeline import make_pipeline as make_pipeline_imb
91+
9092
# %%
9193
from imblearn.under_sampling import RandomUnderSampler
92-
from imblearn.pipeline import make_pipeline as make_pipeline_imb
9394

9495
model = make_pipeline_imb(TfidfVectorizer(), RandomUnderSampler(), MultinomialNB())
9596

Diff for: examples/applications/porto_seguro_keras_under_sampling.py

+7-12
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@
2525
###############################################################################
2626

2727
from collections import Counter
28-
import pandas as pd
28+
2929
import numpy as np
30+
import pandas as pd
3031

3132
###############################################################################
3233
# First, you should download the Porto Seguro data set from Kaggle. See the
@@ -49,11 +50,9 @@
4950
###############################################################################
5051

5152
from sklearn.compose import ColumnTransformer
52-
from sklearn.pipeline import make_pipeline
53-
from sklearn.preprocessing import OneHotEncoder
54-
from sklearn.preprocessing import StandardScaler
55-
from sklearn.preprocessing import FunctionTransformer
5653
from sklearn.impute import SimpleImputer
54+
from sklearn.pipeline import make_pipeline
55+
from sklearn.preprocessing import FunctionTransformer, OneHotEncoder, StandardScaler
5756

5857

5958
def convert_float64(X):
@@ -95,16 +94,12 @@ def convert_float64(X):
9594

9695
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
9796

97+
from tensorflow.keras.layers import Activation, BatchNormalization, Dense, Dropout
98+
9899
###############################################################################
99100
# Create a neural-network
100101
###############################################################################
101102
from tensorflow.keras.models import Sequential
102-
from tensorflow.keras.layers import (
103-
Activation,
104-
Dense,
105-
Dropout,
106-
BatchNormalization,
107-
)
108103

109104

110105
def make_model(n_features):
@@ -235,8 +230,8 @@ def fit_predict_balanced_model(X_train, y_train, X_test, y_test):
235230
)
236231
df_time = df_time.unstack().reset_index()
237232

238-
import seaborn as sns
239233
import matplotlib.pyplot as plt
234+
import seaborn as sns
240235

241236
plt.figure()
242237
sns.boxplot(y="level_0", x=0, data=df_time)

Diff for: examples/combine/plot_comparison_combine.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,13 @@ def plot_decision_function(X, y, clf, ax):
102102
# :class:`~imblearn.combine.SMOTEENN` cleans more noisy data than
103103
# :class:`~imblearn.combine.SMOTETomek`.
104104

105+
from sklearn.svm import LinearSVC
106+
107+
from imblearn.combine import SMOTEENN, SMOTETomek
108+
105109
# %%
106110
from imblearn.over_sampling import SMOTE
107-
from imblearn.combine import SMOTEENN, SMOTETomek
108111
from imblearn.pipeline import make_pipeline
109-
from sklearn.svm import LinearSVC
110112

111113
samplers = [SMOTE(random_state=0), SMOTEENN(random_state=0), SMOTETomek(random_state=0)]
112114

Diff for: examples/ensemble/plot_bagging_classifier.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,10 @@
4646
# :class:`~imblearn.ensemble.BalancedBaggingClassifier` by passing different
4747
# sampler.
4848

49+
from sklearn.ensemble import BaggingClassifier
50+
4951
# %%
5052
from sklearn.model_selection import cross_validate
51-
from sklearn.ensemble import BaggingClassifier
5253

5354
ebb = BaggingClassifier()
5455
cv_results = cross_validate(ebb, X, y, scoring="balanced_accuracy")
@@ -119,7 +120,9 @@
119120

120121
# %%
121122
from collections import Counter
123+
122124
import numpy as np
125+
123126
from imblearn import FunctionSampler
124127

125128

Diff for: examples/ensemble/plot_comparison_ensemble_classifier.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,10 @@
2727
# (number of majority sample for a minority sample). The data are then split
2828
# into training and testing.
2929

30+
from sklearn.model_selection import train_test_split
31+
3032
# %%
3133
from imblearn.datasets import fetch_datasets
32-
from sklearn.model_selection import train_test_split
3334

3435
satimage = fetch_datasets()["satimage"]
3536
X, y = satimage.data, satimage.target
@@ -55,6 +56,7 @@
5556

5657
# %%
5758
from sklearn.metrics import balanced_accuracy_score
59+
5860
from imblearn.metrics import geometric_mean_score
5961

6062
print("Decision tree classifier performance:")
@@ -83,6 +85,7 @@
8385

8486
# %%
8587
from sklearn.ensemble import BaggingClassifier
88+
8689
from imblearn.ensemble import BalancedBaggingClassifier
8790

8891
bagging = BaggingClassifier(n_estimators=50, random_state=0)
@@ -132,6 +135,7 @@
132135

133136
# %%
134137
from sklearn.ensemble import RandomForestClassifier
138+
135139
from imblearn.ensemble import BalancedRandomForestClassifier
136140

137141
rf = RandomForestClassifier(n_estimators=50, random_state=0)
@@ -180,6 +184,7 @@
180184

181185
# %%
182186
from sklearn.ensemble import AdaBoostClassifier
187+
183188
from imblearn.ensemble import EasyEnsembleClassifier, RUSBoostClassifier
184189

185190
base_estimator = AdaBoostClassifier(n_estimators=10)

Diff for: examples/evaluation/plot_classification_report.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414

1515

1616
from sklearn import datasets
17+
from sklearn.model_selection import train_test_split
1718
from sklearn.preprocessing import StandardScaler
1819
from sklearn.svm import LinearSVC
19-
from sklearn.model_selection import train_test_split
2020

2121
from imblearn import over_sampling as os
2222
from imblearn import pipeline as pl

Diff for: examples/evaluation/plot_metrics.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,14 @@
5050
# We will create a pipeline made of a :class:`~imblearn.over_sampling.SMOTE`
5151
# over-sampler followed by a :class:`~sklearn.svm.LinearSVC` classifier.
5252

53-
# %%
54-
from imblearn.pipeline import make_pipeline
5553
from sklearn.preprocessing import StandardScaler
56-
from imblearn.over_sampling import SMOTE
5754
from sklearn.svm import LinearSVC
5855

56+
from imblearn.over_sampling import SMOTE
57+
58+
# %%
59+
from imblearn.pipeline import make_pipeline
60+
5961
model = make_pipeline(
6062
StandardScaler(),
6163
SMOTE(random_state=RANDOM_STATE),

Diff for: examples/model_selection/plot_validation_curve.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,11 @@
4848
# search which `k_neighbors` parameter is the most adequate with the dataset
4949
# that we generated.
5050

51+
from sklearn.tree import DecisionTreeClassifier
52+
5153
# %%
5254
from imblearn.over_sampling import SMOTE
5355
from imblearn.pipeline import make_pipeline
54-
from sklearn.tree import DecisionTreeClassifier
5556

5657
model = make_pipeline(
5758
SMOTE(random_state=RANDOM_STATE), DecisionTreeClassifier(random_state=RANDOM_STATE)

Diff for: examples/over-sampling/plot_comparison_over_sampling.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,10 @@ def plot_decision_function(X, y, clf, ax, title=None):
134134
# class. The class :class:`~imblearn.over_sampling.RandomOverSampler`
135135
# implements such of a strategy.
136136

137+
from imblearn.over_sampling import RandomOverSampler
138+
137139
# %%
138140
from imblearn.pipeline import make_pipeline
139-
from imblearn.over_sampling import RandomOverSampler
140141

141142
X, y = create_dataset(n_samples=100, weights=(0.05, 0.25, 0.7))
142143

@@ -185,7 +186,7 @@ def plot_decision_function(X, y, clf, ax, title=None):
185186

186187
# %%
187188
from imblearn import FunctionSampler # to use a idendity sampler
188-
from imblearn.over_sampling import SMOTE, ADASYN
189+
from imblearn.over_sampling import ADASYN, SMOTE
189190

190191
X, y = create_dataset(n_samples=150, weights=(0.1, 0.2, 0.7))
191192

@@ -261,7 +262,7 @@ def plot_decision_function(X, y, clf, ax, title=None):
261262
# density.
262263

263264
# %%
264-
from imblearn.over_sampling import BorderlineSMOTE, KMeansSMOTE, SVMSMOTE
265+
from imblearn.over_sampling import SVMSMOTE, BorderlineSMOTE, KMeansSMOTE
265266

266267
X, y = create_dataset(n_samples=5000, weights=(0.01, 0.05, 0.94), class_sep=0.8)
267268

@@ -292,6 +293,7 @@ def plot_decision_function(X, y, clf, ax, title=None):
292293

293294
# %%
294295
from collections import Counter
296+
295297
from imblearn.over_sampling import SMOTENC
296298

297299
rng = np.random.RandomState(42)

0 commit comments

Comments
 (0)