sciveo 0.1.62__tar.gz → 0.1.64__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sciveo-0.1.62 → sciveo-0.1.64}/PKG-INFO +1 -1
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/tools/video_interactive.py +13 -2
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/base.py +5 -5
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/monitoring/watchdog/process.py +27 -17
- sciveo-0.1.64/sciveo/version.py +2 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo.egg-info/PKG-INFO +1 -1
- sciveo-0.1.62/sciveo/version.py +0 -2
- {sciveo-0.1.62 → sciveo-0.1.64}/README.md +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/api/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/api/base.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/api/predictors.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/api/server.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/api/upload.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/cli.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/common/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/common/configuration.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/common/model.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/common/optimizers.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/common/sampling.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/content/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/content/dataset.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/content/experiment.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/content/project.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/content/runner.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/capture/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/capture/cam.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/capture/nvr.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/ml/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/ml/base.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/ml/encoders/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/ml/encoders/base.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/ml/encoders/normalizer.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/ml/nlp/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/ml/nlp/search.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/ml/time_series/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/ml/time_series/dataset.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/ml/time_series/predictor.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/ml/time_series/trainer.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/ml/time_series/window_generator.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/base.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/job_daemon.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/layouts/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/layouts/base.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/pipeline.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/postprocessors/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/postprocessors/base.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/postprocessors/default.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/audio/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/audio/audio.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/audio/audio_extractor_process.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/aws.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/base.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/file/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/file/archive.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/image/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/image/album.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/image/album_in_image.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/image/depth_esimation.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/image/embeddings.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/image/filters.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/image/generators.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/image/histogram.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/image/mask.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/image/object_detection.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/image/resize.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/image/segmentation.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/image/watermark.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/media_info.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/nlp/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/nlp/address.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/qr.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/sci/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/sci/base.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/sci/dataset.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/sci/time_series/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/sci/time_series/predictor.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/sci/time_series/trainer.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/tpu_base.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/video/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/video/generators.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/video/motion_detection.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/video/resize.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/video/video_album.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/video/video_frames.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/video/video_resample.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/queues.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/server.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/web/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/web/server.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/tools/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/dataset/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/dataset/object_detection.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/evaluation/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/evaluation/markdown.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/evaluation/object_detection.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/images/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/images/base.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/images/description.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/images/embeddings.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/images/object_detection.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/images/tools.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/images/transformers.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/nlp/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/nlp/embeddings.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/nlp/tokenizers/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/nlp/tokenizers/bpe.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/video/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/ml/video/description.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/monitoring/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/monitoring/monitor.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/monitoring/start.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/monitoring/watchdog/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/monitoring/watchdog/base.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/network/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/network/camera.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/network/sniffer.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/network/tools.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/array.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/aws/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/aws/priority_queue.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/aws/s3.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/common.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/complexity.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/compress.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/configuration.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/crypto.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/daemon.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/draw/__init__.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/draw/contours.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/formating.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/hardware.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/http.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/logger.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/os.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/queue.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/random.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/remote.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/simple_counter.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/synchronized.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo/tools/timers.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo.egg-info/SOURCES.txt +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo.egg-info/dependency_links.txt +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo.egg-info/entry_points.txt +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo.egg-info/requires.txt +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/sciveo.egg-info/top_level.txt +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/setup.cfg +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/setup.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/test/test_complexity.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/test/test_compress.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/test/test_configuration.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/test/test_crypto.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/test/test_eval_markdown.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/test/test_ml_datasets.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/test/test_monitoring.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/test/test_runner.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/test/test_sampling.py +0 -0
- {sciveo-0.1.62 → sciveo-0.1.64}/test/test_tokenizers.py +0 -0
|
@@ -35,6 +35,7 @@ class BaseInteractiveVideoPlayer:
|
|
|
35
35
|
self.progress_lock = threading.Lock()
|
|
36
36
|
self.frame_lock = threading.Lock()
|
|
37
37
|
self.ui_video_progress_tag = "video time progress"
|
|
38
|
+
self.current_mouse_pos = (0,0)
|
|
38
39
|
|
|
39
40
|
self.fps_ui = FPSCounter(tag="ui", period=1, print_period=600)
|
|
40
41
|
self.fps_read = FPSCounter(tag="read", period=1, print_period=600)
|
|
@@ -44,6 +45,10 @@ class BaseInteractiveVideoPlayer:
|
|
|
44
45
|
threading.Thread(target=self.read, daemon=True)
|
|
45
46
|
]
|
|
46
47
|
|
|
48
|
+
def _mouse_callback(self, event, x, y, flags, param):
|
|
49
|
+
if event == cv2.EVENT_MOUSEMOVE:
|
|
50
|
+
self.current_mouse_pos = (x, y)
|
|
51
|
+
|
|
47
52
|
def callback_video_progress(self, x):
|
|
48
53
|
# debug("callback_video_progress", x)
|
|
49
54
|
with self.frame_lock:
|
|
@@ -79,10 +84,14 @@ class BaseInteractiveVideoPlayer:
|
|
|
79
84
|
cv2.setTrackbarPos(self.ui_video_progress_tag, self.frame_tag, self.frame_id)
|
|
80
85
|
|
|
81
86
|
def draw(self, frame, result):
|
|
82
|
-
cv2.putText(frame, f"R[{result}]", (30, 80), cv2.FONT_HERSHEY_SIMPLEX, 1.3, (0,
|
|
87
|
+
cv2.putText(frame, f"R[{result}]", (30, 80), cv2.FONT_HERSHEY_SIMPLEX, 1.3, (0, 0, 255), 2)
|
|
88
|
+
|
|
89
|
+
def on_key(self, key):
|
|
90
|
+
pass
|
|
83
91
|
|
|
84
92
|
def run(self, max_display_width=1024):
|
|
85
93
|
cv2.namedWindow(self.frame_tag, cv2.WINDOW_NORMAL)
|
|
94
|
+
cv2.setMouseCallback(self.frame_tag, self._mouse_callback)
|
|
86
95
|
|
|
87
96
|
self.cap = cv2.VideoCapture(self.path_video)
|
|
88
97
|
|
|
@@ -108,7 +117,7 @@ class BaseInteractiveVideoPlayer:
|
|
|
108
117
|
current_result = self.result.copy()
|
|
109
118
|
|
|
110
119
|
if current_frame is not None:
|
|
111
|
-
cv2.putText(current_frame, f"FPS read {round(self.fps_read.value, 1)} ui {round(self.fps_ui.value, 1)} T {round(self.frame_id / self.video_fps, 3)}s", (30, 40), cv2.FONT_HERSHEY_SIMPLEX, 1.3, (0, 255, 0), 4)
|
|
120
|
+
cv2.putText(current_frame, f"FPS read {round(self.fps_read.value, 1)} ui {round(self.fps_ui.value, 1)} T[{self.frame_id}] {round(self.frame_id / self.video_fps, 3)}s", (30, 40), cv2.FONT_HERSHEY_SIMPLEX, 1.3, (0, 255, 0), 4)
|
|
112
121
|
self.draw(current_frame, current_result)
|
|
113
122
|
height, width = current_frame.shape[:2]
|
|
114
123
|
if width > max_display_width:
|
|
@@ -128,6 +137,8 @@ class BaseInteractiveVideoPlayer:
|
|
|
128
137
|
frame_path = os.path.join(self.path_base, f"{self.file_name_base}-{self.frame_id}.png")
|
|
129
138
|
cv2.imwrite(frame_path, original_current_frame)
|
|
130
139
|
debug(f"saved frame {self.frame_id} to {frame_path}")
|
|
140
|
+
else:
|
|
141
|
+
self.on_key(key)
|
|
131
142
|
|
|
132
143
|
self.cap.release()
|
|
133
144
|
cv2.destroyAllWindows()
|
|
@@ -31,16 +31,16 @@ class BaseML:
|
|
|
31
31
|
self.init_models()
|
|
32
32
|
|
|
33
33
|
def init_models(self):
|
|
34
|
-
|
|
34
|
+
debug("init_models not implemented")
|
|
35
35
|
|
|
36
36
|
def init(self):
|
|
37
|
-
|
|
37
|
+
debug("init not implemented")
|
|
38
38
|
|
|
39
39
|
def post_init(self):
|
|
40
|
-
|
|
40
|
+
debug("post_init not implemented")
|
|
41
41
|
|
|
42
42
|
def predict_one(self, x):
|
|
43
|
-
|
|
43
|
+
debug("predict_one not implemented")
|
|
44
44
|
|
|
45
45
|
def predict(self, X):
|
|
46
46
|
predictions = []
|
|
@@ -49,7 +49,7 @@ class BaseML:
|
|
|
49
49
|
return predictions
|
|
50
50
|
|
|
51
51
|
def train(self, X, Y_true=None):
|
|
52
|
-
|
|
52
|
+
debug("train not implemented")
|
|
53
53
|
|
|
54
54
|
def describe(self):
|
|
55
55
|
return f"{type(self).__name__}: {self.model_name}"
|
|
@@ -43,28 +43,38 @@ class ProcessWatchDogDaemon(BaseWatchDogDaemon):
|
|
|
43
43
|
info(f"processes matching [{self.process_cmd}]", matched_pids)
|
|
44
44
|
return matched_pids
|
|
45
45
|
|
|
46
|
-
def get_threads(self, process):
|
|
46
|
+
def get_threads(self, process, pid):
|
|
47
47
|
current_time = time.time()
|
|
48
48
|
for t in process.threads():
|
|
49
49
|
cpu_time = t.user_time + t.system_time
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
50
|
+
|
|
51
|
+
self.info_threads.setdefault(pid, {})
|
|
52
|
+
self.info_threads[pid].setdefault(t.id, {
|
|
53
|
+
"id": t.id,
|
|
54
|
+
"start_at": current_time,
|
|
55
|
+
"last_active": current_time,
|
|
56
|
+
"last_cpu": cpu_time,
|
|
57
|
+
"last_check": current_time
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
if cpu_time != self.info_threads[pid][t.id]["last_cpu"]:
|
|
61
|
+
self.info_threads[pid][t.id]["last_active"] = current_time
|
|
62
|
+
self.info_threads[pid][t.id]["last_cpu"] = cpu_time
|
|
63
|
+
self.info_threads[pid][t.id]["last_check"] = current_time
|
|
64
|
+
|
|
65
|
+
def check_threads(self, process, pid):
|
|
63
66
|
current_time = time.time()
|
|
64
|
-
|
|
67
|
+
delete_thread_info = []
|
|
68
|
+
for tid, thr in self.info_threads[pid].items():
|
|
69
|
+
check_time = int(current_time - thr["last_check"])
|
|
70
|
+
if check_time > 1.5 * self.period:
|
|
71
|
+
delete_thread_info.append(tid)
|
|
72
|
+
continue
|
|
65
73
|
elapsed_time = int(current_time - thr["last_active"])
|
|
66
74
|
if elapsed_time > self.thread_inactive_threshold:
|
|
67
75
|
warning(f"⚠️ process[{pid}] thread[{tid}] inactive for {elapsed_time}s.")
|
|
76
|
+
for tid in delete_thread_info:
|
|
77
|
+
self.info_threads[pid].pop(tid, None)
|
|
68
78
|
|
|
69
79
|
def process_value(self, pid):
|
|
70
80
|
try:
|
|
@@ -74,8 +84,8 @@ class ProcessWatchDogDaemon(BaseWatchDogDaemon):
|
|
|
74
84
|
|
|
75
85
|
if self.thread_inactive_threshold is not None:
|
|
76
86
|
try:
|
|
77
|
-
self.get_threads(p)
|
|
78
|
-
self.check_threads(pid)
|
|
87
|
+
self.get_threads(p, pid)
|
|
88
|
+
self.check_threads(p, pid)
|
|
79
89
|
except psutil.NoSuchProcess as e:
|
|
80
90
|
exception(e, pid)
|
|
81
91
|
|
sciveo-0.1.62/sciveo/version.py
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/audio/audio_extractor_process.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/sci/time_series/__init__.py
RENAMED
|
File without changes
|
{sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/sci/time_series/predictor.py
RENAMED
|
File without changes
|
{sciveo-0.1.62 → sciveo-0.1.64}/sciveo/media/pipelines/processors/sci/time_series/trainer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|