Add hardware ABCs to encode platform implementation requrements #3023
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Refs #3022
This is just a draft to demonstrate the idea I've proposed in the related issue.
Nothing here is a strong recommendation, and I wouldn't be surprised if there are better ways to organise this or approach the problem overall. Mostly focused on making it easy to talk about the idea in the issue. I've only tested it with the dummy platform, so if there are circular importing issues related to defnining it directly in the
toga.hardware.*
modules, I haven't uncovered those yet 🤓.For this PR to be complete, the new ABCs should be used in each platform without modifications required beyond adding the new base class. Of course a changelog entry would be needed as well, and perhaps an update to the prose contribution documentation to point platform implementers to these base classes existence.
PR Checklist: