8000 Merge pull request #11 from arka204/master-copy · arka204/scikit-learn@5782e6f · GitHub
[go: up one dir, main page]

Skip to content

Commit 5782e6f

Browse files
authored
Merge pull request #11 from arka204/master-copy
Update branch
2 parents be0ebfe + 7e1b649 commit 5782e6f

File tree

129 files changed

+2539
-2103
lines changed

Some content is hidden

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

129 files changed

+2539
-2103
lines changed

.codecov.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,8 @@ coverage:
1212
default:
1313
# Be tolerant on slight code coverage diff on PRs to limit
1414
# noisy red coverage status on github PRs.
15-
# Note The coverage stats are still uploaded
15+
# Note: The coverage stats are still uploaded
1616
# to codecov so that PR reviewers can see uncovered lines
17-
# in the github diff if they install the codecov browser
18-
# extension:
19-
# https://github.com/codecov/browser-extension
2017
target: auto
2118
threshold: 1%
2219

.github/workflows/labeler.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ jobs:
88
runs-on: ubuntu-latest
99
steps:
1010
- uses: thomasjpfan/labeler@v2.4.6
11+
continue-on-error: true
1112
if: github.repository == 'scikit-learn/scikit-learn'
1213
with:
1314
repo-token: "${{ secrets.GITHUB_TOKEN }}"

.gitignore

Lines changed: 0 additions & 154 deletions
Original file line numberDiff line numberDiff line change
@@ -77,157 +77,3 @@ _configtest.o.d
7777
sklearn/utils/_seq_dataset.pyx
7878
sklearn/utils/_seq_dataset.pxd
7979
sklearn/linear_model/_sag_fast.pyx
80-
81-
# deprecated paths
82-
# TODO: Remove in 0.24
83-
# All of these files should have a match in _build_utils/deprecated_modules.py
84-
sklearn/utils/mocking.py
85-
86-
sklearn/ensemble/bagging.py
87-
sklearn/ensemble/base.py
88-
sklearn/ensemble/forest.py
89-
sklearn/ensemble/gradient_boosting.py
90-
sklearn/ensemble/iforest.py
91-
sklearn/ensemble/stacking.py
92-
sklearn/ensemble/voting.py
93-
sklearn/ensemble/weight_boosting.py
94-
sklearn/tree/export.py
95-
sklearn/tree/tree.py
96-
97-
sklearn/neural_network/rbm.py
98-
sklearn/neural_network/multilayer_perceptron.py
99-
100-
sklearn/utils/weight_vector.py
101-
sklearn/utils/seq_dataset.py
102-
sklearn/utils/fast_dict.py
103-
sklearn/utils/testing.py
104-
105-
sklearn/cluster/affinity_propagation_.py
106-
sklearn/cluster/bicluster.py
107-
sklearn/cluster/birch.py
108-
sklearn/cluster/dbscan_.py
109-
sklearn/cluster/hierarchical.py
110-
sklearn/cluster/k_means_.py
111-
sklearn/cluster/mean_shift_.py
112-
sklearn/cluster/optics_.py
113-
sklearn/cluster/spectral.py
114-
115-
sklearn/mixture/base.py
116-
sklearn/mixture/gaussian_mixture.py
117-
sklearn/mixture/bayesian_mixture.py
118-
119-
sklearn/covariance/elliptic_envelope.py
120-
sklearn/covariance/empirical_covariance_.py
121-
sklearn/covariance/graph_lasso_.py
122-
sklearn/covariance/robust_covariance.py
123-
sklearn/covariance/shrunk_covariance_.py
124-
125-
sklearn/cross_decomposition/cca_.py
126-
sklearn/cross_decomposition/pls_.py
127-
128-
sklearn/svm/base.py
129-
sklearn/svm/classes.py
130-
sklearn/svm/bounds.py
131-
sklearn/svm/libsvm.py
132-
sklearn/svm/libsvm_sparse.py
133-
sklearn/svm/liblinear.py
134-
135-
sklearn/decomposition/base.py
136-
sklearn/decomposition/dict_learning.py
137-
sklearn/decomposition/cdnmf_fast.py
138-
sklearn/decomposition/factor_analysis.py
139-
sklearn/decomposition/fastica_.py
140-
sklearn/decomposition/incremental_pca.py
141-
sklearn/decomposition/kernel_pca.py
142-
sklearn/decomposition/nmf.py
143-
sklearn/decomposition/online_lda.py
144-
sklearn/decomposition/online_lda_fast.py
145-
sklearn/decomposition/pca.py
146-
sklearn/decomposition/sparse_pca.py
147-
sklearn/decomposition/truncated_svd.py
148-
149-
sklearn/gaussian_process/gpr.py
150-
sklearn/gaussian_process/gpc.py
151-
152-
sklearn/datasets/base.py
153-
sklearn/datasets/california_housing.py
154-
sklearn/datasets/covtype.py
155-
sklearn/datasets/kddcup99.py
156-
sklearn/datasets/lfw.py
157-
sklearn/datasets/olivetti_faces.py
158-
sklearn/datasets/openml.py
159-
sklearn/datasets/rcv1.py
160-
sklearn/datasets/samples_generator.py
161-
sklearn/datasets/species_distributions.py
162-
sklearn/datasets/svmlight_format.py
163-
sklearn/datasets/twenty_newsgroups.py
164-
165-
sklearn/feature_extraction/dict_vectorizer.py
166-
sklearn/feature_extraction/hashing.py
167-
sklearn/feature_extraction/stop_words.py
168-
169-
sklearn/linear_model/base.py
170-
sklearn/linear_model/bayes.py
171-
sklearn/linear_model/cd_fast.py
172-
sklearn/linear_model/coordinate_descent.py
173-
sklearn/linear_model/huber.py
174-
sklearn/linear_model/least_angle.py
175-
sklearn/linear_model/logistic.py
176-
sklearn/linear_model/omp.py
177-
sklearn/linear_model/passive_aggressive.py
178-
sklearn/linear_model/perceptron.py
179-
sklearn/linear_model/ransac.py
180-
sklearn/linear_model/ridge.py
181-
sklearn/linear_model/sag.py
182-
sklearn/linear_model/sag_fast.py
183-
sklearn/linear_model/sgd_fast.py
184-
sklearn/linear_model/stochastic_gradient.py
185-
sklearn/linear_model/theil_sen.py
186-
187-
sklearn/metrics/cluster/bicluster.py
188-
sklearn/metrics/cluster/supervised.py
189-
sklearn/metrics/cluster/unsupervised.py
190-
sklearn/metrics/cluster/expected_mutual_info_fast.py
191-
192-
sklearn/metrics/base.py
193-
sklearn/metrics/classification.py
194-
sklearn/metrics/regression.py
195-
sklearn/metrics/ranking.py
196-
sklearn/metrics/pairwise_fast.py
197-
sklearn/metrics/scorer.py
198-
199-
sklearn/inspection/partial_dependence.py
200-
sklearn/inspection/permutation_importance.py
201-
202-
sklearn/neighbors/ball_tree.py
203-
sklearn/neighbors/base.py
204-
sklearn/neighbors/classification.py
205-
sklearn/neighbors/dist_metrics.py
206-
sklearn/neighbors/graph.py
207-
sklearn/neighbors/kd_tree.py
208-
sklearn/neighbors/kde.py
209-
sklearn/neighbors/lof.py
210-
sklearn/neighbors/nca.py
211-
sklearn/neighbors/nearest_centroid.py
212-
sklearn/neighbors/quad_tree.py
213-
sklearn/neighbors/regression.py
214-
sklearn/neighbors/typedefs.py
215-
sklearn/neighbors/unsupervised.py
216-
217-
sklearn/manifold/isomap.py
218-
sklearn/manifold/locally_linear.py
219-
sklearn/manifold/mds.py
220-
sklearn/manifold/spectral_embedding_.py
221-
sklearn/manifold/t_sne.py
222-
223-
sklearn/semi_supervised/label_propagation.py
224-
225-
sklearn/preprocessing/data.py
226-
sklearn/preprocessing/label.py
227-
228-
sklearn/feature_selection/base.py
229-
sklearn/feature_selection/from_model.py
230-
sklearn/feature_selection/mutual_info.py
231-
sklearn/feature_selection/rfe.py
232-
sklearn/feature_selection/univariate_selection.py
233-
sklearn/feature_selection/variance_threshold.py

Makefile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ clean-ctags:
1818
clean: clean-ctags
1919
$(PYTHON) setup.py clean
2020
rm -rf dist
21-
# TODO: Remove in when all modules are removed.
22-
$(PYTHON) sklearn/_build_utils/deprecated_modules.py
2321

2422
in: inplace # just a shortcut
2523
inplace:

azure-pipelines.yml

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,35 +13,29 @@ jobs:
1313
pool:
1414
vmImage: ubuntu-18.04
1515
steps:
16-
- bash: echo "##vso[task.prependpath]$CONDA/bin"
17-
displayName: Add conda to PATH
18-
- bash: sudo chown -R $USER $CONDA
19-
displayName: Take ownership of conda installation
16+
- task: UsePythonVersion@0
17+
inputs:
18+
versionSpec: '3.8'
2019
- bash: |
21-
set -ex
22-
conda create --name flake8_env --yes python=3.8
23-
source activate flake8_env
2420
pip install flake8 mypy==0.770
25-
displayName: Install flake8
21+
displayName: Install linters
2622
- bash: |
2723
set -ex
2824
if [[ $BUILD_SOURCEVERSIONMESSAGE =~ \[lint\ skip\] ]]; then
2925
# skip linting
30-
echo "Skipping linting"
26+
echo "Skipping flake8 linting"
3127
exit 0
3228
else
33-
source activate flake8_env
3429
./build_tools/circle/linting.sh
3530
fi
3631
displayName: Run linting
3732
- bash: |
3833
set -ex
3934
if [[ $BUILD_SOURCEVERSIONMESSAGE =~ \[lint\ skip\] ]]; then
4035
# skip linting
41-
echo "Skipping linting"
36+
echo "Skipping mypy linting"
4237
exit 0
4338
else
44-
source activate flake8_env
4539
mypy sklearn/ --ignore-missing-imports
4640
fi
4741
displayName: Run mypy

build_tools/generate_authors_table.py

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515

1616
print("user:", file=sys.stderr)
1717
user = input()
18-
passwd = getpass.getpass("Password or access token:\n")
19-
auth = (user, passwd)
18+
token = getpass.getpass("access token:\n")
19+
auth = (user, token)
2020

2121
LOGO_URL = 'https://avatars2.githubusercontent.com/u/365630?v=4'
2222
REPO_FOLDER = Path(path.abspath(__file__)).parent.parent
@@ -38,13 +38,15 @@ def get(url):
3838

3939
def get_contributors():
4040
"""Get the list of contributor profiles. Require admin rights."""
41-
# get members of scikit-learn core-dev on GitHub
41+
# get core devs and triage team
4242
core_devs = []
43-
team = 11523
44-
for page in [1, 2]: # 30 per page
45-
reply = get("https://api.github.com/teams/%d/members?page=%d" %
46-
(team, page))
47-
core_devs.extend(reply.json())
43+
triage_team = []
44+
for team_id, lst in zip((11523, 3593183), (core_devs, triage_team)):
45+
for page in [1, 2]: # 30 per page
46+
reply = get(
47+
f"https://api.github.com/teams/{team_id}/members?page={page}"
48+
)
49+
lst.extend(reply.json())
4850

4951
# get members of scikit-learn on GitHub
5052
members = []
@@ -55,32 +57,31 @@ def get_contributors():
5557
members.extend(reply.json())
5658

5759
# keep only the logins
58-
core_devs = [c['login'] for c in core_devs]
59-
members = [c['login'] for c in members]
60+
core_devs = set(c['login'] for c in core_devs)
61+
triage_team = set(c['login'] for c in triage_team)
62+
members = set(c['login'] for c in members)
6063

6164
# add missing contributors with GitHub accounts
62-
members.extend(['dubourg', 'mbrucher', 'thouis', 'jarrodmillman'])
65+
members |= {'dubourg', 'mbrucher', 'thouis', 'jarrodmillman'}
6366
# add missing contributors without GitHub accounts
64-
members.extend(['Angel Soler Gollonet'])
67+
members |= {'Angel Soler Gollonet'}
6568
# remove CI bots
66-
members.remove('sklearn-ci')
67-
members.remove('sklearn-lgtm')
68-
members.remove('sklearn-wheels')
69+
members -= {'sklearn-ci', 'sklearn-lgtm', 'sklearn-wheels'}
70+
triage_team -= core_devs # remove ogrisel from triage_team
6971

70-
# remove duplicate, and get the difference of the two sets
71-
core_devs = set(core_devs)
72-
members = set(members)
73-
emeritus = members.difference(core_devs)
72+
emeritus = members - core_devs - triage_team
7473

7574
# get profiles from GitHub
7675
core_devs = [get_profile(login) for login in core_devs]
7776
emeritus = [get_profile(login) for login in emeritus]
77+
triage_team = [get_profile(login) for login in triage_team]
7878

7979
# sort by last name
8080
core_devs = sorted(core_devs, key=key)
8181
emeritus = sorted(emeritus, key=key)
82+
triage_team = sorted(triage_team, key=key)
8283

83-
return core_devs, emeritus
84+
return core_devs, emeritus, triage_team
8485

8586

8687
def get_profile(login):
@@ -143,10 +144,13 @@ def g 57AE enerate_list(contributors):
143144

144145
if __name__ == "__main__":
145146

146-
core_devs, emeritus = get_contributors()
147+
core_devs, emeritus, triage_team = get_contributors()
147148

148149
with open(REPO_FOLDER / "doc" / "authors.rst", "w+") as rst_file:
149150
rst_file.write(generate_table(core_devs))
150151

151152
with open(REPO_FOLDER / "doc" / "authors_emeritus.rst", "w+") as rst_file:
152153
rst_file.write(generate_list(emeritus))
154+
155+
with open(REPO_FOLDER / "doc" / "triage_team.rst", "w+") as rst_file:
156+
rst_file.write(generate_table(triage_team))

conftest.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,8 @@
1313
import pytest
1414
from _pytest.doctest import DoctestItem
1515

16-
from sklearn import set_config
1716
from sklearn.utils import _IS_32BIT
1817
from sklearn.externals import _pilutil
19-
from sklearn._build_utils.deprecated_modules import _DEPRECATED_MODULES
2018

2119
PYTEST_MIN_VERSION = '3.3.0'
2220

@@ -97,10 +95,3 @@ def pytest_configure(config):
9795
def pytest_unconfigure(config):
9896
import sys
9997
del sys._is_pytest_session
100-
101-
102-
# TODO: Remove when modules are deprecated in 0.24
103-
# Configures pytest to ignore deprecated modules.
104-
collect_ignore_glob = [
105-
os.path.join(*deprecated_path.split(".")) + ".py"
106-
for _, deprecated_path, _, _ in _DEPRECATED_MODULES]

doc/about.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@ in the FAQ.
3838

3939
:ref:`How you can contribute to the project <contributing>`
4040

41+
Triage Team
42+
-----------
43+
The following people are active contributors who also help with triaging
44+
issues, PRs, and general maintenance:
45+
46+
.. include:: triage_team.rst
47+
4148
Emeritus Core Developers
4249
------------------------
4350
The following people have been active contributors in the past, but are no

doc/authors.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
</div>
2020
<div>
2121
<a href='https://github.com/thomasjpfan'><img src='https://avatars2.githubusercontent.com/u/5402633?v=4' class='avatar' /></a> <br />
22-
<p>Thomas J Fan</p>
22+
<p>Thomas J. Fan</p>
2323
</div>
2424
<div>
2525
<a href='https://github.com/agramfort'><img src='https://avatars2.githubusercontent.com/u/161052?v=4' class='avatar' /></a> <br />

doc/governance.rst

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,11 @@ subject to a two-third majority of all cast votes as well as a simple majority
7171
approval of all the current TC members. TC members who do not actively engage
7272
with the TC duties are expected to resign.
7373

74-
The initial Technical Committee of scikit-learn consists of :user:`Alexandre Gramfort <agramfort>`,
75-
:user:`Olivier Grisel <ogrisel>`, :user:`Andreas Müller <amueller>`, :user:`Joel Nothman <jnothman>`,
76-
:user:`Hanmin Qin <qinhanmin2014>`, :user:`Gaël Varoquaux <GaelVaroquaux>`, and
77-
:user:`Roman Yurchak <rth>`.
74+
The Technical Committee of scikit-learn consists of :user:`Alexandre
75+
Gramfort <agramfort>`, :user:`Olivier Grisel <ogrisel>`, :user:`Adrin Jalali
76+
<adrinjalali>`, :user:`Andreas Müller <amueller>`, :user:`Joel Nothman
77+
<jnothman>`, :user:`Hanmin Qin <qinhanmin2014>`, :user:`Gaël Varoquaux
78+
<GaelVaroquaux>`, and :user:`Roman Yurchak <rth>`.
7879

7980
Decision Making Process
8081
=======================

0 commit comments

Comments
 (0)
0