pylint warnings fixed

This commit is contained in:
Fabio Manganiello 2019-07-13 18:25:42 +02:00
parent 07dbe57641
commit 0b05d7d8de
1 changed files with 46 additions and 54 deletions

View File

@ -12,7 +12,7 @@ from platypush.config import Config
from platypush.message.response import Response
from platypush.message.event.camera import CameraRecordingStartedEvent, \
CameraRecordingStoppedEvent, CameraVideoRenderedEvent, \
CameraPictureTakenEvent, CameraFrameCapturedEvent, CameraEvent
CameraPictureTakenEvent, CameraFrameCapturedEvent
from platypush.plugins import Plugin, action
@ -52,8 +52,7 @@ class CameraPlugin(Plugin):
sleep_between_frames=_default_sleep_between_frames,
max_stored_frames=_max_stored_frames,
color_transform=_default_color_transform,
scale_x=None, scale_y=None, rotate=None, flip=None,
*args, **kwargs):
scale_x=None, scale_y=None, rotate=None, flip=None, **kwargs):
"""
:param device_id: Index of the default video device to be used for
capturing (default: 0)
@ -115,7 +114,7 @@ class CameraPlugin(Plugin):
:type flip: int
"""
super().__init__(*args, **kwargs)
super().__init__(**kwargs)
self.default_device_id = device_id
self.frames_dir = os.path.abspath(os.path.expanduser(frames_dir))
@ -153,7 +152,6 @@ class CameraPlugin(Plugin):
return self._devices[device_id]
def _release_device(self, device_id, wait_thread_termination=True):
if device_id in self._is_recording:
self._is_recording[device_id].clear()
@ -174,8 +172,8 @@ class CameraPlugin(Plugin):
if device_id in self._recording_info:
del self._recording_info[device_id]
def _store_frame_to_file(self, frame, frames_dir, image_file):
@staticmethod
def _store_frame_to_file(frame, frames_dir, image_file):
if image_file:
filepath = image_file
else:
@ -185,7 +183,6 @@ class CameraPlugin(Plugin):
cv2.imwrite(filepath, frame)
return filepath
def _get_stored_frames_files(self, frames_dir):
ret = sorted([
os.path.join(frames_dir, f) for f in os.listdir(frames_dir)
@ -194,14 +191,13 @@ class CameraPlugin(Plugin):
])
return ret
def _get_avg_fps(self, frames_dir):
files = self._get_stored_frames_files(frames_dir)
frame_time_diff = 0.0
n_frames = 0
for i in range(1, len(files)):
m1 = re.search(self._frame_filename_regex, files[i-1])
m1 = re.search(self._frame_filename_regex, files[i - 1])
m2 = re.search(self._frame_filename_regex, files[i])
if not m1 or not m2:
@ -209,18 +205,16 @@ class CameraPlugin(Plugin):
t1 = datetime.timestamp(datetime(*map(int, m1.groups())))
t2 = datetime.timestamp(datetime(*map(int, m2.groups())))
frame_time_diff += (t2-t1)
frame_time_diff += (t2 - t1)
n_frames += 1
return n_frames/frame_time_diff if n_frames and frame_time_diff else 0
return n_frames / frame_time_diff if n_frames and frame_time_diff else 0
def _remove_expired_frames(self, frames_dir, max_stored_frames):
files = self._get_stored_frames_files(frames_dir)
for f in files[:len(files)-max_stored_frames]:
for f in files[:len(files) - max_stored_frames]:
os.unlink(f)
def _make_video_file(self, frames_dir, video_file, video_type):
files = self._get_stored_frames_files(frames_dir)
if not files:
@ -239,7 +233,6 @@ class CameraPlugin(Plugin):
self.fire_event(CameraVideoRenderedEvent(filename=video_file))
shutil.rmtree(frames_dir, ignore_errors=True)
def _recording_thread(self):
def thread(duration, video_file, image_file, device_id,
frames_dir, n_frames, sleep_between_frames,
@ -282,7 +275,7 @@ class CameraPlugin(Plugin):
rows, cols = frame.shape
if not rotation_matrix:
rotation_matrix = cv2.getRotationMatrix2D(
(cols/2, rows/2), rotate, 1)
(cols / 2, rows / 2), rotate, 1)
frame = cv2.warpAffine(frame, rotation_matrix, (cols, rows))
@ -293,7 +286,7 @@ class CameraPlugin(Plugin):
scale_x = scale_x or 1
scale_y = scale_y or 1
frame = cv2.resize(frame, None, fx=scale_x, fy=scale_y,
interpolation = cv2.INTER_CUBIC)
interpolation=cv2.INTER_CUBIC)
self._store_frame_to_file(frame=frame, frames_dir=frames_dir,
image_file=image_file)
@ -326,7 +319,6 @@ class CameraPlugin(Plugin):
return thread
@action
def start_recording(self, duration=None, video_file=None, video_type=None,
device_id=None, frames_dir=None,
@ -360,6 +352,7 @@ class CameraPlugin(Plugin):
return self.status(device_id=device_id)
recording_started = threading.Event()
def on_recording_started(event):
recording_started.set()
@ -399,17 +392,17 @@ class CameraPlugin(Plugin):
self.register_handler(CameraRecordingStartedEvent, on_recording_started)
self._recording_threads[device_id] = threading.Thread(
target=self._recording_thread(), kwargs = {
'duration':duration,
'video_file':video_file,
'video_type':video_type,
'image_file':None, 'device_id':device_id,
'frames_dir':frames_dir, 'n_frames':None,
'sleep_between_frames':sleep_between_frames,
'max_stored_frames':max_stored_frames,
'color_transform':color_transform,
'scale_x':scale_x, 'scale_y':scale_y,
'rotate':rotate, 'flip':flip
target=self._recording_thread(), kwargs={
'duration': duration,
'video_file': video_file,
'video_type': video_type,
'image_file': None, 'device_id': device_id,
'frames_dir': frames_dir, 'n_frames': None,
'sleep_between_frames': sleep_between_frames,
'max_stored_frames': max_stored_frames,
'color_transform': color_transform,
'scale_x': scale_x, 'scale_y': scale_y,
'rotate': rotate, 'flip': flip
})
self._recording_threads[device_id].start()
@ -459,7 +452,7 @@ class CameraPlugin(Plugin):
status = self.status(device_id=device_id).output.get(device_id)
if 'image_file' in status:
shutil.copyfile(status['image_file'], image_file)
return { 'path': image_file }
return {'path': image_file}
raise RuntimeError('Recording already in progress and no images ' +
'have been captured yet')
@ -481,16 +474,16 @@ class CameraPlugin(Plugin):
self.register_handler(CameraPictureTakenEvent, on_picture_taken)
self._recording_threads[device_id] = threading.Thread(
target=self._recording_thread(), kwargs = {
'duration':None, 'video_file':None,
'image_file':image_file, 'video_type':None,
'device_id':device_id, 'frames_dir':None,
'n_frames':warmup_frames,
'sleep_between_frames':None,
'max_stored_frames':None,
'color_transform':color_transform,
'scale_x':scale_x, 'scale_y':scale_y,
'rotate':rotate, 'flip':flip
target=self._recording_thread(), kwargs={
'duration': None, 'video_file': None,
'image_file': image_file, 'video_type': None,
'device_id': device_id, 'frames_dir': None,
'n_frames': warmup_frames,
'sleep_between_frames': None,
'max_stored_frames': None,
'color_transform': color_transform,
'scale_x': scale_x, 'scale_y': scale_y,
'rotate': rotate, 'flip': flip
})
self._recording_threads[device_id].start()
@ -498,7 +491,7 @@ class CameraPlugin(Plugin):
picture_taken.wait()
self.unregister_handler(CameraPictureTakenEvent, on_picture_taken)
return { 'path': image_file }
return {'path': image_file}
@action
def status(self, device_id=None):
@ -520,7 +513,6 @@ class CameraPlugin(Plugin):
}, disable_logging=True)
return resp
@action
def get_default_device_id(self):
return self.default_device_id