I'm wondering if we should take a slightly different approach to dependencies, now that we're starting to rely more and more on external dependencies. My general thinking is that we could:
Include only a minimal basic set of very stable requirements in requirements.txt that support the minimum viable functionality of hypertools
Provide an optional set of requirements (potentially installable either as a whole or individually through a convenient provided command) for supporting the more "advanced" functionality that goes beyond the minimum viable set.
If the user tries to call some function or option that isn't supported given their installed package, we:
Output a warning that includes instructions for installing that feature
Throw an error
This will allow us to increase the reliability of the installation while still maintaining support for advanced users.
The goal is that: above all else, pip install hypertools should run without crashing and result in a minimum viable installation of hypertools.
I'm wondering if we should take a slightly different approach to dependencies, now that we're starting to rely more and more on external dependencies. My general thinking is that we could:
This will allow us to increase the reliability of the installation while still maintaining support for advanced users.
The goal is that: above all else,
pip install hypertools
should run without crashing and result in a minimum viable installation ofhypertools
.