Fix handling of `NoneType` for torrents in `count_torrents_in_states` function
Added a check to handle cases where the 'torrents' data is None, avoiding a `TypeError` when attempting to get the length of a `NoneType` object. The function now returns 0 if 'torrents' is None, ensuring robust behavior when no torrent data is available.
* Change qBittorrent lib to qbittorrentapi
* Fix tests
* Convert qbittorrent service to new lib
* Add missing translation key
* Catch APIConnectionError in service call
* Replace type ignore by Any typing
* Remove last type: ignore
* Use lib type for torrent_filter
* Change import format
* Fix remaining Any type
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Upgrade QBittorrent integration to show torrents
This brings the QBittorrent integration to be more in line with the Transmission integration. It updates how the integration is written, along with adding sensors for Active Torrents, Inactive Torrents, Paused Torrents, Total Torrents, Seeding Torrents, Started Torrents.
* Remove unused stuff
* Fix codeowners
* Correct name in comments
* Update __init__.py
* Make get torrents a service with a response
* Update sensor.py
* Update sensor.py
* Update sensor.py
* Add new sensors
* remove service
* more removes
* more
* Address comments
* cleanup
* Update coordinator.py
* Fix most lint issues
* Update sensor.py
* Update sensor.py
* Update manifest.json
* Update sensor class
* Update sensor.py
* Fix lint issue with sensor class
* Adding codeowners
* Update homeassistant/components/qbittorrent/__init__.py
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Add deprecated_yaml issue to the homeassistant integration
* Update test
* Update homeassistant/components/homeassistant/strings.json
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Include DOMAIN in issue_id
* Update test
---------
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
catch LoginException directly in QBittorrentSensor init
Since the `exception` arg in QBittorrentSensor `__init__` is always
LoginException, we catch LoginException directly in `__init__` instead
of passing LoginException as an argument.
* 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.
* Consolidate
* Fix tests
* Update imports
* Fix import
* Use importlib because integration and package share name
* Fix more tests
* Update .coveragerc and CODEOWNERS
2019-03-16 20:44:05 -07:00
Renamed from homeassistant/components/sensor/qbittorrent.py (Browse further)