Repository navigation
Releases: mwatson2/pygaposa
Releases · mwatson2/pygaposa
Release list
0.2.7
Addresses the two newest pygaposa-related review comments on the Home Assistant integration PR (home-assistant/core#161442).
Security
- Do not log Firebase request URLs verbatim.
FirebaseAuth.sign_in,FirebaseAuth.refresh_id_tokenandFirestore._getpreviously logged the rawClientResponseat debug level; the sign-in and token-refresh URLs include?key=<api key>, so enabling debug logging leaked the configured Firebase API key. These now log only the method, query-stripped URL and status.
Fixed
- Make polling cancellation-safe. When a caller of
Device.update()/PollManager.wait_for_condition()is cancelled (e.g. an outer timeout expires), the waiter is now removed and the detached background polling task is cancelled when it was the last waiter. Previously the poll continued in the background and could later notify listeners with stale data after the caller had given up.
0.2.6
Addresses further feedback from the Home Assistant integration review (home-assistant/core#161442).
Fixed
- Track and finalize fire-and-forget command-poll tasks.
Motor/Groupcommands issued withwaitForUpdate=Falsepreviously created untrackedasynciotasks. These are now tracked on the device, their failures are logged instead of surfacing as "Task exception was never retrieved" errors (which could otherwise occur during an outage now that polling failures propagate), and they are cancelled byGaposa.close()so nothing keeps polling after shutdown. Gaposa.close()now cancels each device's outstanding background tasks and stops its polling before closing the session.PollManagergained aclose()method to support this.
0.2.5
Addresses feedback from the Home Assistant integration review (home-assistant/core#161442).
Security
- Redact the
authorization(Firebase bearer token) andauthheaders before writing request headers to the debug log, so enabling debug logging no longer leaks reusable credentials. - Remove the module-level
logging.basicConfig(level=logging.DEBUG)calls so the library no longer forces global debug logging on the consuming application.
Fixed
- Reuse the caller-supplied
aiohttpsession for Firebase requests instead of lettingFirebaseAppcreate its own, and close it onGaposa.close(). Previously a separate Firebase session was created and never closed, leaking a session per login/entry. - Propagate polling failures:
PollManager.execute()no longer swallows every exception; if polling keeps failing until the retry limit, the originating exception is raised soGaposa.update()fails instead of returning stale/empty data.
Changed
Gaposa.update()no longer fires per-device listeners by default (via anotifyListenersflag); command-driven polls still notify. This avoids a redundant intermediate update per device on every scheduled refresh.
Release 0.2.0
This release adds support for the state property on groups.