sciveo 0.1.56__tar.gz → 0.1.58__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.56 → sciveo-0.1.58}/PKG-INFO +1 -1
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/cli.py +6 -3
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/tools/nvr.py +15 -7
- sciveo-0.1.58/sciveo/monitoring/watchdog/base.py +55 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/remote.py +1 -3
- sciveo-0.1.58/sciveo/version.py +2 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo.egg-info/PKG-INFO +1 -1
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo.egg-info/SOURCES.txt +1 -1
- sciveo-0.1.56/sciveo/monitoring/watchdog/memory.py +0 -37
- sciveo-0.1.56/sciveo/version.py +0 -2
- {sciveo-0.1.56 → sciveo-0.1.58}/README.md +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/api/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/api/base.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/api/predictors.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/api/server.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/api/upload.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/common/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/common/configuration.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/common/model.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/common/optimizers.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/common/sampling.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/content/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/content/dataset.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/content/experiment.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/content/project.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/content/runner.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/ml/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/ml/base.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/ml/encoders/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/ml/encoders/base.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/ml/encoders/normalizer.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/ml/nlp/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/ml/nlp/search.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/ml/time_series/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/ml/time_series/dataset.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/ml/time_series/predictor.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/ml/time_series/trainer.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/ml/time_series/window_generator.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/base.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/job_daemon.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/layouts/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/layouts/base.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/pipeline.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/postprocessors/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/postprocessors/base.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/postprocessors/default.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/audio/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/audio/audio.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/audio/audio_extractor_process.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/aws.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/base.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/file/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/file/archive.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/album.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/album_in_image.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/depth_esimation.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/embeddings.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/filters.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/generators.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/histogram.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/mask.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/object_detection.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/resize.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/segmentation.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/watermark.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/media_info.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/nlp/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/nlp/address.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/qr.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/sci/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/sci/base.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/sci/dataset.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/sci/time_series/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/sci/time_series/predictor.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/sci/time_series/trainer.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/tpu_base.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/video/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/video/generators.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/video/motion_detection.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/video/resize.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/video/video_album.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/video/video_frames.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/video/video_resample.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/queues.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/server.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/web/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/web/server.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/tools/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/tools/video_interactive.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/base.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/dataset/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/dataset/object_detection.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/evaluation/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/evaluation/markdown.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/evaluation/object_detection.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/images/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/images/base.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/images/description.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/images/embeddings.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/images/object_detection.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/images/tools.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/images/transformers.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/nlp/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/nlp/embeddings.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/nlp/tokenizers/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/nlp/tokenizers/bpe.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/video/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/ml/video/description.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/monitoring/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/monitoring/monitor.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/monitoring/start.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/monitoring/watchdog/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/network/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/network/camera.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/network/sniffer.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/network/tools.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/array.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/aws/__init__.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/aws/priority_queue.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/aws/s3.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/common.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/complexity.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/compress.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/configuration.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/crypto.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/daemon.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/formating.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/hardware.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/http.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/logger.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/os.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/queue.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/random.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/simple_counter.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/synchronized.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo/tools/timers.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo.egg-info/dependency_links.txt +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo.egg-info/entry_points.txt +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo.egg-info/requires.txt +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/sciveo.egg-info/top_level.txt +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/setup.cfg +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/setup.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/test/test_complexity.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/test/test_compress.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/test/test_configuration.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/test/test_crypto.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/test/test_eval_markdown.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/test/test_ml_datasets.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/test/test_monitoring.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/test/test_runner.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/test/test_sampling.py +0 -0
- {sciveo-0.1.56 → sciveo-0.1.58}/test/test_tokenizers.py +0 -0
|
@@ -41,7 +41,7 @@ def main():
|
|
|
41
41
|
parser.add_argument('--port', type=int, default=22, help='Host port number, used for network ops')
|
|
42
42
|
parser.add_argument('--ports', type=str, default="[]", help='Host ports list')
|
|
43
43
|
parser.add_argument('--localhost', type=bool, default=False, help='Add localhost to list of hosts')
|
|
44
|
-
parser.add_argument('--input-path', type=str, help='Input Path')
|
|
44
|
+
parser.add_argument('--input-path', type=str, default=None, help='Input Path')
|
|
45
45
|
parser.add_argument('--output-path', type=str, default=None, help='Output Path')
|
|
46
46
|
parser.add_argument('--width', type=str, default=None, help='width')
|
|
47
47
|
parser.add_argument('--height', type=str, default=None, help='height')
|
|
@@ -91,10 +91,13 @@ def main():
|
|
|
91
91
|
from sciveo.media.pipelines.processors.audio.audio_extractor_process import plot_audio
|
|
92
92
|
plot_audio(args.width, args.height, args.rate, args.input_path, args.output_path)
|
|
93
93
|
elif args.command == 'watchdog':
|
|
94
|
-
from sciveo.monitoring.watchdog.
|
|
94
|
+
from sciveo.monitoring.watchdog.base import MemoryWatchDogDaemon, DiskWatchDogDaemon
|
|
95
95
|
daemons = []
|
|
96
96
|
if args.execute is not None:
|
|
97
|
-
|
|
97
|
+
if args.src is None or args.src.startswith("mem"):
|
|
98
|
+
daemons.append(MemoryWatchDogDaemon(threshold_percent=args.threshold, period=args.period, command=args.execute))
|
|
99
|
+
elif args.src.startswith("disk") and args.input_path is not None:
|
|
100
|
+
daemons.append(DiskWatchDogDaemon(path=args.input_path, threshold_percent=args.threshold, period=args.period, command=args.execute))
|
|
98
101
|
for daemon in daemons:
|
|
99
102
|
daemon.start()
|
|
100
103
|
while(True):
|
|
@@ -56,6 +56,11 @@ class VideoCameraCaptureDaemon(DaemonBase):
|
|
|
56
56
|
info("RM", file_path)
|
|
57
57
|
os.remove(file_path)
|
|
58
58
|
|
|
59
|
+
def get_current_files(self):
|
|
60
|
+
current_files = [f for f in os.listdir(self.dst_path) if f.startswith(f"{self.cam_id}___") and f.endswith(".mp4")]
|
|
61
|
+
current_files.sort(key=lambda x: os.path.getmtime(os.path.join(self.dst_path, x)), reverse=True)
|
|
62
|
+
return current_files
|
|
63
|
+
|
|
59
64
|
def loop(self):
|
|
60
65
|
info("start", self.cam_id)
|
|
61
66
|
|
|
@@ -75,12 +80,9 @@ class VideoCameraCaptureDaemon(DaemonBase):
|
|
|
75
80
|
if p.poll() is not None:
|
|
76
81
|
break
|
|
77
82
|
|
|
78
|
-
current_files =
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
]
|
|
82
|
-
if current_files:
|
|
83
|
-
current_files.sort(key=lambda x: os.path.getmtime(os.path.join(self.dst_path, x)), reverse=True)
|
|
83
|
+
current_files = self.get_current_files()
|
|
84
|
+
|
|
85
|
+
if len(current_files) > 0:
|
|
84
86
|
newest_file = os.path.join(self.dst_path, current_files[0])
|
|
85
87
|
|
|
86
88
|
mod_time = os.path.getmtime(newest_file)
|
|
@@ -96,6 +98,13 @@ class VideoCameraCaptureDaemon(DaemonBase):
|
|
|
96
98
|
last_mod_time = mod_time
|
|
97
99
|
last_progress_time = time.time()
|
|
98
100
|
|
|
101
|
+
else:
|
|
102
|
+
time.sleep(1)
|
|
103
|
+
current_files = self.get_current_files()
|
|
104
|
+
if len(current_files) == 0:
|
|
105
|
+
p.kill()
|
|
106
|
+
break
|
|
107
|
+
|
|
99
108
|
except Exception as e:
|
|
100
109
|
exception(e)
|
|
101
110
|
|
|
@@ -104,7 +113,6 @@ class VideoCameraCaptureDaemon(DaemonBase):
|
|
|
104
113
|
time.sleep(5)
|
|
105
114
|
|
|
106
115
|
|
|
107
|
-
|
|
108
116
|
class VideoRecorder:
|
|
109
117
|
def __init__(self, path_configuration):
|
|
110
118
|
with open(path_configuration, 'r') as fp:
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Pavlin Georgiev, Softel Labs
|
|
3
|
+
#
|
|
4
|
+
# This is a proprietary file and may not be copied,
|
|
5
|
+
# distributed, or modified without express permission
|
|
6
|
+
# from the owner. For licensing inquiries, please
|
|
7
|
+
# contact pavlin@softel.bg.
|
|
8
|
+
#
|
|
9
|
+
# 2025
|
|
10
|
+
#
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
import psutil
|
|
14
|
+
import subprocess
|
|
15
|
+
|
|
16
|
+
from sciveo.tools.daemon import *
|
|
17
|
+
from sciveo.tools.logger import *
|
|
18
|
+
from sciveo.tools.simple_counter import RunCounter
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class BaseWatchDogDaemon(DaemonBase):
|
|
22
|
+
def __init__(self, threshold_percent=90, period=5, command="echo '⚠️'", monitored="none"):
|
|
23
|
+
super().__init__(period=period)
|
|
24
|
+
self.threshold_percent = threshold_percent
|
|
25
|
+
self.command = command
|
|
26
|
+
self.used_percent = 0
|
|
27
|
+
self.monitored = monitored
|
|
28
|
+
self.printer = RunCounter(60, lambda: debug(f"{self.monitored} usage: {self.used_percent}%", f"threshold: {self.threshold_percent}%"))
|
|
29
|
+
|
|
30
|
+
def get_used_percent(self):
|
|
31
|
+
return 0.0
|
|
32
|
+
|
|
33
|
+
def loop(self):
|
|
34
|
+
current_value = self.value()
|
|
35
|
+
self.used_percent = current_value["percent"]
|
|
36
|
+
self.printer.run()
|
|
37
|
+
if self.used_percent > self.threshold_percent:
|
|
38
|
+
warning(f"⚠️ {self.monitored} usage {self.used_percent}% exceeded {self.threshold_percent}%, executing command: {self.command}")
|
|
39
|
+
subprocess.run(self.command, shell=True)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class MemoryWatchDogDaemon(BaseWatchDogDaemon):
|
|
43
|
+
def __init__(self, threshold_percent=90, period=5, command="echo '⚠️ Low Memory!'"):
|
|
44
|
+
super().__init__(threshold_percent=threshold_percent, period=period, command=command, monitored="Memory")
|
|
45
|
+
|
|
46
|
+
def value(self):
|
|
47
|
+
return psutil.virtual_memory()._asdict()
|
|
48
|
+
|
|
49
|
+
class DiskWatchDogDaemon(BaseWatchDogDaemon):
|
|
50
|
+
def __init__(self, path, threshold_percent=90, period=5, command="echo '⚠️ Low Disk space!'"):
|
|
51
|
+
self.path = path
|
|
52
|
+
super().__init__(threshold_percent=threshold_percent, period=period, command=command, monitored=f"Disk [{self.path}] space")
|
|
53
|
+
|
|
54
|
+
def value(self):
|
|
55
|
+
return psutil.disk_usage(self.path)._asdict()
|
|
@@ -9,9 +9,6 @@
|
|
|
9
9
|
# 2024
|
|
10
10
|
#
|
|
11
11
|
|
|
12
|
-
import os
|
|
13
|
-
import time
|
|
14
|
-
import cv2
|
|
15
12
|
import base64
|
|
16
13
|
import requests
|
|
17
14
|
|
|
@@ -56,6 +53,7 @@ class PredictorRemoteClient:
|
|
|
56
53
|
return data
|
|
57
54
|
|
|
58
55
|
def image_encoded(self, image=None, resize_to=(256, 256), local_path=None):
|
|
56
|
+
import cv2
|
|
59
57
|
if local_path is not None:
|
|
60
58
|
image = cv2.imread(local_path)
|
|
61
59
|
if resize_to is not None:
|
|
@@ -116,7 +116,7 @@ sciveo/monitoring/__init__.py
|
|
|
116
116
|
sciveo/monitoring/monitor.py
|
|
117
117
|
sciveo/monitoring/start.py
|
|
118
118
|
sciveo/monitoring/watchdog/__init__.py
|
|
119
|
-
sciveo/monitoring/watchdog/
|
|
119
|
+
sciveo/monitoring/watchdog/base.py
|
|
120
120
|
sciveo/network/__init__.py
|
|
121
121
|
sciveo/network/camera.py
|
|
122
122
|
sciveo/network/sniffer.py
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Pavlin Georgiev, Softel Labs
|
|
3
|
-
#
|
|
4
|
-
# This is a proprietary file and may not be copied,
|
|
5
|
-
# distributed, or modified without express permission
|
|
6
|
-
# from the owner. For licensing inquiries, please
|
|
7
|
-
# contact pavlin@softel.bg.
|
|
8
|
-
#
|
|
9
|
-
# 2025
|
|
10
|
-
#
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
import psutil
|
|
14
|
-
import subprocess
|
|
15
|
-
import time
|
|
16
|
-
import threading
|
|
17
|
-
|
|
18
|
-
from sciveo.tools.daemon import *
|
|
19
|
-
from sciveo.tools.logger import *
|
|
20
|
-
from sciveo.tools.simple_counter import RunCounter
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
class MemoryWatchDogDaemon(DaemonBase):
|
|
24
|
-
def __init__(self, threshold_percent=90, period=5, command="echo '⚠️ Low Memory!'"):
|
|
25
|
-
super().__init__(period=period)
|
|
26
|
-
self.threshold_percent = threshold_percent
|
|
27
|
-
self.command = command
|
|
28
|
-
self.used_percent = 0
|
|
29
|
-
self.printer = RunCounter(60, lambda: debug(f"Memory usage: {self.used_percent}%", f"threshold: {self.threshold_percent}%"))
|
|
30
|
-
|
|
31
|
-
def loop(self):
|
|
32
|
-
mem = psutil.virtual_memory()
|
|
33
|
-
self.used_percent = mem.percent
|
|
34
|
-
self.printer.run()
|
|
35
|
-
if self.used_percent > self.threshold_percent:
|
|
36
|
-
warning(f"⚠️ Memory usage {self.used_percent}% exceeded {self.threshold_percent}%, executing command: {self.command}")
|
|
37
|
-
subprocess.run(self.command, shell=True)
|
sciveo-0.1.56/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
|
{sciveo-0.1.56 → sciveo-0.1.58}/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.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/sci/time_series/__init__.py
RENAMED
|
File without changes
|
{sciveo-0.1.56 → sciveo-0.1.58}/sciveo/media/pipelines/processors/sci/time_series/predictor.py
RENAMED
|
File without changes
|
{sciveo-0.1.56 → sciveo-0.1.58}/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
|