refactor: remove depends_on fields from heuristics and handle skips in problog
Summary
The purpose of this PR is to address #1052, and implement appropriate skip and error handling in all existing heuristics. This PR removes the depends_on field from heuristics and makes it a responsibility of the heuristic code to determine if it should be skipped or not. All skip handling is then done my the ProbLog logic.
Description of changes
The BaseHeuristicAnalyzer no longer has the depends_on field, and this has propagated to all other analyzers. The description for a SKIP result has been updated in line with issue #1052, and HeuristicAnalyzerValueErrors have replaced some SKIP results previously used when malformed data was encountered. Unit tests have been updated accordingly.
Some refactoring to the test_pypi_sourcecode_analyzer.py unit tests have also been done in this PR to address #1108, adding in temporary .ini config files to the unit tests as opposed to the existing mock objects.
Related issues
Closes #1052 and #1108.
Blockers
Currently blocked by #1147, as this is treated as a HeuristicAnalyzerValueError in this PR and causes integration tests to fail.
Checklist
- [x] I have reviewed the contribution guide.
- [x] My PR title and commits follow the Conventional Commits convention.
- [x] My commits include the "Signed-off-by" line.
- [x] I have signed my commits following the instructions provided by GitHub. Note that we run GitHub's commit verification tool to check the commit signatures. A green
verifiedlabel should appear next to all of your commits on GitHub. - [x] I have updated the relevant documentation, if applicable.
- [x] I have tested my changes and verified they work as expected.