sciveo 0.1.61__tar.gz → 0.1.63__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 (163) hide show
  1. {sciveo-0.1.61 → sciveo-0.1.63}/PKG-INFO +1 -1
  2. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/monitoring/watchdog/process.py +27 -20
  3. sciveo-0.1.63/sciveo/version.py +2 -0
  4. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo.egg-info/PKG-INFO +1 -1
  5. sciveo-0.1.61/sciveo/version.py +0 -2
  6. {sciveo-0.1.61 → sciveo-0.1.63}/README.md +0 -0
  7. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/__init__.py +0 -0
  8. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/api/__init__.py +0 -0
  9. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/api/base.py +0 -0
  10. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/api/predictors.py +0 -0
  11. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/api/server.py +0 -0
  12. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/api/upload.py +0 -0
  13. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/cli.py +0 -0
  14. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/common/__init__.py +0 -0
  15. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/common/configuration.py +0 -0
  16. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/common/model.py +0 -0
  17. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/common/optimizers.py +0 -0
  18. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/common/sampling.py +0 -0
  19. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/content/__init__.py +0 -0
  20. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/content/dataset.py +0 -0
  21. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/content/experiment.py +0 -0
  22. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/content/project.py +0 -0
  23. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/content/runner.py +0 -0
  24. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/__init__.py +0 -0
  25. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/capture/__init__.py +0 -0
  26. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/capture/cam.py +0 -0
  27. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/capture/nvr.py +0 -0
  28. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/ml/__init__.py +0 -0
  29. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/ml/base.py +0 -0
  30. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/ml/encoders/__init__.py +0 -0
  31. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/ml/encoders/base.py +0 -0
  32. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/ml/encoders/normalizer.py +0 -0
  33. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/ml/nlp/__init__.py +0 -0
  34. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/ml/nlp/search.py +0 -0
  35. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/ml/time_series/__init__.py +0 -0
  36. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/ml/time_series/dataset.py +0 -0
  37. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/ml/time_series/predictor.py +0 -0
  38. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/ml/time_series/trainer.py +0 -0
  39. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/ml/time_series/window_generator.py +0 -0
  40. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/__init__.py +0 -0
  41. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/base.py +0 -0
  42. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/job_daemon.py +0 -0
  43. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/layouts/__init__.py +0 -0
  44. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/layouts/base.py +0 -0
  45. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/pipeline.py +0 -0
  46. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/postprocessors/__init__.py +0 -0
  47. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/postprocessors/base.py +0 -0
  48. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/postprocessors/default.py +0 -0
  49. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/__init__.py +0 -0
  50. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/audio/__init__.py +0 -0
  51. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/audio/audio.py +0 -0
  52. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/audio/audio_extractor_process.py +0 -0
  53. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/aws.py +0 -0
  54. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/base.py +0 -0
  55. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/file/__init__.py +0 -0
  56. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/file/archive.py +0 -0
  57. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/image/__init__.py +0 -0
  58. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/image/album.py +0 -0
  59. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/image/album_in_image.py +0 -0
  60. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/image/depth_esimation.py +0 -0
  61. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/image/embeddings.py +0 -0
  62. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/image/filters.py +0 -0
  63. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/image/generators.py +0 -0
  64. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/image/histogram.py +0 -0
  65. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/image/mask.py +0 -0
  66. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/image/object_detection.py +0 -0
  67. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/image/resize.py +0 -0
  68. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/image/segmentation.py +0 -0
  69. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/image/watermark.py +0 -0
  70. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/media_info.py +0 -0
  71. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/nlp/__init__.py +0 -0
  72. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/nlp/address.py +0 -0
  73. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/qr.py +0 -0
  74. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/sci/__init__.py +0 -0
  75. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/sci/base.py +0 -0
  76. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/sci/dataset.py +0 -0
  77. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/sci/time_series/__init__.py +0 -0
  78. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/sci/time_series/predictor.py +0 -0
  79. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/sci/time_series/trainer.py +0 -0
  80. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/tpu_base.py +0 -0
  81. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/video/__init__.py +0 -0
  82. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/video/generators.py +0 -0
  83. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/video/motion_detection.py +0 -0
  84. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/video/resize.py +0 -0
  85. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/video/video_album.py +0 -0
  86. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/video/video_frames.py +0 -0
  87. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/processors/video/video_resample.py +0 -0
  88. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/queues.py +0 -0
  89. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/server.py +0 -0
  90. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/web/__init__.py +0 -0
  91. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/pipelines/web/server.py +0 -0
  92. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/tools/__init__.py +0 -0
  93. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/media/tools/video_interactive.py +0 -0
  94. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/__init__.py +0 -0
  95. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/base.py +0 -0
  96. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/dataset/__init__.py +0 -0
  97. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/dataset/object_detection.py +0 -0
  98. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/evaluation/__init__.py +0 -0
  99. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/evaluation/markdown.py +0 -0
  100. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/evaluation/object_detection.py +0 -0
  101. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/images/__init__.py +0 -0
  102. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/images/base.py +0 -0
  103. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/images/description.py +0 -0
  104. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/images/embeddings.py +0 -0
  105. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/images/object_detection.py +0 -0
  106. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/images/tools.py +0 -0
  107. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/images/transformers.py +0 -0
  108. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/nlp/__init__.py +0 -0
  109. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/nlp/embeddings.py +0 -0
  110. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/nlp/tokenizers/__init__.py +0 -0
  111. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/nlp/tokenizers/bpe.py +0 -0
  112. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/video/__init__.py +0 -0
  113. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/ml/video/description.py +0 -0
  114. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/monitoring/__init__.py +0 -0
  115. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/monitoring/monitor.py +0 -0
  116. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/monitoring/start.py +0 -0
  117. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/monitoring/watchdog/__init__.py +0 -0
  118. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/monitoring/watchdog/base.py +0 -0
  119. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/network/__init__.py +0 -0
  120. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/network/camera.py +0 -0
  121. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/network/sniffer.py +0 -0
  122. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/network/tools.py +0 -0
  123. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/__init__.py +0 -0
  124. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/array.py +0 -0
  125. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/aws/__init__.py +0 -0
  126. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/aws/priority_queue.py +0 -0
  127. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/aws/s3.py +0 -0
  128. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/common.py +0 -0
  129. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/complexity.py +0 -0
  130. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/compress.py +0 -0
  131. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/configuration.py +0 -0
  132. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/crypto.py +0 -0
  133. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/daemon.py +0 -0
  134. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/draw/__init__.py +0 -0
  135. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/draw/contours.py +0 -0
  136. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/formating.py +0 -0
  137. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/hardware.py +0 -0
  138. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/http.py +0 -0
  139. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/logger.py +0 -0
  140. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/os.py +0 -0
  141. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/queue.py +0 -0
  142. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/random.py +0 -0
  143. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/remote.py +0 -0
  144. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/simple_counter.py +0 -0
  145. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/synchronized.py +0 -0
  146. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo/tools/timers.py +0 -0
  147. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo.egg-info/SOURCES.txt +0 -0
  148. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo.egg-info/dependency_links.txt +0 -0
  149. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo.egg-info/entry_points.txt +0 -0
  150. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo.egg-info/requires.txt +0 -0
  151. {sciveo-0.1.61 → sciveo-0.1.63}/sciveo.egg-info/top_level.txt +0 -0
  152. {sciveo-0.1.61 → sciveo-0.1.63}/setup.cfg +0 -0
  153. {sciveo-0.1.61 → sciveo-0.1.63}/setup.py +0 -0
  154. {sciveo-0.1.61 → sciveo-0.1.63}/test/test_complexity.py +0 -0
  155. {sciveo-0.1.61 → sciveo-0.1.63}/test/test_compress.py +0 -0
  156. {sciveo-0.1.61 → sciveo-0.1.63}/test/test_configuration.py +0 -0
  157. {sciveo-0.1.61 → sciveo-0.1.63}/test/test_crypto.py +0 -0
  158. {sciveo-0.1.61 → sciveo-0.1.63}/test/test_eval_markdown.py +0 -0
  159. {sciveo-0.1.61 → sciveo-0.1.63}/test/test_ml_datasets.py +0 -0
  160. {sciveo-0.1.61 → sciveo-0.1.63}/test/test_monitoring.py +0 -0
  161. {sciveo-0.1.61 → sciveo-0.1.63}/test/test_runner.py +0 -0
  162. {sciveo-0.1.61 → sciveo-0.1.63}/test/test_sampling.py +0 -0
  163. {sciveo-0.1.61 → sciveo-0.1.63}/test/test_tokenizers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sciveo
3
- Version: 0.1.61
3
+ Version: 0.1.63
4
4
  Description-Content-Type: text/markdown
5
5
  Provides-Extra: mon
6
6
  Provides-Extra: net
@@ -19,7 +19,7 @@ from sciveo.monitoring.watchdog.base import BaseWatchDogDaemon
19
19
  class ProcessWatchDogDaemon(BaseWatchDogDaemon):
20
20
  def __init__(self, pid=None, process_cmd=None, period=5, command="echo '⚠️ process error!'", thread_inactive_threshold=None):
21
21
  self.process_cmd = process_cmd
22
- self.threads = {}
22
+ self.info_threads = {}
23
23
  self.thread_inactive_threshold = thread_inactive_threshold
24
24
  super().__init__(threshold_percent=10, period=period, command=command, monitored="Process", monitor_value="is dead")
25
25
 
@@ -43,27 +43,34 @@ 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
- if t.id not in self.threads:
51
- self.threads[t.id] = {
52
- "id": t.id,
53
- "start_at": current_time,
54
- "last_active": current_time,
55
- "last_cpu": cpu_time
56
- }
57
- else:
58
- if cpu_time != self.threads[t.id]["last_cpu"]:
59
- self.threads[t.id]["last_active"] = current_time
60
- self.threads[t.id]["last_cpu"] = cpu_time
61
-
62
- def check_threads(self, pid):
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
- for tid, thr in self.threads.items():
65
- if current_time - thr["last_active"] > self.thread_inactive_threshold:
66
- warning(f"⚠️ process[{pid}] thread[{tid}] inactive from {thr['last_active']}")
67
+ for tid, thr in self.info_threads[pid].items():
68
+ check_time = int(current_time - thr["last_check"])
69
+ if check_time > 1.5 * self.period:
70
+ continue
71
+ elapsed_time = int(current_time - thr["last_active"])
72
+ if elapsed_time > self.thread_inactive_threshold:
73
+ warning(f"⚠️ process[{pid}] thread[{tid}] inactive for {elapsed_time}s.")
67
74
 
68
75
  def process_value(self, pid):
69
76
  try:
@@ -73,8 +80,8 @@ class ProcessWatchDogDaemon(BaseWatchDogDaemon):
73
80
 
74
81
  if self.thread_inactive_threshold is not None:
75
82
  try:
76
- self.get_threads(p)
77
- self.check_threads()
83
+ self.get_threads(p, pid)
84
+ self.check_threads(p, pid)
78
85
  except psutil.NoSuchProcess as e:
79
86
  exception(e, pid)
80
87
 
@@ -0,0 +1,2 @@
1
+
2
+ __version__ = '0.1.63'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sciveo
3
- Version: 0.1.61
3
+ Version: 0.1.63
4
4
  Description-Content-Type: text/markdown
5
5
  Provides-Extra: mon
6
6
  Provides-Extra: net
@@ -1,2 +0,0 @@
1
-
2
- __version__ = '0.1.61'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes