optional dependencies listed in setup.py as required
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Rapid Photo Downloader |
Fix Released
|
High
|
Damon Lynch |
Bug Description
colorlog and pyprind are listed in the README.rst as "optional, but highly recommended", and come with try/except blocks in the codebase to work even if they're not installed.
However, it's entirely impossible to run it in the first place, if either of those two are not installed. This is because they're listed in setup.py as install_requires, which are mandatory, not extras_require, which are used for declaring optional recommendations which enhance the software. See https:/
Since the program is started using setuptools entry_points generated scripts, this setuptools metadata is enforced at runtime no matter what.
...
Aside: you're currently misusing extras_require for dependencies that are only needed for given python versions... but you really should use the current best practice which is environment markers, as defined in https:/
Related branches
description: | updated |
Changed in rapid: | |
status: | New → Triaged |
milestone: | none → 0.9.10 |
importance: | Undecided → High |
assignee: | nobody → Damon Lynch (dlynch3) |
Changed in rapid: | |
status: | Triaged → Fix Committed |
Changed in rapid: | |
status: | Fix Committed → Fix Released |
Changed in rapid: | |
status: | Fix Released → In Progress |
milestone: | 0.9.10 → 0.9.11 |
status: | In Progress → Fix Committed |
Changed in rapid: | |
status: | Fix Committed → Fix Released |
Also PyGObject isn't listed as a dependency in the setup.py at all (though it is in the README and it's obvious that to use the typelibs listed as dependencies you'll need PyGObject too).