forked from platypush/platypush
LINT fixes
This commit is contained in:
parent
a160d3217e
commit
de2849546a
1 changed files with 22 additions and 14 deletions
|
@ -5,7 +5,7 @@ import time
|
||||||
|
|
||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from typing import Optional
|
from typing import Any, Callable, Optional
|
||||||
|
|
||||||
from platypush.bus import Bus
|
from platypush.bus import Bus
|
||||||
from platypush.common import ExtensionWithManifest
|
from platypush.common import ExtensionWithManifest
|
||||||
|
@ -13,12 +13,20 @@ from platypush.event import EventGenerator
|
||||||
from platypush.message.response import Response
|
from platypush.message.response import Response
|
||||||
from platypush.utils import get_decorators, get_plugin_name_by_class, set_thread_name
|
from platypush.utils import get_decorators, get_plugin_name_by_class, set_thread_name
|
||||||
|
|
||||||
stop_timeout = 5 # Plugin stop timeout in seconds
|
PLUGIN_STOP_TIMEOUT = 5 # Plugin stop timeout in seconds
|
||||||
|
|
||||||
|
|
||||||
def action(f):
|
def action(f: Callable[..., Any]) -> Callable[..., Response]:
|
||||||
|
"""
|
||||||
|
Decorator used to wrap the methods in the plugin classes that should be
|
||||||
|
exposed as actions.
|
||||||
|
|
||||||
|
It wraps the method's response into a generic
|
||||||
|
:meth:`platypush.message.response.Response` object.
|
||||||
|
"""
|
||||||
|
|
||||||
@wraps(f)
|
@wraps(f)
|
||||||
def _execute_action(*args, **kwargs):
|
def _execute_action(*args, **kwargs) -> Response:
|
||||||
response = Response()
|
response = Response()
|
||||||
result = f(*args, **kwargs)
|
result = f(*args, **kwargs)
|
||||||
|
|
||||||
|
@ -61,7 +69,7 @@ class Plugin(EventGenerator, ExtensionWithManifest): # lgtm [py/missing-call-to
|
||||||
def run(self, method, *args, **kwargs):
|
def run(self, method, *args, **kwargs):
|
||||||
assert (
|
assert (
|
||||||
method in self.registered_actions
|
method in self.registered_actions
|
||||||
), '{} is not a registered action on {}'.format(method, self.__class__.__name__)
|
), f'{method} is not a registered action on {self.__class__.__name__}'
|
||||||
return getattr(self, method)(*args, **kwargs)
|
return getattr(self, method)(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
@ -73,7 +81,7 @@ class RunnablePlugin(Plugin):
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
poll_interval: Optional[float] = None,
|
poll_interval: Optional[float] = None,
|
||||||
stop_timeout: Optional[float] = stop_timeout,
|
stop_timeout: Optional[float] = PLUGIN_STOP_TIMEOUT,
|
||||||
**kwargs,
|
**kwargs,
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
|
@ -106,26 +114,26 @@ class RunnablePlugin(Plugin):
|
||||||
def stop(self):
|
def stop(self):
|
||||||
self._should_stop.set()
|
self._should_stop.set()
|
||||||
if self._thread and self._thread.is_alive():
|
if self._thread and self._thread.is_alive():
|
||||||
self.logger.info(f'Waiting for {self.__class__.__name__} to stop')
|
self.logger.info('Waiting for %s to stop', self.__class__.__name__)
|
||||||
try:
|
try:
|
||||||
if self._thread:
|
if self._thread:
|
||||||
self._thread.join(timeout=self._stop_timeout)
|
self._thread.join(timeout=self._stop_timeout)
|
||||||
if self._thread and self._thread.is_alive():
|
if self._thread and self._thread.is_alive():
|
||||||
self.logger.warning(
|
self.logger.warning(
|
||||||
f'Timeout (seconds={self._stop_timeout}) on '
|
'Timeout (seconds={%s}) on exit for the plugin %s',
|
||||||
'exit for the plugin '
|
self._stop_timeout,
|
||||||
+ (
|
(
|
||||||
get_plugin_name_by_class(self.__class__)
|
get_plugin_name_by_class(self.__class__)
|
||||||
or self.__class__.__name__
|
or self.__class__.__name__
|
||||||
)
|
),
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.logger.warning(f'Could not join thread on stop: {e}')
|
self.logger.warning('Could not join thread on stop: %s', e)
|
||||||
|
|
||||||
self.logger.info(f'{self.__class__.__name__} stopped')
|
self.logger.info('%s stopped', self.__class__.__name__)
|
||||||
|
|
||||||
def _runner(self):
|
def _runner(self):
|
||||||
self.logger.info(f'Starting {self.__class__.__name__}')
|
self.logger.info('Starting %s', self.__class__.__name__)
|
||||||
|
|
||||||
while not self.should_stop():
|
while not self.should_stop():
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in a new issue