get_all_plugins should use Message.Encoder for encoding the response.

Some plugin information may include enums, tuples and other types that
aren't serializable by the default JSON serializer.
This commit is contained in:
Fabio Manganiello 2023-09-17 02:11:52 +02:00
parent fa2b84a269
commit 2e004c1a1e
Signed by untrusted user: blacklight
GPG key ID: D90FBA7F76362774

View file

@ -12,6 +12,7 @@ from typing import Callable, Dict, Generator, Optional, Type, Union
from platypush.backend import Backend from platypush.backend import Backend
from platypush.config import Config from platypush.config import Config
from platypush.plugins import Plugin, action from platypush.plugins import Plugin, action
from platypush.message import Message
from platypush.message.event import Event from platypush.message.event import Event
from platypush.message.response import Response from platypush.message.response import Response
from platypush.utils import ( from platypush.utils import (
@ -314,7 +315,8 @@ class InspectPlugin(Plugin):
{ {
get_plugin_name_by_class(cls): dict(plugin) get_plugin_name_by_class(cls): dict(plugin)
for cls, plugin in self._components_cache.get(Plugin, {}).items() for cls, plugin in self._components_cache.get(Plugin, {}).items()
} },
cls=Message.Encoder,
) )
@action @action