Refactor, bug fixes, and improvements - #1
Merged
FutureTense merged 4 commits intoDec 9, 2020
Conversation
raman325
force-pushed
the
refactor_improvements_and_bug_fixes
branch
from
December 7, 2020 22:28
7fcf419 to
b688839
Compare
firstof9
requested changes
Dec 7, 2020
Collaborator
|
These changes look good to me. I like the changes auto updating the code slots data myself. |
5 tasks
firstof9
approved these changes
Dec 8, 2020
firstof9
requested changes
Dec 9, 2020
firstof9
approved these changes
Dec 9, 2020
firstof9
left a comment
Collaborator
There was a problem hiding this comment.
Changes look good now 👍
New Features - cleanup packages folder on entry removal Changes - switch to using relative path for CONF_PATH to reduce changes of error (existing config entries will be updated automatically) Bug Fixes - Switch _generate_package from async to sync because it does I/O on the filesystem - fix output file not being opened with context manager (so never closed) - fix sensor creation loop to only create necessary sensors instead of sensors for all code slots - fix CodeSlotsData sensor (now a DataUpdateCoordinator) logic for OZW integrations Code Cleanup/Improvements - move CodeSlotsData logic into DataUpdateCoordinator since that's what it is being used for - reduce polling frequency significantly by only polling any time a slot is set or cleared with a backup hourly polling in case updates are made outside of KeyMaster (this will significantly improve battery life over current implementation with the same level of accuracy) - Update config entry using update method instead of directly manipulating attributes - use slugify when fixing CONF_NAME - use os.path.join to create paths for better OS compatibility - switch to using f-strings - only attempt cleanup of packages directory if it exists - always rely on entry.data so that options is only used to capture options updates - simplify code and reduced repeat logic by moving things into common functions - raise Exceptions in services when there is a failure (this will be shown in UI) - use more list comprehensions - switch while loops to for loops - added typing - gitignore venv - improve debug messaging
raman325
force-pushed
the
refactor_improvements_and_bug_fixes
branch
from
December 9, 2020 17:55
e5cd1a9 to
cdef9b1
Compare
github-actions Bot
pushed a commit
that referenced
this pull request
Dec 9, 2020
* refactor, bug fixes, and improvements New Features - cleanup packages folder on entry removal Changes - switch to using relative path for CONF_PATH to reduce changes of error (existing config entries will be updated automatically) Bug Fixes - Switch _generate_package from async to sync because it does I/O on the filesystem - fix output file not being opened with context manager (so never closed) - fix sensor creation loop to only create necessary sensors instead of sensors for all code slots - fix CodeSlotsData sensor (now a DataUpdateCoordinator) logic for OZW integrations Code Cleanup/Improvements - move CodeSlotsData logic into DataUpdateCoordinator since that's what it is being used for - reduce polling frequency significantly by only polling any time a slot is set or cleared with a backup hourly polling in case updates are made outside of KeyMaster (this will significantly improve battery life over current implementation with the same level of accuracy) - Update config entry using update method instead of directly manipulating attributes - use slugify when fixing CONF_NAME - use os.path.join to create paths for better OS compatibility - switch to using f-strings - only attempt cleanup of packages directory if it exists - always rely on entry.data so that options is only used to capture options updates - simplify code and reduced repeat logic by moving things into common functions - raise Exceptions in services when there is a failure (this will be shown in UI) - use more list comprehensions - switch while loops to for loops - added typing - gitignore venv - improve debug messaging * fix typo * fix clear code logic and make it less ambiguous * styling consistency
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Proposed change
Hi there, I started down this path because:
I didn't make it very far on 2 but I did make good progress on 1 and in the middle of it added a bunch of scope creep. I apologize for the size of the PR, but I thought it would be a good way to make this more maintainable going forward. If you see some changes you'd like me to make, or if there are parts of the refactor you would like me to revert, let me know. I haven't changed much of the actual logic as you'll see in the notes below since it all comes from the package templates and the sensors.
NOTE: I have tested this and as far as I can tell, everything is working as expected, but my integration hasn't been working since before my code changes (specifically, the PIN gets set but
PIN Statusshows asConnectingforever), so it would be great if someone else could test itNew Features
Changes
Bug Fixes
Code Cleanup/Improvements
TODO (in future PRs)
Type of change
Additional information