feat: implement backend connection checks and add no_backend_required… #117
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 pull request introduces several changes to the
blinkstick
package, focusing on adding backend connection checks and improving the structure and functionality of the codebase. The most important changes include adding a new decorator to manage backend requirements, implementing a new exception for connection issues, and updating tests to reflect these changes.Backend connection management:
src/blinkstick/clients/blinkstick.py
: Added a__getattribute__
method to ensure all callable attributes require a backend unless marked with theno_backend_required
attribute.src/blinkstick/decorators.py
: Introduced theno_backend_required
decorator to mark methods that do not need a backend connection.Exception handling:
src/blinkstick/exceptions.py
: Added a newNotConnected
exception to handle cases where methods are called without a backend connection.Testing updates:
tests/clients/test_blinkstick.py
: Updated tests to include checks for backend connection requirements and added a new test to ensure all methods require a backend.Import reorganization:
src/blinkstick/clients/blinkstick.py
: Reorganized imports for better readability and maintainability.