339786b123
Merge pull request 'Support for nested/partial event hook filters' ( #252 ) from 251-nested-filters-on-event-hooks into master
...
Reviewed-on: platypush/platypush#252
Closes : #251
2023-04-26 01:55:27 +02:00
245472a4c5
Better event hooks filters.
...
- Support for nested attributes on event hook conditions. Things like
these are now possible:
```
from platypush.event.hook import hook
from platypush.message.event.entities import EntityUpdateEvent
@hook(EntityUpdateEvent, entity={"external_id": "system:cpu"})
def on_cpu_update_event(event: EntityUpdateEvent, **_):
print(event.args["entity"]["percent"])
```
- The scoring/regex extraction/partial string match logic in
`_matches_argument` is actually only needed for
`SpeechRecognizedEvent`. Other events don't need these features, and
event hooks may be actually triggered unexpectedly in case of partial
matches. Therefore, the "complex" `_matches_argument` has been moved
as an override only for `SpeechRecognizedEvent`, and all the other
events will perform simple key-value matching.
2023-04-26 01:45:58 +02:00
ee54e0edbf
Use a font-awesome spinner instead of an animated gif when loading entities
2023-04-25 16:42:01 +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
99382e4505
Merge pull request 'Fixed compatibility with SQLAlchemy >= 2.0' ( #250 ) from 239-sqlalchemy-2-compatibility into master
...
Reviewed-on: platypush/platypush#250
Closes : #239
2023-04-25 10:47:27 +02:00
9c93b793e3
Merge branch 'master' into 239-sqlalchemy-2-compatibility
2023-04-25 10:44:31 +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
440d70d9cf
LINT/format fixes.
2023-04-25 10:36:27 +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
f4e13d0cb0
No need for session.begin
in db.create_all
.
2023-04-24 23:57:47 +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
d33d760361
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:23:55 +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
8478245cde
Removed Mapped[Entity]
type annotation.
...
`Mapped` has been introduced only in SQLAlchemy 1.4, while Debian stable
still ships 1.3.
Removing the type annotation doesn't come with a big cost, but it keeps
Platypush compatible with Debian stable.
2023-04-24 21:48:52 +02:00
e955ffc018
Be more resilient in DateTimeWeather widget about custom temperature/humidity names or non-numeric data
2023-04-24 12:48:51 +02:00
5638c567ff
Show temperature and humidity on the DateTimeWeather widget upon sensor events only if the sensor data is numeric.
2023-04-24 10:59:45 +02:00
bfa296e7c5
Fixed dataclass JSON serialization
2023-04-24 01:18:33 +02:00
9c03b028d7
Be a bit more resilient if an upstream integration sent some empty entities
2023-04-24 00:44:16 +02:00
6711b26137
Support dataclass serialization in the standard message serializer.
2023-04-24 00:43:06 +02:00
dc3392c11d
Disk I/O stats are not always available and should therefore be optional.
2023-04-23 22:25:24 +02:00
8e7d444c02
Updated CHANGELOG
2023-04-23 21:19:31 +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
0fc05135df
Updated docs
2023-04-23 02:14:57 +02:00
512ced3e94
Updated dist files
2023-04-23 02:13:48 +02:00
6439e235d2
Updated caniuse dependency
2023-04-23 02:11:21 +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
259b42bdd6
Removed legacy backend.sensor.battery
.
2023-04-23 00:44:03 +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
f4036be52b
Extracted and refactored more common elements of the Entity components.
2023-04-22 17:19:23 +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
d473b5d836
Make the recursive entity merger/column set logic more resilient against ObjectDeletedError
2023-04-22 10:40:30 +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
44b8fd4b34
Support for disk
entities in the system
integration.
2023-04-20 16:26:51 +02:00
6b03451386
Better responsive alignment for the collapse toggler.
2023-04-20 16:26:05 +02:00
e8c96ad35d
Added convertTime
utility function
2023-04-20 02:27:58 +02:00
153d03d43f
Moved CPU percentage on the level of the CPU entity instead of a child entity.
2023-04-19 01:48:05 +02:00