pySHV version 0.3.0 Added * `ValueClient.wait_for_change` that blocks task until value change is detected. * `ValueClient.prop_change_wait` that simplifies a common operation of waiting for a new value. * `ValueClient.get_snapshot` is now able to snapshot multiple paths or subscribed paths if no path is given. * `ValueClient.clean_cache` method to remove old entried for no longer subscribed paths. * `ValueClient.prop_get` now supports `max_age` parameter * Support for UDP/IP protocol * Initial support for Serial protocol * Ability to reset the client connection (`RpcClient.reset`) Changed * URL now uses field `location` instead of `host` as it is more descriptive considering the usage. * Login is now allowed for local socket because it can be used to elevate access rights of some clients without need to have multiple sockets. * `ValueClient` now caches new value for subscribed paths when `prop_get` is used and optionally right on `prop_set`. * `ValueClient.unsubscribe` now calls `ValueClient.clean_cache` on successful unsubscribe (this can be suppressed with argument). * `create_rpc_server` returns `RpcServer` instead of `asyncio.Server` Fixed * Running pyshvbroker as a standalone application not working * Packing of `Decimal` in ChainPack that in some cases packed invalid value * Unpacking of strings in Cpon that mangled UTF-8 encoding. * Packing of `str` in Cpon that invalidly escaped some characters. * `ValueClient.get_snapshot` no longer fails when node is not implementing `ls` method. * `ValueClient.is_subscribed` now correctly matches only paths for subscribed nodes and its children instead of just generic string prefix. * `ValueClient.prop_get` reports value change only when it really happened. * `ValueClient.prop_change_wait` implementation * `RpcUrl` uses local user's name instead of empty string * Handling of idle ping for `SimpleClient` when used only to listen * `pycp2cp` invocation with file