- open() raises ConnectionException from the SoCo error (B904), so the
cause stays attached.
- _check_wired_connection: the except Exception: pass (B110) now logs at
debug level, so a swallowed failure leaves a trace. A module logger is
new.
- nosec for the empty password default (B107): a Sonos speaker takes no
login, the argument exists for NAPALM's constructor signature.
- tests: raise AssertionError instead of assert False (B011).
run_device_action dispatched play, pause, stop, next/previous track,
set_volume:N and toggle_mute by string and returned
{success, action, message} instead of the DeviceActionResultDict its
contract names. The typed methods it called (play(), set_volume(), ...)
are the interface; napalm-device-types deprecates run_device_action.
BREAKING CHANGE: run_device_action is removed.
Closes#3