Fabio Manganiello
a6d6fd4067
`Message` objects enhancements.
...
- Support smart JSON serialization of `Message` objects.
- Added `Message.to_dict` method.
2023-12-09 01:20:20 +01:00
Fabio Manganiello
8b9ac59167
`parse_numpy` should also catch `AttributeError`.
continuous-integration/drone/push Build is passing
Details
2023-10-12 03:24:03 +02:00
Fabio Manganiello
9acd71944c
Skip numpy types serialization errors on Message.Encoder.
2023-10-09 01:33:45 +02:00
Fabio Manganiello
63afd90701
Serialize exceptions in the default JSON serializers.
...
This allows us to easily pass errors in internal JSON payloads, and
ensure that these are serialized consistently across all the
integrations.
2023-07-22 15:14:05 +02:00
Fabio Manganiello
c846c61493
Refactored `Config.__init__`.
...
The constructor of the `Config` class had grown too big. It's much more
manageable if split into multiple sub-constructor helpers.
2023-07-15 13:38:07 +02:00
Fabio Manganiello
bfa296e7c5
Fixed dataclass JSON serialization
2023-04-24 01:18:33 +02:00
Fabio Manganiello
6711b26137
Support dataclass serialization in the standard message serializer.
2023-04-24 00:43:06 +02:00
Fabio Manganiello
31f411868c
`Message.Encoder` should serialize binary data to `0x`-led hex strings.
2023-04-02 02:43:06 +02:00
Fabio Manganiello
89d85baa6d
Support for implicit serialization of Enum values in JSONAble.
2023-03-26 03:43:04 +02:00
Fabio Manganiello
7be55e446f
Convert UUID objects to strings when serializing to JSON.
2023-03-02 21:58:26 +01:00
Fabio Manganiello
334ccc35a2
Don't serialize I/O wrappers
...
This removes warnings on `config.get`, where the `logging` configuration
key may also contain the current logging stream and we end up with a
JSONDecodeError when trying to serialize it.
2023-01-25 00:52:37 +01:00
Fabio Manganiello
d4b540dd67
Replaced `disable_logging` with a more generic `logging_level`.
...
The `disable_logging` attribute was only available on events and
responses, and it could only either entirely disable or enable logging
for all the events of a certain type.
The new flag allows more customization by setting the default logging
level used for any message of a certain type (or `None` to disable
logging). This makes it possible to e.g. set some verbose events to
debug level, and the user can see them if they configure the application
in debug mode.
It also delegates the logging logic to the message itself, instead of
having different parts of the application handling their own logic.
2022-12-11 11:39:38 +01:00
Fabio Manganiello
cdacf50fc7
Support for decimal.Decimal type JSON serialization
2022-10-29 13:35:52 +02:00
Fabio Manganiello
fdf6d8fb4e
Better auto-generated documentation and fixed docstring warnings
2022-03-03 20:26:25 +01:00
Fabio Manganiello
ea3b49a17f
Use inherited-members: true in autodoc_default_options to ensure documentation of inherited actions
2021-11-15 01:05:53 +01:00
Fabio Manganiello
2a78f81a7b
Major LINT fixes
2021-04-05 00:58:44 +02:00
Fabio Manganiello
c269c62fe6
Refactored logging names
2020-09-27 01:33:38 +02:00
Fabio Manganiello
dc1b54961f
Added `inspect.get_config()` method to get the configuration programmatically
2020-08-31 18:26:08 +02:00
Fabio Manganiello
1681f80728
Added IMAP plugin and generic mail check backend [links to #146 ]
2020-08-31 15:33:03 +02:00
Fabio Manganiello
f7d644c32d
get_procedures() can now return Python function objects as well.
...
This means that the JSON encoder must act accordingly and parse
the function object into an encodable string.
2020-04-12 22:56:12 +02:00
Fabio Manganiello
f2b3000922
Handle numpy types in the JSON message encoder
2020-03-14 18:35:45 +01:00
Fabio Manganiello
98727c4f31
Added support for values in Z-Wave web panel (see #123 )
2020-02-20 02:34:35 +01:00
Fabio Manganiello
663be43f06
Added ping plugin and backend
2019-12-27 23:26:39 +01:00
Fabio Manganiello
5ba18ea7d5
Added Trello integration
2019-12-27 19:18:56 +01:00
Fabio Manganiello
29789461d7
Added Todoist integration
2019-12-25 20:33:26 +01:00
Fabio Manganiello
68aaf9cd61
Message timestamp refactored
2018-10-08 13:30:00 +00:00
Fabio Manganiello
948f3dc37d
Implemented timestamp mark on messages to trigger message expiration logic in case something stays on the bus for longer than a minute
2018-10-08 10:35:59 +00:00
Fabio Manganiello
4da74b1096
Refactored logging submodule
2018-06-06 20:09:23 +02: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
339e7b73a5
Major refactoring.
...
Solves, among the others, #2 , #18 and #22
2017-12-17 16:15:44 +01:00
Fabio Manganiello
dfb4620e0a
Added __init__.py
2017-12-13 04:24:59 +01:00