You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Schedules are evaluated in the schedule's timezone. Previously the calendar day was taken from now in whatever timezone it was passed, so a Berlin schedule like 00:01–01:00 checked with a UTC timestamp resolved to the previous day and never became active (trackIT-Systems/wittypi4#9).
Without an explicit tz, the system timezone is now used including its DST rules (from TZ, else /etc/localtime). Previously the fixed UTC offset at construction time was used, so long-running processes were off by one hour after a DST change.
Added
local_tz() to resolve the system timezone with its DST rules.
This changelog.
Tests for all sun events (dawn, sunrise, noon, sunset, dusk) and offset formats, DST transitions, and consistency of prev_*/next_*/active(); 100% line and branch coverage.
Known bugs are documented as expected-failure tests: skip_days gap at the turn of the year, active() with a naive datetime, unparseable times resolving to midnight, RecursionError for large skip_days, and unvalidated negative skip_days.
Changed
Docstring examples are run as doctests.
CI runs on every push and tests Python 3.11–3.14.
Releases are created by CI on tag push: tests run first, then the package is built and attached to a GitHub release with the notes from this changelog.