Issues/do not inherit pseudoplugins
Ok, this aims to remove any traces of inheritance or pseudo-inheritance, by using only modular classmethods and ensuring each component lists its requirements (and the requirement checking should ensure everything can operate correctly).
Making this change pointed out that lsmod was using modules that were pulled in only by the "module display plugin" functionality. Each plugin now lists exactly what it requires without trying to pull it in from the module. This also improves a number of typing inaccuracies that had been present.
What does this mean?:
'lsmod was using modules that were pulled in only by the "module display plugin"'
Is there a ticket or Slack discussion about whatever triggered this PR? I want to understand what went wrong to avoid in future code.
Yeah, it's all in #1773.
lsmod was using modules that were pulled in only by the "module display plugin"
lsmod used some requirements in its code that it relied on coming from the + linux_utilities_module_display_plugin.get_requirements() that was being added to lsmod's requirements. This meant that it couldn't stand alone without that. It's all fixed now by adding the specific requirement, it just shows that trying to blend two bits of code into a single plugin muddies which bits of code do what.
This never received the requested review but is holding up #1773 which is increasingly a problem, so merging (because tests for all the plugins pass) and we'll sort out issues down the road...