Utility functions around state changes.
Project description
Utility functions around state changes.
Latest release 20240622: Changes to accomodate dropping BaseCommandOptions.runstate.
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: Optional[cs.resources.RunState] = <function uses_runstate.<locals>.<lambda> at 0x1072e81f0>)
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 20240622: Changes to accomodate dropping BaseCommandOptions.runstate.
Release 20240316: Fixed release upload artifacts.
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-20240622-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6add845557e1280f0246406eb6a66c30cf67c1dfa29ed0e375c46688418950fc |
|
MD5 | 886c96beb7e6f7b31995abc08d54c254 |
|
BLAKE2b-256 | 783543833ba1260d305d0c0a14310b79a78ee695ffa9287befa96a38095a2fe1 |