sciveo 0.1.57__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.
Files changed (159) hide show
  1. {sciveo-0.1.57 → sciveo-0.1.58}/PKG-INFO +1 -1
  2. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/cli.py +6 -3
  3. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/tools/nvr.py +1 -1
  4. sciveo-0.1.58/sciveo/monitoring/watchdog/base.py +55 -0
  5. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/remote.py +1 -3
  6. sciveo-0.1.58/sciveo/version.py +2 -0
  7. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo.egg-info/PKG-INFO +1 -1
  8. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo.egg-info/SOURCES.txt +1 -1
  9. sciveo-0.1.57/sciveo/monitoring/watchdog/memory.py +0 -37
  10. sciveo-0.1.57/sciveo/version.py +0 -2
  11. {sciveo-0.1.57 → sciveo-0.1.58}/README.md +0 -0
  12. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/__init__.py +0 -0
  13. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/api/__init__.py +0 -0
  14. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/api/base.py +0 -0
  15. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/api/predictors.py +0 -0
  16. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/api/server.py +0 -0
  17. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/api/upload.py +0 -0
  18. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/common/__init__.py +0 -0
  19. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/common/configuration.py +0 -0
  20. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/common/model.py +0 -0
  21. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/common/optimizers.py +0 -0
  22. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/common/sampling.py +0 -0
  23. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/content/__init__.py +0 -0
  24. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/content/dataset.py +0 -0
  25. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/content/experiment.py +0 -0
  26. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/content/project.py +0 -0
  27. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/content/runner.py +0 -0
  28. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/__init__.py +0 -0
  29. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/ml/__init__.py +0 -0
  30. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/ml/base.py +0 -0
  31. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/ml/encoders/__init__.py +0 -0
  32. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/ml/encoders/base.py +0 -0
  33. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/ml/encoders/normalizer.py +0 -0
  34. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/ml/nlp/__init__.py +0 -0
  35. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/ml/nlp/search.py +0 -0
  36. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/ml/time_series/__init__.py +0 -0
  37. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/ml/time_series/dataset.py +0 -0
  38. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/ml/time_series/predictor.py +0 -0
  39. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/ml/time_series/trainer.py +0 -0
  40. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/ml/time_series/window_generator.py +0 -0
  41. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/__init__.py +0 -0
  42. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/base.py +0 -0
  43. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/job_daemon.py +0 -0
  44. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/layouts/__init__.py +0 -0
  45. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/layouts/base.py +0 -0
  46. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/pipeline.py +0 -0
  47. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/postprocessors/__init__.py +0 -0
  48. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/postprocessors/base.py +0 -0
  49. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/postprocessors/default.py +0 -0
  50. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/__init__.py +0 -0
  51. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/audio/__init__.py +0 -0
  52. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/audio/audio.py +0 -0
  53. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/audio/audio_extractor_process.py +0 -0
  54. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/aws.py +0 -0
  55. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/base.py +0 -0
  56. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/file/__init__.py +0 -0
  57. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/file/archive.py +0 -0
  58. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/__init__.py +0 -0
  59. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/album.py +0 -0
  60. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/album_in_image.py +0 -0
  61. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/depth_esimation.py +0 -0
  62. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/embeddings.py +0 -0
  63. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/filters.py +0 -0
  64. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/generators.py +0 -0
  65. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/histogram.py +0 -0
  66. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/mask.py +0 -0
  67. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/object_detection.py +0 -0
  68. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/resize.py +0 -0
  69. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/segmentation.py +0 -0
  70. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/image/watermark.py +0 -0
  71. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/media_info.py +0 -0
  72. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/nlp/__init__.py +0 -0
  73. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/nlp/address.py +0 -0
  74. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/qr.py +0 -0
  75. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/sci/__init__.py +0 -0
  76. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/sci/base.py +0 -0
  77. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/sci/dataset.py +0 -0
  78. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/sci/time_series/__init__.py +0 -0
  79. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/sci/time_series/predictor.py +0 -0
  80. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/sci/time_series/trainer.py +0 -0
  81. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/tpu_base.py +0 -0
  82. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/video/__init__.py +0 -0
  83. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/video/generators.py +0 -0
  84. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/video/motion_detection.py +0 -0
  85. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/video/resize.py +0 -0
  86. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/video/video_album.py +0 -0
  87. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/video/video_frames.py +0 -0
  88. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/processors/video/video_resample.py +0 -0
  89. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/queues.py +0 -0
  90. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/server.py +0 -0
  91. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/web/__init__.py +0 -0
  92. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/pipelines/web/server.py +0 -0
  93. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/tools/__init__.py +0 -0
  94. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/media/tools/video_interactive.py +0 -0
  95. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/__init__.py +0 -0
  96. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/base.py +0 -0
  97. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/dataset/__init__.py +0 -0
  98. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/dataset/object_detection.py +0 -0
  99. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/evaluation/__init__.py +0 -0
  100. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/evaluation/markdown.py +0 -0
  101. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/evaluation/object_detection.py +0 -0
  102. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/images/__init__.py +0 -0
  103. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/images/base.py +0 -0
  104. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/images/description.py +0 -0
  105. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/images/embeddings.py +0 -0
  106. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/images/object_detection.py +0 -0
  107. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/images/tools.py +0 -0
  108. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/images/transformers.py +0 -0
  109. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/nlp/__init__.py +0 -0
  110. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/nlp/embeddings.py +0 -0
  111. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/nlp/tokenizers/__init__.py +0 -0
  112. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/nlp/tokenizers/bpe.py +0 -0
  113. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/video/__init__.py +0 -0
  114. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/ml/video/description.py +0 -0
  115. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/monitoring/__init__.py +0 -0
  116. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/monitoring/monitor.py +0 -0
  117. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/monitoring/start.py +0 -0
  118. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/monitoring/watchdog/__init__.py +0 -0
  119. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/network/__init__.py +0 -0
  120. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/network/camera.py +0 -0
  121. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/network/sniffer.py +0 -0
  122. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/network/tools.py +0 -0
  123. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/__init__.py +0 -0
  124. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/array.py +0 -0
  125. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/aws/__init__.py +0 -0
  126. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/aws/priority_queue.py +0 -0
  127. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/aws/s3.py +0 -0
  128. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/common.py +0 -0
  129. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/complexity.py +0 -0
  130. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/compress.py +0 -0
  131. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/configuration.py +0 -0
  132. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/crypto.py +0 -0
  133. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/daemon.py +0 -0
  134. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/formating.py +0 -0
  135. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/hardware.py +0 -0
  136. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/http.py +0 -0
  137. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/logger.py +0 -0
  138. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/os.py +0 -0
  139. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/queue.py +0 -0
  140. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/random.py +0 -0
  141. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/simple_counter.py +0 -0
  142. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/synchronized.py +0 -0
  143. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo/tools/timers.py +0 -0
  144. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo.egg-info/dependency_links.txt +0 -0
  145. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo.egg-info/entry_points.txt +0 -0
  146. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo.egg-info/requires.txt +0 -0
  147. {sciveo-0.1.57 → sciveo-0.1.58}/sciveo.egg-info/top_level.txt +0 -0
  148. {sciveo-0.1.57 → sciveo-0.1.58}/setup.cfg +0 -0
  149. {sciveo-0.1.57 → sciveo-0.1.58}/setup.py +0 -0
  150. {sciveo-0.1.57 → sciveo-0.1.58}/test/test_complexity.py +0 -0
  151. {sciveo-0.1.57 → sciveo-0.1.58}/test/test_compress.py +0 -0
  152. {sciveo-0.1.57 → sciveo-0.1.58}/test/test_configuration.py +0 -0
  153. {sciveo-0.1.57 → sciveo-0.1.58}/test/test_crypto.py +0 -0
  154. {sciveo-0.1.57 → sciveo-0.1.58}/test/test_eval_markdown.py +0 -0
  155. {sciveo-0.1.57 → sciveo-0.1.58}/test/test_ml_datasets.py +0 -0
  156. {sciveo-0.1.57 → sciveo-0.1.58}/test/test_monitoring.py +0 -0
  157. {sciveo-0.1.57 → sciveo-0.1.58}/test/test_runner.py +0 -0
  158. {sciveo-0.1.57 → sciveo-0.1.58}/test/test_sampling.py +0 -0
  159. {sciveo-0.1.57 → sciveo-0.1.58}/test/test_tokenizers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sciveo
3
- Version: 0.1.57
3
+ Version: 0.1.58
4
4
  Description-Content-Type: text/markdown
5
5
  Provides-Extra: mon
6
6
  Provides-Extra: net
@@ -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.memory import MemoryWatchDogDaemon
94
+ from sciveo.monitoring.watchdog.base import MemoryWatchDogDaemon, DiskWatchDogDaemon
95
95
  daemons = []
96
96
  if args.execute is not None:
97
- daemons.append(MemoryWatchDogDaemon(threshold_percent=args.threshold, period=args.period, command=args.execute))
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):
@@ -99,7 +99,7 @@ class VideoCameraCaptureDaemon(DaemonBase):
99
99
  last_progress_time = time.time()
100
100
 
101
101
  else:
102
- time.sleep(5)
102
+ time.sleep(1)
103
103
  current_files = self.get_current_files()
104
104
  if len(current_files) == 0:
105
105
  p.kill()
@@ -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:
@@ -0,0 +1,2 @@
1
+
2
+ __version__ = '0.1.58'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sciveo
3
- Version: 0.1.57
3
+ Version: 0.1.58
4
4
  Description-Content-Type: text/markdown
5
5
  Provides-Extra: mon
6
6
  Provides-Extra: net
@@ -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/memory.py
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)
@@ -1,2 +0,0 @@
1
-
2
- __version__ = '0.1.57'
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