dd3a701a2e
Full rewrite of platypush.utils.manifest
.
...
The new version encapsulates all the utility functions into three
classes - `Manifest`, `Manifests` and `Dependencies`.
2023-08-19 13:28:40 +02:00
1825b492b3
Replaced Config.workdir
with Config.get_workdir()
.
...
Again, Python < 3.9 doesn't like class properties.
2023-08-19 13:21:24 +02:00
7157936b87
Added get_remaining_timeout utility function.
2023-08-14 23:17:50 +02:00
dc1a152433
Added get_default_pid_file
utility method.
2023-08-14 10:47:25 +02:00
e9a568fdd2
Unified interface to retrieve the Redis bus configuration.
...
A common `utils.get_redis_conf` has been created to handle the cascade
fallback logic used to retrive the default Redis configuration.
2023-07-24 01:04:13 +02:00
3e3d47aa44
Check first the configuration of the Redis plugin and then that of the backend.
2023-07-24 00:26:49 +02:00
0dc380fa94
Removed dependency from prctl.
...
Also, black'd and LINT-fixed some files that hadn't been touched in a
while.
2023-07-23 19:17:30 +02:00
61ea3d79e4
Large refactor for the inspect
plugin.
...
More common logic has been extracted and all the methods and classes
have been documented and black'd.
2023-05-17 00:05:22 +02:00
42d468c895
get_lock
should raise a TimeoutError if lock.acquire
is False
2023-03-31 22:31:32 +02:00
1efaff878e
Rewritten serial
plugin.
...
`backend.serial` has been removed and the polling logic merged into the
`serial` plugin.
The `serial` plugin now supports the new entity engine as well.
2023-03-31 14:31:45 +02:00
fde834c1b1
More LINT fixes + refactors
2023-02-05 22:00:50 +01:00
4849e14414
LINT fixes for the utils
module + additional documentation
2023-02-05 18:05:41 +01:00
5a47308516
Merge branch 'master' into 29-generic-entities-support
2022-12-10 15:57:28 +01:00
5ba3fa1b5b
FIX: Parenthesized context managers are only available in Python >= 3.10
...
Since Parenthesized context managers are only supported on very recent
versions of Python (thanks black for breaking back-compatibility), we
should still use the old multiline syntax - it's not worth breaking
compatibility with Python >= 3.6 and < 3.10 just to avoid typing a
backslash.
2022-12-08 12:28:36 +01:00
ba1681fc22
Merge branch 'master' into 29-generic-entities-support
2022-11-21 12:36:01 +01:00
a2c8e27bd8
Removed PyJWT dependency.
...
PyJWT is a very brittle and cumbersome dependency that expects several
cryptography libraries to be already installed on the system, and it can
lead to hard-to-debug errors when ported to different systems.
Moreover, it installs the whole `cryptography` package, which is several
MBs in size, takes time to compile, and it requires a Rust compiler to
be present on the target machine.
Platypush will now use the Python-native `rsa` module to handle JWT
tokens.
2022-11-21 12:30:38 +01:00
26ffc0b0e1
Use Redis instead of an in-process map to store the entity/plugin registry
...
This is particularly useful when we want to access the registry from
another process, like the web server or an external script.
2022-04-07 00:18:11 +02:00
1914322fda
FIX: get_plugin methods should never swallow errors in case of failed initialization
2022-02-07 01:47:38 +01:00
195ae5c488
Create application ngrok tunnel method moved to utils
2021-11-07 11:35:47 +01:00
64c402b1c0
[ #115 ] Added google.maps.get_travel_time
method
2021-10-16 22:35:37 +02:00
3bfc5b83ef
Moved to manifest files for describing plugins and backends and their dependencies
2021-09-16 17:53:40 +02:00
35c4a30a63
Added music.spotify plugin and refactored MusicPlugin
2021-07-17 22:14:15 +02:00
1f6c7aae60
get_redis() should be a general utility method
2021-06-26 11:14:26 +02:00
2a78f81a7b
Major LINT fixes
2021-04-05 00:58:44 +02:00
56f8d85feb
Migrated switches web panel and refactored switch plugins to expose a more consistent interface
2021-02-19 02:54:12 +01:00
b3c28f6773
Added support for JWT token-based authentication
2021-02-12 22:43:34 +01:00
Fabio Manganiello
85f56cf98c
New media panel [WIP]
2021-01-14 00:15:35 +01:00
Fabio Manganiello
1c84659e34
Support for Python cronjobs in scripts folder - closes #156
2020-10-13 23:25:27 +02:00
Fabio Manganiello
c269c62fe6
Refactored logging names
2020-09-27 01:33:38 +02:00
Fabio Manganiello
09f9e974b1
Camera plugins refactor
2020-09-25 17:19:43 +02:00
Fabio Manganiello
0cd28f7499
If the response contains errors in run() then raise a RuntimeError, otherwise return the output instead of the Response object
2020-04-10 00:06:36 +02:00
Fabio Manganiello
7b79e4b669
Support for multiple positional arguments on utils.run()
2020-04-09 23:50:08 +02:00
Fabio Manganiello
0dae03551f
Implemented interface for custom Python scripts, procedures and hooks [ closes #131 ]
2020-04-08 23:22:54 +02:00
Fabio Manganiello
c3c88b23fe
Added ESP8266/ESP32 integration ( closes #108 )
2020-01-17 21:16:14 +01:00
Fabio Manganiello
8f2eb1c4e0
Reimplemented workers as threads instead of processes
2019-12-29 23:18:58 +01:00
Fabio Manganiello
5d5e8b54ae
Other typing adjustments for dumb Python 3.5 compatibility
2019-12-23 21:49:16 +01:00
Fabio Manganiello
d1ea69262a
Prevent active wait on the list of workers
2019-12-15 19:50:47 +01:00
Fabio Manganiello
6082eb62d5
- Added support for device scanning in switch.wemo plugin
...
- Added generic interface for workers to run jobs in parallel
2019-12-15 19:42:48 +01:00
Fabio Manganiello
26ee3fc75c
Changed nav bar text to icons
2019-07-01 22:26:04 +02:00
Fabio Manganiello
3bd9bec660
MIME type utils method now compatible with multiple version of python-magic
2019-06-21 13:40:45 +02:00
Fabio Manganiello
4cd2e6949f
New media webplugin WIP
2019-06-21 02:13:14 +02:00
Fabio Manganiello
f201f039e9
Extended and normalized key names in GoogleFitEvent type
2019-03-16 19:28:47 +01:00
Fabio Manganiello
97d2e734ee
Moved import magic statement to the get_mime_type function so Travis won't break
2019-02-06 13:22:58 +01:00
Fabio Manganiello
6713ce0f03
Implemented support for casting local media through the localstream script
2019-02-06 11:51:44 +01:00
Fabio Manganiello
dc2a686d23
Support for casting torrents to Chromecast
2019-02-05 02:30:20 +01:00
Fabio Manganiello
52d0ba442b
Refactored webtorrent plugin and synchronization with the player
...
The WebTorrent plugin now uses the `download -o <download_dir> -p <port>` options.
Improved interaction both with the webtorrent executable and the player
executable, and triggering the right events upon state changes, as well
as free support for torrent streaming through the webtorrent executable.
2019-02-05 00:15:36 +01:00
Fabio Manganiello
a4f80d4622
Added media.webtorrent plugin
2019-02-03 17:43:30 +01:00
Fabio Manganiello
fbf3600e91
Setting thread and process names properly through prctl
2019-01-10 23:45:13 +01:00
Fabio Manganiello
38a8cac9c6
Refactored SSL context logic as utils methods
2018-11-01 23:34:14 +01:00
Fabio Manganiello
6449504e26
Switched the bus to a Redis bus
2018-09-20 10:49:57 +00:00
Fabio Manganiello
95d86829aa
Plugin action decorators can now be inherited from parent classes
2018-07-17 01:23:12 +02:00
Fabio Manganiello
66d78c8615
[ #61 ] Plugins actions refactoring
...
- Using `@action` annotation to indicate methods that are allowed to be
executed as actions
- The output and errors of an action are automatically wrapped into a
`Response` object without any response build required on the plugin side
2018-07-06 02:08:38 +02:00
Fabio Manganiello
81a81312e3
Basic support for token authentication on request level
2018-07-05 09:15:53 +02:00
Fabio Manganiello
4da74b1096
Refactored logging submodule
2018-06-06 20:09:23 +02:00
Fabio Manganiello
48363c94e4
s/ModuleNotFoundError/ImportError/g
2018-02-20 22:58:13 +01:00
Fabio Manganiello
91dd975413
mkdir_p replaced with os.makedirs
2018-01-27 13:54:15 +01:00
Fabio Manganiello
14afbcad3a
Support for RSS feeds update events, solves #48
2018-01-27 04:32:44 +01:00
Fabio Manganiello
92b691041e
Added more general media control plugin, #10
2017-12-27 10:19:35 +01:00
Fabio Manganiello
617c0f8a07
Added code for handling procedures - solves #1
2017-12-25 17:23:12 +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
Fabio Manganiello
7b97a5b229
- #30 Implemented Google Assistant backend
...
- #21 Implemented events management
2017-12-24 01:10:48 +01:00
Fabio Manganiello
4b819d5460
Another major refactoring. Among the other things, reintroduced local backend, made requests and responses working in every case, and properly handling stop events
2017-12-22 00:49:03 +01:00
Fabio Manganiello
bd5c80175f
- Major refactoring.
...
- More consistent naming for many methods, plus added a more extensive doc.
- Refactored the entry points for the daemon and the pusher into two
classes, easier to encapsulate and wrap into tests.
- Removed the local backend - managing the concurrency of two processes
reading and writing on the same socket at the same time was too much,
and its utility outside of the tests (which can have mock backends as
well) is quite modest.
- Managing stop events on the bus. Still some work to do tho.
- Fixed several bugs.
2017-12-20 20:25:08 +01:00
Fabio Manganiello
4a04e51da7
Major refactoring #2
2017-12-18 01:10:51 +01:00