MNT Add extra requirements in setup.py (#17328)
MNT Add extra requirements in setup.py (#17328)

* Add extra requirements

This list is based on requirements given in:

 - contributing.rst
 - build_doc.sh
 - README.rst

* Move extras_require in extra_setuptools_args

* Add versions for extra requirements

* Add variables for extra requirements min version

* (lint) Add extra space

* Change syntax to use f-strings

* Add joblib and threadpoolctl to extras_require

Numpy as Scipy were listed in the extras_require even though
they are necessary requirements.

This just add the other necessary requirements in extras_require
to keep follow the logic.

* Propose dict keys for extras_require

* Remove packing from extras_require

* Remove Cython from extras_require

* Remove install dependencies

* Move packages to appropriate sections

* Remove variables for packages versions

* Revert back to format syntax

This way python <=3.5 users will get appropriate error messages.
shyamalschandra/scikit-learn,xuewei4d/scikit-learn,huzq/scikit-learn,sergeyf/scikit-learn,TomDLT/scikit-learn,espg/scikit-learn,TomDLT/scikit-learn,ogrisel/scikit-learn,jakirkham/scikit-learn,manhhomienbienthuy/scikit-learn,lesteve/scikit-learn,shyamalschandra/scikit-learn,sergeyf/scikit-learn,AlexandreAbraham/scikit-learn,glemaitre/scikit-learn,sergeyf/scikit-learn,lesteve/scikit-learn,scikit-learn/scikit-learn,glemaitre/scikit-learn,bnaul/scikit-learn,jakirkham/scikit-learn,xuewei4d/scikit-learn,ivannz/scikit-learn,glemaitre/scikit-learn,scikit-learn/scikit-learn,kevin-intel/scikit-learn,vinayak-mehta/scikit-learn,anntzer/scikit-learn,bnaul/scikit-learn,xuewei4d/scikit-learn,manhhomienbienthuy/scikit-learn,saiwing-yeung/scikit-learn,jakirkham/scikit-learn,ivannz/scikit-learn,ndingwall/scikit-learn,TomDLT/scikit-learn,glemaitre/scikit-learn,vinayak-mehta/scikit-learn,sergeyf/scikit-learn,kevin-intel/scikit-learn,anntzer/scikit-learn,ivannz/scikit-learn,espg/scikit-learn,amueller/scikit-learn,amueller/scikit-learn,shyamalschandra/scikit-learn,manhhomienbienthuy/scikit-learn,amueller/scikit-learn,TomDLT/scikit-learn,AlexandreAbraham/scikit-learn,saiwing-yeung/scikit-learn,ndingwall/scikit-learn,ndingwall/scikit-learn,betatim/scikit-learn,huzq/scikit-learn,vinayak-mehta/scikit-learn,ivannz/scikit-learn,AlexandreAbraham/scikit-learn,betatim/scikit-learn,jakirkham/scikit-learn,xuewei4d/scikit-learn,ogrisel/scikit-learn,espg/scikit-learn,huzq/scikit-learn,lesteve/scikit-learn,betatim/scikit-learn,ogrisel/scikit-learn,lesteve/scikit-learn,espg/scikit-learn,kevin-intel/scikit-learn,bnaul/scikit-learn,scikit-learn/scikit-learn,anntzer/scikit-learn,anntzer/scikit-learn,ndingwall/scikit-learn,saiwing-yeung/scikit-learn,amueller/scikit-learn,bnaul/scikit-learn,shyamalschandra/scikit-learn,huzq/scikit-learn,manhhomienbienthuy/scikit-learn,scikit-learn/scikit-learn,vinayak-mehta/scikit-learn,AlexandreAbraham/scikit-learn,saiwing-yeung/scikit-learn,betatim/scikit-learn,kevin-intel/scikit-learn,ogrisel/scikit-learn