* Use icmplib for ping when available
* Update homeassistant/components/ping/binary_sensor.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Revert "Update homeassistant/components/ping/binary_sensor.py"
This reverts commit 618f42512a.
* move it up so its easier to see
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Remove unnecessary exception re-wraps
* Preserve exception chains on re-raise
We slap "from cause" to almost all possible cases here. In some cases it
could conceivably be better to do "from None" if we really want to hide
the cause. However those should be in the minority, and "from cause"
should be an improvement over the corresponding raise without a "from"
in all cases anyway.
The only case where we raise from None here is in plex, where the
exception for an original invalid SSL cert is not the root cause for
failure to validate a newly fetched one.
Follow local convention on exception variable names if there is a
consistent one, otherwise `err` to match with majority of codebase.
* Fix mistaken re-wrap in homematicip_cloud/hap.py
Missed the difference between HmipConnectionError and
HmipcConnectionError.
* Do not hide original error on plex new cert validation error
Original is not the cause for the new one, but showing old in the
traceback is useful nevertheless.
* Improve next_rain sensor attributes
* Add log message to identify missing condition
* Add a condtion
* Set the coordinator for 1 hour rain forecast in English
* Attribut dict keys shorten
* reverse transalate the API results for next rain
* Use f string for the keys in the dict
* Remove Logging from state property
* Remove other logging from state property
We're not operating on the installed package anyway, and necessary
dependencies are handled with tox deps.
As a nice bonus side effect, doing this sidesteps breakage caused by
pip's (up to 20.2.2 at least) behavior of prepending site-packages to
sys.path in certain cases, which in turn results in failures e.g. if a
version of typing that is incompatible with the (now overridden)
stdlib is installed there. And that combined with also pip's behavior
of installing a default build system consisting of setuptools and
wheel under the hood when it sees our pyproject.toml without a
build-system defined would provoke the breakage before we have a
chance to uninstall typing. (There are ways around this too, but
skipping the install makes the issue moot at least with our current
dependency set.)