jMetal / jMetalPy

A framework for single/multi-objective optimization with metaheuristics
https://jmetal.github.io/jMetalPy/index.html
MIT License
515 stars 150 forks source link

Optional dependencies #57

Closed funky9000 closed 4 years ago

funky9000 commented 4 years ago

First of all congrats with this initiative, so far this seems a great optimization package!

I noticed that Pyspark and Dask are mandatory dependencies of this project. However, since a user is likely to only use one of those, or none at all, it makes the package as a whole unnecessarily heavy. This can be a burden when distributing this package as part of a larger application.

It might be better to make the various parallelization frameworks optional dependencies. This can be done with the 'extras_require' arg in setup.py (https://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-extras-optional-features-with-their-own-dependencies). It would probably also entail moving some import statements around.

benhid commented 4 years ago

This is definitely something I will take care of as soon as possible.

Thank you!!

benhid commented 4 years ago

Checkout >> setup.py

funky9000 commented 4 years ago

Awesome, many thanks! Works like a charm, nice implementation.