Merge branch 'master' into 311/auto-generate-deps-docs

This commit is contained in:
Fabio Manganiello 2023-09-28 01:25:29 +02:00
commit 0a3ec4b9f1
Signed by untrusted user: blacklight
GPG key ID: D90FBA7F76362774
7 changed files with 28 additions and 14 deletions

View file

@ -5,7 +5,7 @@ import logging
import os
import pathlib
import sys
from typing import Final, Optional, Sequence
from typing import Optional, Sequence
from platypush.config import Config
from platypush.utils.manifest import (
@ -29,7 +29,7 @@ class BaseBuilder(ABC):
and :module:`platypush.platydock` modules/scripts.
"""
REPO_URL: Final[str] = 'https://github.com/BlackLight/platypush.git'
REPO_URL: str = 'https://github.com/BlackLight/platypush.git'
"""
We use the Github URL here rather than the self-hosted Gitea URL to prevent
too many requests to the Gitea server.

View file

@ -1,6 +1,6 @@
import logging
import threading
from typing import Final, Optional
from typing import Optional
from platypush.bus import Bus
from platypush.message import Message
@ -13,7 +13,7 @@ class RedisBus(Bus):
Overrides the in-process in-memory local bus with a Redis bus
"""
DEFAULT_REDIS_QUEUE: Final[str] = 'platypush/bus'
DEFAULT_REDIS_QUEUE: str = 'platypush/bus'
def __init__(self, *args, on_message=None, redis_queue=None, **kwargs):
from platypush.utils import get_redis

View file

@ -7,7 +7,7 @@ import subprocess
import sys
import types
from datetime import datetime
from typing import Callable, Dict, Final, List, Optional, Set, Type, Tuple, Any
from typing import Callable, Dict, List, Optional, Set, Type, Tuple, Any
import pkgutil
@ -41,7 +41,7 @@ EntityKey = Tuple[str, str]
EntityMapping = Dict[EntityKey, 'Entity']
""" Internal mapping for entities used for deduplication/merge/upsert. """
_import_error_ignored_modules: Final[Set[str]] = {'bluetooth'}
_import_error_ignored_modules: Set[str] = {'bluetooth'}
"""
ImportError exceptions will be ignored for these entity submodules when
imported dynamically. An ImportError for these modules means that some optional

View file

@ -469,8 +469,9 @@ class MqttPlugin(RunnablePlugin):
client.stop()
del client
@staticmethod
def _response_callback(reply_topic: str, event: threading.Event, buffer: IO[bytes]):
def _response_callback(
self, reply_topic: str, event: threading.Event, buffer: IO[bytes]
):
"""
A response callback that writes the response to an IOBuffer and stops
the client loop.
@ -480,8 +481,14 @@ class MqttPlugin(RunnablePlugin):
if msg.topic != reply_topic:
return
try:
buffer.write(msg.payload)
client.loop_stop()
except Exception as e:
self.logger.warning(
'Could not write the response back to the MQTT client: %s', e
)
finally:
event.set()
return on_message

View file

@ -2,14 +2,14 @@ from enum import IntEnum
import logging
import os
import threading
from typing import Any, Callable, Dict, Final, Iterable, Optional, Union
from typing import Any, Callable, Dict, Iterable, Optional, Union
import paho.mqtt.client as mqtt
from platypush.config import Config
MqttCallback = Callable[["MqttClient", Any, mqtt.MQTTMessage], Any]
DEFAULT_TIMEOUT: Final[int] = 30
DEFAULT_TIMEOUT: int = 30
class MqttClient(mqtt.Client, threading.Thread):

View file

@ -72,7 +72,9 @@ class RssPlugin(RunnablePlugin):
t = var.get(varname)
if t:
return dateutil.parser.isoparse(t)
if not isinstance(t, datetime.datetime):
t = dateutil.parser.isoparse(t)
return t
return None

View file

@ -43,6 +43,11 @@ setup(
'migrations/alembic.ini',
'migrations/alembic/*',
'migrations/alembic/**/*',
'install/**',
'install/scripts/*',
'install/scripts/**/*',
'install/requirements/*',
'install/docker/*',
],
},
entry_points={