I've been trying to add support for pandas-dataframes and I stumbled upon this architectural issue:
Reading pandas-dataframes obviously require pandas as dependency. For features demanding extra dependencies the setuptools plugin mechanism is a perfect match: just add a new extras_require={'dataframes': 'pandas'} and the job is done.
But strangely, "plugins" are used as an elaborate method for on/off behavior; is there any reason not to preserve the setuptools semantics? that is:
- are dependencies installed? plugin is enabled.
- On/Off functionality is provided by separate preferences checkboxes that appear only if plugin installed.
Note that setuptools plugins maybe also be installed from folder.