Defer setup to avoid module import-time side-effects #13
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.
This PR makes several "friendly neighbour" changes to the Automation HAT library:
An experimental
Default
class, which shadows all the methods used in Automation HATsObjectCollection
class is used to trap calls to the library and callensure_setup
before handing them off to the correct class.The default class is triggered only once. After this default class has been triggered, it will be replaced by instances of the actual Relay, Input, Output, etc classes for subsequent calls.
The
setup
method will be called automatically by the first call to an Automation HAT method. It will raise aRuntimeError
if run again. If you want tosetup
with custom settings - ie:quiet
mode - thenautomationhat.setup()
should be the first thing you call after import.See here for details of the problems import-time side-effects can have: https://www.raspberrypi.org/forums/viewtopic.php?f=32&t=193502&p=1212488#p1212488