35cb72f5aa
Do a lazy plugin initialization in the Variable class
...
This is useful for two reason:
1. Slightly faster variable initialization times.
2. The cached variable object won't fail on the next `.get()`/`.set()`
if the `db` or `redis` plugins have failed for some reason.
2022-06-07 00:04:29 +02:00
820a1c8184
Don't raise a pytest warning upon the asyncio "No event loop" warning
2022-04-27 23:25:14 +02:00
f7c594cc3f
get_bus() should return a default RedisBus() instance if the main bus is not registered
2022-04-02 22:47:23 +02:00
34e1e673e8
CHANGELOG update and LINT fixes
2022-03-12 02:04:07 +01:00
c3934e2a7e
Script API for platform variables [ closes #206 ]
...
Added utility `platypush.context.Variable` class to simplify the
interaction with platform variables in custom Python scripts.
2022-03-12 01:51:18 +01:00
1914322fda
FIX: get_plugin methods should never swallow errors in case of failed initialization
2022-02-07 01:47:38 +01:00
371dd6da0a
Added sun
plugin [ closes #194 ]
2021-07-22 01:02:15 +02:00
Fabio Manganiello
c269c62fe6
Refactored logging names
2020-09-27 01:33:38 +02:00
Fabio Manganiello
96c9d5460a
Log the underlying error cause too if get_plugin fails
2019-07-16 16:51:27 +02:00
Fabio Manganiello
ba800ef8e2
Normalized all local players so that they handle events and return statuses in the same format
2019-06-23 02:16:20 +02:00
Fabio Manganiello
27e4ea5b5b
Support for both enabled and disabled flags on plugin level
2019-02-13 15:14:35 +01:00
Fabio Manganiello
35292968ed
Made get_plugin lock reentrant
2019-01-08 16:33:57 +01:00
Fabio Manganiello
ef241b3769
More robust Pushbullet reconnection logic
2018-12-24 12:31:38 +01:00
Fabio Manganiello
b911d46315
Create a new event loop in the Pushbullet backend
2018-12-24 11:37:18 +01:00
Fabio Manganiello
92a3759721
Added websocket backend and plugin
2018-10-26 21:55:49 +02:00
Fabio Manganiello
44962dd919
Removed timeout from get_plugin lock; Added Redis server to tests configuration
2018-09-20 10:59:18 +00:00
Fabio Manganiello
6bbae19d39
Lock timeout and reset in case a plugin takes too long to initialize or the lock is incorrectly marked as locked in multiprocess context
2018-09-18 20:25:31 +02:00
Fabio Manganiello
db5d3e6e3f
Prevent the plugin from being initialized again within the lock scope if another thread had it initialized in the meantime
2018-09-18 19:19:41 +02:00
Fabio Manganiello
1d50e91b27
Removed unneeded lock acquire
2018-09-16 23:45:25 +02:00
Fabio Manganiello
a6339de159
Assigning plugins[plugin_name] inside of the synchronized block
2018-08-22 02:32:53 +02:00
Fabio Manganiello
4c6b38a6e2
Double lock check to make get_plugin thread-safe
2018-08-22 02:11:51 +02:00
Fabio Manganiello
105d5bb2fc
Lock to prevent race conditions where multiple initializations of a plugin can occur
2018-08-22 02:04:16 +02:00
Fabio Manganiello
67ebe10c60
typo
2018-07-15 02:57:12 +02:00
Fabio Manganiello
4ebdda80f9
More robust support for Redis configuration in web socket server
2018-07-08 12:24:33 +02:00
Fabio Manganiello
4da74b1096
Refactored logging submodule
2018-06-06 20:09:23 +02:00
Fabio Manganiello
e5e1270380
Exposed a global context.get_bus() method to allow plugins to send events to the main bus
2018-04-24 20:07:16 +02:00
Fabio Manganiello
8b733fb859
- Added IR sensor backend
...
- Fixed default power offsets
- Changed threshold distance for ultrasound sensor
- Fixed power multiplier coefficient
2018-03-04 17:55:48 +01:00
Fabio Manganiello
48363c94e4
s/ModuleNotFoundError/ImportError/g
2018-02-20 22:58:13 +01:00
Fabio Manganiello
76f7bbc529
Refactored HTTP request plugin and fixed bug on the plugin name
2018-01-12 15:18:06 +01:00
Fabio Manganiello
92b691041e
Added more general media control plugin, #10
2017-12-27 10:19:35 +01:00
Fabio Manganiello
6928e440bc
Support for Flic button events
2017-12-24 13:15:37 +01:00
Fabio Manganiello
18830232a4
Don't trigger the default Assistant response if the phrase matched an internal rule. Also, backends should be easily accessible through a context module (more context variables will be added there)
2017-12-24 02:35:49 +01:00