5f2d6dfeb5
Added utils.rst_to_html
action.
2023-05-14 15:05:24 +02:00
3c83e7f412
A faster implementation for the inspect.get_*
methods.
...
Plugin/backend lookup is now done by inspecting the manifest files
instead of searching all the subpackages.
2023-05-13 13:44:46 +02:00
cfedcd701e
Performance improvements when loading the Tensorflow plugin.
...
The Tensorflow module may take a few seconds to load the first time and
slow down the first scan of the plugins.
All the Tensorflow imports should therefore be placed close to where
they are used instead of being defined at the top of the module.
2023-05-11 19:48:22 +02:00
41233138ff
Blackened inspect
module and extracted model defs to adjacent module.
2023-05-09 21:58:02 +02:00
56dc8d0972
Migrated the webapp to Tornado.
...
It was just too painful to find a combination of versions of gunicorn,
gevent, eventlet, pyuwsgi etc. that could work on all of my systems.
On the other hand, Tornado works out of the box with no headaches.
Also in this commit:
- Updated a bunch of outdated/required integration dependencies.
- Black'd and LINTed a couple of old plugins.
2023-05-08 02:06:45 +02:00
d1f0e1976c
Exclude squashfs/loopback mounts from system.disk_info
.
2023-05-06 18:53:16 +02:00
373788377b
Created two separate actions under variable
to delete/unset.
...
`delete` will actually remove the record from the database (same as
`unset`'s new behaviour), while `unset` will set it to null without
deleting it (same as the `unset`'s previous behaviour).
2023-05-05 02:21:18 +02:00
2c254e8eb9
numpy and PIL should be required dependencies for all camera plugins.
2023-05-04 23:44:42 +02:00
3febfabdd7
Bluetooth LE blacklisted device notices moved info -> debug
.
2023-05-01 22:10:06 +02:00
9d82ce6ea9
Noisy beacons notice back to debug level.
...
There's just too many of them and it ends up polluting the logs.
2023-05-01 21:25:42 +02:00
5d4bffa119
Fixed retrieval of entities
plugin.
2023-04-30 10:42:05 +02:00
3d7755159f
Improved compatibility for traceback.format_exception
.
...
The new syntax, that only requires an `Exception` instance to be passed
to the function, is only compatible with Python >= 3.10.
2023-04-30 00:38:17 +02:00
6b28d16ccf
Exclude more noisy Bluetooth beacons.
...
Exclude any beacons from devices with no name, no children other than
services, and with none of those services being public/known.
2023-04-29 23:34:24 +02:00
f764d1b4fb
Noisy Bluetooth beacons notices should be logged on info level.
2023-04-29 23:18:12 +02:00
e96885a805
Delete the entity on variable.unset
instead of setting it to null.
2023-04-29 18:21:57 +02:00
a3888be216
The robustness check in case of missing fields should also apply to other system entities.
2023-04-29 16:08:38 +02:00
8c9768b05e
Robustness check for system disk entities.
...
When the system information is still loading it may happen that the
device associated to the disk hasn't been loaded yet.
2023-04-29 16:04:57 +02:00
a20065c649
Exposed _entities
utility property in Plugin
.
...
It can be used by other plugins to easily access the `entities` plugin,
along the lines of `db` and `redis`.
2023-04-29 15:50:31 +02:00
68d8befa34
Removed some vestigial commented code.
2023-04-29 15:28:44 +02:00
23b851e9d7
variable.status
robustness fix.
...
`entities.transform_entities` will pass back an empty list instead of an
empty dict if no entities were found, and the function should be able to
handle it.
2023-04-29 15:24:58 +02:00
e919bf95ad
Print the full stack trace if a plugin failed in entities.scan
2023-04-29 15:14:13 +02:00
f40f956507
Migrated variable
table to the new entities framework.
2023-04-29 11:36:55 +02:00
8fe61217ce
Added _db
and _redis
properties to the Plugin class.
...
Plugins can now access the database and Redis APIs directly without
having to run their own `get_plugin` validation logic.
2023-04-29 11:35:57 +02:00
87db5ca5f3
Exclude all iBeacon devices by default (it's not only Apple, it's everyone)
2023-04-26 14:17:59 +02:00
10d587efd0
FIX: Possible assert evaluation error.
...
Some versions/configurations of Python may throw `Boolean value of this
clause is not defined` here.
2023-04-26 02:25:28 +02:00
cb288deb71
Exclude more noisy BLE beacons.
...
Excluding Apple iBeacons and devices with no name and no services.
2023-04-25 16:19:11 +02:00
dd60b8924d
Wrap the PRAGMA
statement in sqlalchemy.text
.
...
SQLAlchemy 2 no longer supports raw strings passed to `.execute()`
methods.
2023-04-25 10:41:37 +02:00
4cc88fcf5f
Rewritten the variable
plugin to use SQLAlchemy's ORM.
...
This removes the need for raw SQL statements and CREATE TABLE statements
that may be engine-specific.
2023-04-25 10:35:12 +02:00
e1cd22121a
Removed connection.begin()
pattern from the db
plugin.
...
SQLAlchemy should automatically begin a transaction on
connection/session creation. Plus, `.begin()` messes up things with
SQLAlchemy 2, which has `autobegin` enabled with no easy way of
disabling it.
2023-04-25 10:31:49 +02:00
37722d12cd
No need for session.begin
in db.create_all
.
2023-04-24 23:55:50 +02:00
6fa179e769
LINT fixes
2023-04-24 23:49:31 +02:00
91df18f7b5
Better way to import declarative_base
from SQLAlchemy.
...
Import `declarative_base` in a way that is compatible with any
SQLAlchemy version between 1.3 and 2.x.
2023-04-24 23:21:39 +02:00
87889142e0
Fixed compatibility with SQLAlchemy >= 2.0 in the db
plugin.
2023-04-24 22:52:17 +02:00
dc3392c11d
Disk I/O stats are not always available and should therefore be optional.
2023-04-23 22:25:24 +02:00
0cd28f1040
libbluetooth-dev is a required dependency to build pybluez on Debian-derived distros
2023-04-23 18:59:37 +02:00
9c1855e4c0
Fixed docstring for zigbee.mqtt
plugin.
2023-04-23 13:03:10 +02:00
27b1048789
Converted system.processes
to the new data model.
2023-04-23 02:08:43 +02:00
387616ea96
Convert system.connected_users
to the new data model.
2023-04-23 01:12:07 +02:00
763d9e06ec
Increased default poll_interval
for system
plugin to 60 seconds.
2023-04-23 00:42:44 +02:00
a72c32cb00
Added battery entity support to system
plugin.
2023-04-23 00:41:21 +02:00
b3440ab96b
Added support for fan sensors on the system
plugin.
2023-04-23 00:08:27 +02:00
45d5f439be
Added support for system temperature sensor entities.
2023-04-22 22:42:11 +02:00
1b048e1952
s/net_connections/network_connections/g
2023-04-22 17:19:24 +02:00
374f936c1f
Merged network_stats
into NetworkInterface
model.
2023-04-22 17:19:24 +02:00
e213941791
s/net_io_counters/network_info/g
2023-04-22 17:19:23 +02:00
977b55dea9
Merged network addresses into NetworkInterface
model.
2023-04-22 17:19:23 +02:00
ebe79ac29a
Refactored system schema dataclasses.
...
- `percent_field` should be declared on `platypush.schemas.dataclasses`
level, since it's not specific to the `system` plugin.
- Added a common `SystemBaseSchema` that takes care of calling
`_asdict()` if the object is passed as a `psutil` object instead of a
dict.
2023-04-22 17:19:23 +02:00
2d618188c8
Print the full exception stack trace if .status
fails.
2023-04-22 17:19:23 +02:00
b3a0896485
Converted NetworkConnection
schema/response.
2023-04-22 17:19:22 +02:00
98a300c4b1
Added NetworkInterface
entities to system
plugin.
...
Plus, `platypush.schemas.system` has now been split into multiple
submodules to avoid a single-file mega-module with all the system
schemas definitions.
2023-04-21 00:45:15 +02:00