Utility functions around state changes.
Project description
Utility functions around state changes.
Latest release 20240214: Initial PyPI release.
Function delta(old, new, keys=None)
Return a mapping representing differences between the mappings
old
and new
for the specified keys
.
If keys
is not specified, the union of the keys of old
and new
is used.
The returned mapping has a key for each changed value.
If the key does not exist in new
the value is the MISSING
sentinel object otherwise it is new[key]
.
Values are compared using ==
; if that raises TypeError
the values are considered not equal.
Example:
d1 = {1: 2, 3: 4, 5: 6} d2 = {1: 2, 3: 44, 7: 8} diff = delta(d1, d2) diff # doctest: +ELLIPSIS {3: 44, 5: <object object at ...>, 7: 8} diff[5] is MISSING True
Function monitor(get_state, keys=None, *, ifunchanged=False, interval=0.3, runstate=None)
A generator yielding 3-tuples of (old,new,delta(old,new,keys))
at poll intervals of interval
seconds.
Parameters:
get_state
: a callable which polls the current state, returning a mappingkeys
: an optional iterable of keys of interest; if omitted, all the old and new mapping keys are examinedifunchanged
: optional flag, defaultFalse
; if true yield a tuple on every poll instead of only when a state change is seeninterval
: an optional interpolltime.sleep
period, default0.3
srunstate
: an optionalRunState
, whosecancelled
attribute will be polled for loop termination
Release Log
Release 20240214: Initial PyPI release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for cs.delta-20240214-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7ccb3fdae2750be01ceac1aa88ff966ba3d5960cc5104a09f7ccd81cb11f493 |
|
MD5 | 2f8849069d666133533ea91de4578474 |
|
BLAKE2b-256 | 33ab0c77e3a5418124a70a8bfe5004a817e38378384fda04e8c0d8ee134450ae |