8000 0.20postrc again by amueller · Pull Request #12151 · scikit-learn/scikit-learn · GitHub
[go: up one dir, main page]

Skip to content

0.20postrc again #12151

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 66 commits into from
Sep 24, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
8338b31
DOCS: noting y is present in one-class fit methods merely for API con…
raamana Aug 30, 2018
bfe2bb7
COSMIT Mimimal refactoring of gradient_boosting.py (#11921)
NicolasHug Aug 30, 2018
161e628
Set final version
jnothman Aug 30, 2018
08674f4
DOC Replace 'interesting' with 'better' for model_persistence (#11946)
rtlee9 Aug 30, 2018
c9c702e
DOC Update Anaconda download link
qinhanmin2014 Aug 30, 2018
e169167
MNT: Use `nrm2` to find the residuals squared (#11923)
jakirkham Aug 31, 2018
74c34f0
EXA Simplifying column transformer example by removing default values…
amueller Sep 1, 2018
8d25ff7
typo and formatting fixes in 0.20 doc (#11963)
rasbt Sep 1, 2018
4bf9051
FIX divide mnist features by 255 in mlp example (#11961)
amueller Sep 1, 2018
67280bf
MNT: remove pytest imported twice.
lesteve Sep 1, 2018
a7a8814
Remove unnecessary copy for float64 in sparsefuncs_fast (#11966)
massich Sep 2, 2018
8454857
ENH Uses gzip when caching in fetch_openml (#11830)
thomasjpfan Sep 2, 2018
d6f8f4f
DOC Format in DBSCAN
qinhanmin2014 Sep 3, 2018
443a729
DOC adding scikit-multilearn to related projects list (#11988)
niedakh Sep 3, 2018
3909395
TST FIX use match rather than message in pytest.raises (#12001)
wdevazelhes Sep 4, 2018
4c472f3
DOC note controversy on multiclass balanced accuracy definition (#11994)
jnothman Sep 5, 2018
475179d
MNT Use `fmax` when finding the maximum (#12005)
jakirkham Sep 5, 2018
3a95c57
DOC small changes in outlier detection documentation (#12003)
albertcthomas Sep 5, 2018
0728dc5
MAINT make pytest collection ignore folders with Python scripts (#12011)
ogrisel Sep 5, 2018
6c5a6e8
[MRG+1] break the tie in Meanshift in case cluster intensities are th…
adrinjalali Sep 5, 2018
3b10c05
DOC fix minor spacing issue in the iris dataset description (#12019)
gabrielecalvo Sep 5, 2018
6be146c
TST use urlopen monkeypatch for test_decode_* (#12020)
jnothman Sep 6, 2018
afd07e9
DOC gradient boosting fit() supports sparse X (#12022)
vivekk0903 Sep 6, 2018
9122de8
DOC: Add pytest version in documentation (#12002)
wdevazelhes Sep 6, 2018
e4d9ece
DOC fix for linnerud dataset (#12024)
papaonlegs Sep 6, 2018
09d9736
MAINT skip joblib vendor test on debian (#12027)
ogrisel Sep 6, 2018
9aeb864
MNT Fix utils.sparse import in neural_network.rbm (#12032)
jeremiedbb Sep 7, 2018
f47c360
MNT Revert the deprecation of min_samples_leaf and min_weight_fractio…
jnothman Sep 8, 2018
9de62e8
EXA use openml fetcher in plot_gpr_co2.py example (#12004)
maxcopeland Sep 8, 2018
dea10b4
CI Workaround to test numpy 1.8.2 and scipy 0.13.3 (#12042)
rth Sep 9, 2018
7b45087
DOC `sample_weight` removed from the docs in `SVR` class. (#12046)
Sep 11, 2018
e948cc2
MNT Unify and refactor strategy error (#12050)
JarnoRFB Sep 12, 2018
7ac7898
[MRG] DOC Examples added to the rest of linear models (#11975)
adrinjalali Sep 12, 2018
3c4201a
DOC Generated author list from github (#11708)
TomDLT Sep 12, 2018
c7ff8c5
ENH Allow scoring of dummies without testsamples (#11957)
JarnoRFB Sep 13, 2018
c625dc1
DOC Fix docstring inconsistency in nmf.py (#12063)
zjpoh Sep 13, 2018
09b8434
MAINT Fix invalid escape sequence (#12064)
adrinjalali Sep 13, 2018
48ae9ff
DOC fix typos in documentation. (#12059)
zdgriffith Sep 13, 2018
c53c2ea
DOC Include fetch_openml doc in user guide (#12065)
qinhanmin2014 Sep 13, 2018
c4f4285
MNT: Anonimize IP for Google Analytics (#12038)
rth Sep 13, 2018
2da2737
TST Use pytest.raises instead of legacy constructions (#12057)
rth Sep 13, 2018
bb0ab59
BUG always raise on NaN in OneHotEncoder for object dtype data (#12033)
jorisvandenbossche Sep 13, 2018
98e29a3
MAINT joblib 0.12.5 (#12066)
ogrisel Sep 13, 2018
7c360b7
ENH Adds drop in FeatureUnion (#11640)
thomasjpfan Sep 13, 2018
b287515
ENH Better error message for metrics of neighbors (#11914)
zjpoh Sep 13, 2018
0a7cc19
MNT Duplicate import in test_pipeline.py
qinhanmin2014 Sep 14, 2018
81139da
ENH Better error message for sparse metrics of neighbors (#12073)
zjpoh Sep 14, 2018
99557bf
MAINT: skip doctest for Python 2 (#12074)
glemaitre Sep 14, 2018
b60f313
fix typo
amueller Sep 14, 2018
44b9123
TST: skip test requiring internet using --skip-network (#12067)
glemaitre Sep 16, 2018
4978ed0
DOC Fix description of SVC intercept_ shape in user guide (#12070)
zdgriffith Sep 16, 2018
8e1e643
TST Ignore warnings in common test to avoid collection errors (#12093)
massich Sep 16, 2018
722211a
MNT Only checks warnings on latest depedendencies versions in CI (#12…
rth Sep 17, 2018
3590a77
[MRG] MNT Re-enable PyPy CI (#12039)
rth Sep 18, 2018
6f0133a
DOC BaggingRegressor missing default value for oob_score in docstring…
adrinjalali Sep 19, 2018
acc23c6
DOC Removing quotes from variant names. (#12113)
louib Sep 20, 2018
9b470f1
DOC Update fit_transform docstring of OneHotEncoder (#12117)
albertcthomas Sep 20, 2018
8a67ff0
DOC Typo in OneHotEncoder
qinhanmin2014 Sep 20, 2018
e6f7b91
Fix typo (#12126)
Mottl Sep 21, 2018
1dc0205
[MRG +1] ColumnTransformer: store evaluated function column specifier…
jorisvandenbossche Sep 21, 2018
f3e29a4
DOC Replaced the deprecated early_stopping parameter with n_iter_no_c…
Sriharsha-hatwar Sep 22, 2018
9476808
typo and formatting fixes in 0.20 doc (#11963)
rasbt Sep 1, 2018
673218c
[MRG] DOC covariance doctest examples (#12124)
adrinjalali Sep 24, 2018
ab1136d
DOC Removed duplicated doc in tree.rst (#11922)
NicolasHug Sep 24, 2018
55d4433
[MRG] Update test_metaestimators to pass y parameter when calling sco…
oliverrausch Sep 20, 2018
7331c3a
[MRG] Fix FutureWarnings in logistic regression examples (#12114)
ogrisel Sep 24, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 36 additions & 7 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,12 @@ jobs:
# Test examples run with minimal dependencies
- MINICONDA_PATH: ~/miniconda
- CONDA_ENV_NAME: testenv
- PYTHON_VERSION: 2
- NUMPY_VERSION: 1.8.2
# XXX: plot_gpc_xor.py fails with scipy 0.13.3
- SCIPY_VERSION: 0.14
- MATPLOTLIB_VERSION: 1.3
- SCIKIT_IMAGE_VERSION: 0.9.3
- PANDAS_VERSION: 0.13.1
- PYTHON_VERSION: "2"
- NUMPY_VERSION: "1.10"
- SCIPY_VERSION: "0.16"
- MATPLOTLIB_VERSION: "1.4"
- SCIKIT_IMAGE_VERSION: "0.11"
- PANDAS_VERSION: "0.17.1"
steps:
- checkout
- run: ./build_tools/circle/checkout_merge_commit.sh
Expand All @@ -65,6 +64,21 @@ jobs:
path: ~/log.txt
destination: log.txt

pypy3:
docker:
- image: pypy:3-6.0.0
steps:
- restore_cache:
keys:
- pypy3-ccache-{{ .Branch }}
- pypy3-ccache
- checkout
- run: ./build_tools/circle/build_test_pypy.sh
- save_cache:
key: pypy3-ccache-{{ .Branch }}-{{ .BuildNum }}
paths:
- ~/.ccache
- ~/.cache/pip

deploy:
docker:
Expand All @@ -89,6 +103,21 @@ workflows:
jobs:
- python3
- python2
- pypy3:
filters:
branches:
only:
- 0.20.X
- deploy:
requires:
- python3
pypy:
triggers:
- schedule:
cron: "0 0 * * *"
filters:
branches:
only:
- master
jobs:
- pypy3
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ matrix:
CYTHON_VERSION="*" PYAMG_VERSION="*" PILLOW_VERSION="*"
JOBLIB_VERSION="*" COVERAGE=true
CHECK_PYTEST_SOFT_DEPENDENCY="true" TEST_DOCSTRINGS="true"
SKLEARN_SITE_JOBLIB=1
SKLEARN_SITE_JOBLIB=1 CHECK_WARNINGS="true"
if: type != cron
# flake8 linting on diff wrt common ancestor with upstream/master
- env: RUN_FLAKE8="true" SKIP_TESTS="true"
Expand All @@ -58,7 +58,7 @@ matrix:
# installed from their CI wheels in a virtualenv with the Python
# interpreter provided by travis.
- python: 3.6
env: DISTRIB="scipy-dev"
env: DISTRIB="scipy-dev" CHECK_WARNINGS="true"
if: type = cron OR commit_message =~ /\[scipy-dev\]/

install: source build_tools/travis/install.sh
Expand Down
75 changes: 0 additions & 75 deletions AUTHORS.rst

This file was deleted.

6 changes: 3 additions & 3 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ scikit-learn requires:
**Scikit-learn 0.20 is the last version to support Python2.7.**
Scikit-learn 0.21 and later will require Python 3.5 or newer.

For running the examples Matplotlib >= 1.3.1 is required. A few examples
require scikit-image >= 0.9.3 and a few examples require pandas >= 0.13.1.
For running the examples Matplotlib >= 1.4 is required. A few examples
require scikit-image >= 0.11.3 and a few examples require pandas >= 0.17.1.

scikit-learn also uses CBLAS, the C interface to the Basic Linear Algebra
Subprograms library. scikit-learn comes with a reference implementation, but
Expand Down Expand Up @@ -120,7 +120,7 @@ Testing
~~~~~~~

After installation, you can launch the test suite from outside the
source directory (you will need to have the ``pytest`` package installed)::
source directory (you will need to have ``pytest`` >= 3.3.0 installed)::

pytest sklearn

Expand Down
9 changes: 8 additions & 1 deletion appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ environment:
- PYTHON: "C:\\Python37-x64"
PYTHON_VERSION: "3.7.0"
PYTHON_ARCH: "64"
CHECK_WARNINGS: "true"

- PYTHON: "C:\\Python27"
PYTHON_VERSION: "2.7.8"
Expand Down Expand Up @@ -72,7 +73,13 @@ test_script:
# installed library.
- mkdir "../empty_folder"
- cd "../empty_folder"
- pytest --showlocals --durations=20 --pyargs sklearn
- ps: >-
if (Test-Path variable:global:CHECK_WARNINGS) {
$env:PYTEST_ARGS = "-Werror::DeprecationWarning -Werror::FutureWarning"
} else {
$env:PYTEST_ARGS = ""
}
- "pytest --showlocals --durations=20 %PYTEST_ARGS% --pyargs sklearn"
# Move back to the project folder
- cd "../scikit-learn"

Expand Down
4 changes: 4 additions & 0 deletions build_tools/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Makefile for maintenance tools

authors:
python generate_authors_table.py > ../doc/authors.rst
9 changes: 6 additions & 3 deletions build_tools/circle/build_test_pypy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,16 @@ source pypy-env/bin/activate
python --version
which python

pip install --extra-index https://antocuni.github.io/pypy-wheels/ubuntu numpy==1.14.4 Cython pytest
pip install --extra-index https://antocuni.github.io/pypy-wheels/ubuntu numpy Cython pytest
pip install "scipy>=1.1.0" sphinx numpydoc docutils

ccache -M 512M
export CCACHE_COMPRESS=1
export PATH=/usr/lib/ccache:$PATH
export LOKY_MAX_CPU_COUNT="2"

pip install -e .
pip install -vv -e .

make test
python -m pytest sklearn/
python -m pytest doc/sphinxext/
python -m pytest $(find doc -name '*.rst' | sort)
117 changes: 117 additions & 0 deletions build_tools/generate_authors_table.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
"""
This script generates an html table of contributors, with names and avatars.
The list is generated from scikit-learn's teams on GitHub, plus a small number
of hard-coded contributors.

The table should be updated for each new inclusion in the teams.
Generating the table requires admin rights.
"""
from __future__ import print_function

import sys
import requests
import getpass

try:
# With authentication: up to 5000 requests per hour.
print("user:", file=sys.stderr)
user = input()
passwd = getpass.getpass()
auth = (user, passwd)
except IndexError:
# Without authentication: up to 60 requests per hour.
auth = None

ROW_SIZE = 7
LOGO_URL = 'https://avatars2.githubusercontent.com/u/365630?v=4'


def group_iterable(iterable, size):
"""Group iterable into lines"""
group = []
for element in iterable:
group.append(element)
if len(group) == size:
yield group
group = []
if len(group) != 0:
yield group


def get_contributors():
"""Get the list of contributor profiles. Require admin rights."""
# get members of scikit-learn teams on GitHub
members = []
for team in [11523, 33471]:
for page in [1, 2]: # 30 per page
members.extend(requests.get(
"https://api.github.com/teams/%d/members?page=%d"
% (team, page), auth=auth).json())

# keep only the logins
logins = [c['login'] for c in members]
# add missing contributors with GitHub accounts
logins.extend(['dubourg', 'jarrodmillman', 'mbrucher', 'thouis'])
# add missing contributors without GitHub accounts
logins.extend(['Angel Soler Gollonet'])
# remove duplicate
logins = set(logins)
# remove CI
logins.remove('sklearn-ci')

# get profiles from GitHub
profiles = [get_profile(login) for login in logins]
# sort by last name
profiles = sorted(profiles, key=key)

return profiles


def get_profile(login):
"""Get the GitHub profile from login"""
profile = requests.get("https://api.github.com/users/%s" % login,
auth=auth).json()
if 'name' not in profile:
# default profile if the login does not exist
return dict(name=login, avatar_url=LOGO_URL, html_url="")
else:
if profile["name"] is None:
profile["name"] = profile["login"]

# fix missing names
missing_names = {'bthirion': 'Bertrand Thirion',
'dubourg': 'Vincent Dubourg',
'Duchesnay': 'Edouard Duchesnay',
'Lars': 'Lars Buitinck',
'MechCoder': 'Manoj Kumar'}
if profile["name"] in missing_names:
profile["name"] = missing_names[profile["name"]]
return profile


def key(profile):
"""Get the last name in lower case"""
return profile["name"].split(' ')[-1].lower()


contributors = get_contributors()

print(".. raw :: html\n")
print(" <!-- Generated by gen_authors.py -->")
print(" <table>")
print(" <col style='width:%d%%' span='%d'>"
% (int(100 / ROW_SIZE), ROW_SIZE))
print(" <style>")
print(" img.avatar {border-radius: 10px;}")
print(" td {vertical-align: top;}")
print(" </style>")
for row in group_iterable(contributors, size=ROW_SIZE):
print(" <tr>")
for contributor in row:
print(" <td>")
print(" <a href='%s'><img src='%s' class='avatar' /></a> <br />"
% (contributor["html_url"], contributor["avatar_url"]))
print(" <p>%s</p>" % contributor["name"])
print(" </td>")
print(" </tr>")
print(" </table>")
7 changes: 7 additions & 0 deletions build_tools/travis/test_script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,13 @@ run_tests() {
if [[ "$COVERAGE" == "true" ]]; then
TEST_CMD="$TEST_CMD --cov sklearn"
fi

if [[ -n "$CHECK_WARNINGS" ]]; then
TEST_CMD="$TEST_CMD -Werror::DeprecationWarning -Werror::FutureWarning"
fi

set -x # print executed commands to the terminal

$TEST_CMD sklearn

# Going back to git checkout folder needed to test documentation
Expand Down
Loading
0