nedo-vision-worker 1.2.1__tar.gz → 1.2.2__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 (105) hide show
  1. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/PKG-INFO +3 -1
  2. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/README.md +2 -0
  3. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/__init__.py +1 -1
  4. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/doctor.py +32 -2
  5. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/repositories/WorkerSourceRepository.py +10 -1
  6. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/GrpcClientBase.py +1 -1
  7. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/WorkerSourcePipelineClient.py +189 -177
  8. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/WorkerSourceUpdater.py +4 -3
  9. nedo_vision_worker-1.2.2/nedo_vision_worker/util/FFmpegUtil.py +73 -0
  10. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/util/VideoProbeUtil.py +1 -6
  11. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/DataSenderWorker.py +1 -1
  12. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/PipelineImageWorker.py +1 -1
  13. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker.egg-info/PKG-INFO +3 -1
  14. nedo_vision_worker-1.2.1/nedo_vision_worker/util/FFmpegUtil.py +0 -124
  15. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/cli.py +0 -0
  16. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/config/ConfigurationManager.py +0 -0
  17. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/config/__init__.py +0 -0
  18. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/database/DatabaseManager.py +0 -0
  19. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/database/__init__.py +0 -0
  20. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/initializer/AppInitializer.py +0 -0
  21. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/initializer/__init__.py +0 -0
  22. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/__init__.py +0 -0
  23. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/ai_model.py +0 -0
  24. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/auth.py +0 -0
  25. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/config.py +0 -0
  26. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/dataset_source.py +0 -0
  27. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/logs.py +0 -0
  28. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/ppe_detection.py +0 -0
  29. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/ppe_detection_label.py +0 -0
  30. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/restricted_area_violation.py +0 -0
  31. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/user.py +0 -0
  32. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/worker_source.py +0 -0
  33. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/worker_source_pipeline.py +0 -0
  34. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/worker_source_pipeline_config.py +0 -0
  35. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/worker_source_pipeline_debug.py +0 -0
  36. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/worker_source_pipeline_detection.py +0 -0
  37. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/AIModelService_pb2.py +0 -0
  38. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/AIModelService_pb2_grpc.py +0 -0
  39. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/DatasetSourceService_pb2.py +0 -0
  40. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/DatasetSourceService_pb2_grpc.py +0 -0
  41. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/HumanDetectionService_pb2.py +0 -0
  42. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/HumanDetectionService_pb2_grpc.py +0 -0
  43. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/PPEDetectionService_pb2.py +0 -0
  44. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/PPEDetectionService_pb2_grpc.py +0 -0
  45. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/VisionWorkerService_pb2.py +0 -0
  46. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/VisionWorkerService_pb2_grpc.py +0 -0
  47. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/WorkerSourcePipelineService_pb2.py +0 -0
  48. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/WorkerSourcePipelineService_pb2_grpc.py +0 -0
  49. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/WorkerSourceService_pb2.py +0 -0
  50. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/WorkerSourceService_pb2_grpc.py +0 -0
  51. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/__init__.py +0 -0
  52. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/repositories/AIModelRepository.py +0 -0
  53. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/repositories/DatasetSourceRepository.py +0 -0
  54. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/repositories/PPEDetectionRepository.py +0 -0
  55. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/repositories/RestrictedAreaRepository.py +0 -0
  56. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/repositories/WorkerSourcePipelineDebugRepository.py +0 -0
  57. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/repositories/WorkerSourcePipelineDetectionRepository.py +0 -0
  58. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/repositories/WorkerSourcePipelineRepository.py +0 -0
  59. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/repositories/__init__.py +0 -0
  60. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/AIModelClient.py +0 -0
  61. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/ConnectionInfoClient.py +0 -0
  62. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/DatasetSourceClient.py +0 -0
  63. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/DirectDeviceToRTMPStreamer.py +0 -0
  64. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/FileToRTMPServer.py +0 -0
  65. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/GrpcClientManager.py +0 -0
  66. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/ImageUploadClient.py +0 -0
  67. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/PPEDetectionClient.py +0 -0
  68. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/RTSPtoRTMPStreamer.py +0 -0
  69. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/RestrictedAreaClient.py +0 -0
  70. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/SharedDirectDeviceClient.py +0 -0
  71. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/SharedVideoStreamServer.py +0 -0
  72. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/SystemUsageClient.py +0 -0
  73. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/SystemWideDeviceCoordinator.py +0 -0
  74. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/VideoSharingDaemon.py +0 -0
  75. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/VideoStreamClient.py +0 -0
  76. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/WorkerSourceClient.py +0 -0
  77. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/WorkerStatusClient.py +0 -0
  78. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/__init__.py +0 -0
  79. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/util/HardwareID.py +0 -0
  80. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/util/ImageUploader.py +0 -0
  81. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/util/Networking.py +0 -0
  82. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/util/PlatformDetector.py +0 -0
  83. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/util/SystemMonitor.py +0 -0
  84. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/util/__init__.py +0 -0
  85. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/CoreActionWorker.py +0 -0
  86. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/DataSyncWorker.py +0 -0
  87. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/DatasetFrameSender.py +0 -0
  88. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/DatasetFrameWorker.py +0 -0
  89. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/PPEDetectionManager.py +0 -0
  90. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/PipelineActionWorker.py +0 -0
  91. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/RabbitMQListener.py +0 -0
  92. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/RestrictedAreaManager.py +0 -0
  93. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/SystemUsageManager.py +0 -0
  94. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/VideoStreamWorker.py +0 -0
  95. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/WorkerManager.py +0 -0
  96. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/__init__.py +0 -0
  97. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker_service.py +0 -0
  98. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker.egg-info/SOURCES.txt +0 -0
  99. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker.egg-info/dependency_links.txt +0 -0
  100. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker.egg-info/entry_points.txt +0 -0
  101. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker.egg-info/requires.txt +0 -0
  102. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker.egg-info/top_level.txt +0 -0
  103. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/pyproject.toml +0 -0
  104. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/setup.cfg +0 -0
  105. {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nedo-vision-worker
3
- Version: 1.2.1
3
+ Version: 1.2.2
4
4
  Summary: Nedo Vision Worker Service Library for AI Vision Processing
5
5
  Author-email: Willy Achmat Fauzi <willy.achmat@gmail.com>
6
6
  Maintainer-email: Willy Achmat Fauzi <willy.achmat@gmail.com>
@@ -165,6 +165,8 @@ pip install -e .
165
165
  pip install -e .[dev]
166
166
  ```
167
167
 
168
+ See [INSTALL.md](INSTALL.md) for detailed installation instructions.
169
+
168
170
  ## 🔍 System Diagnostics
169
171
 
170
172
  Before running the worker service, use the built-in diagnostic tool to verify your system:
@@ -112,6 +112,8 @@ pip install -e .
112
112
  pip install -e .[dev]
113
113
  ```
114
114
 
115
+ See [INSTALL.md](INSTALL.md) for detailed installation instructions.
116
+
115
117
  ## 🔍 System Diagnostics
116
118
 
117
119
  Before running the worker service, use the built-in diagnostic tool to verify your system:
@@ -6,5 +6,5 @@ A library for running worker agents in the Nedo Vision platform.
6
6
 
7
7
  from .worker_service import WorkerService
8
8
 
9
- __version__ = "1.2.1"
9
+ __version__ = "1.2.2"
10
10
  __all__ = ["WorkerService"]
@@ -87,8 +87,8 @@ class WorkerServiceDoctor:
87
87
  def check_python_environment(self) -> None:
88
88
  """Comprehensive Python environment validation."""
89
89
  version = sys.version_info
90
- min_version = (3, 8)
91
- recommended_version = (3, 9)
90
+ min_version = (3, 10)
91
+ recommended_version = (3, 10)
92
92
 
93
93
  details = [
94
94
  f"Python {version.major}.{version.minor}.{version.micro}",
@@ -891,6 +891,36 @@ class WorkerServiceDoctor:
891
891
  performance_impact=performance_impact
892
892
  ))
893
893
 
894
+ def check_psutil_installation(self) -> None:
895
+ """Check if psutil is installed for system monitoring."""
896
+ details = []
897
+ recommendations = []
898
+ try:
899
+ import psutil
900
+ version = getattr(psutil, '__version__', 'N/A')
901
+ details.append(f"psutil version: {version}")
902
+ status = HealthStatus.GOOD
903
+ message = "psutil is installed"
904
+ is_blocking = False
905
+ performance_impact = "None"
906
+ except ImportError:
907
+ status = HealthStatus.WARNING
908
+ message = "psutil not installed"
909
+ details.append("System resource monitoring will be disabled.")
910
+ recommendations.append("Install psutil for system monitoring: pip install psutil")
911
+ is_blocking = False
912
+ performance_impact = "Low"
913
+
914
+ self._add_result(HealthCheck(
915
+ name="System Monitoring (psutil)",
916
+ status=status,
917
+ message=message,
918
+ details=details,
919
+ recommendations=recommendations if recommendations else None,
920
+ is_blocking=is_blocking,
921
+ performance_impact=performance_impact
922
+ ))
923
+
894
924
  def run_comprehensive_health_check(self) -> List[HealthCheck]:
895
925
  """Execute all health checks with progress indication."""
896
926
  print("🏥 Nedo Vision Worker Service - Comprehensive Health Check")
@@ -17,6 +17,15 @@ class WorkerSourceRepository:
17
17
  except Exception as e:
18
18
  logger.error(f"🚨 [APP] Database error while fetching worker sources: {e}", exc_info=True)
19
19
  return []
20
+
21
+
22
+ def get_worker_sources_by_worker_id(self, worker_id: str):
23
+ """Retrieve all worker sources from the database."""
24
+ try:
25
+ return self.session.query(WorkerSourceEntity).filter_by(worker_id=worker_id).all()
26
+ except Exception as e:
27
+ logger.error(f"🚨 [APP] Database error while fetching worker sources: {e}", exc_info=True)
28
+ return []
20
29
 
21
30
  def bulk_update_worker_sources(self, updated_records):
22
31
  """Batch update worker sources in the database."""
@@ -43,4 +52,4 @@ class WorkerSourceRepository:
43
52
  return None
44
53
  except Exception as e:
45
54
  logger.error(f"🚨 [APP] Database error while fetching worker source by ID {worker_source_id}: {e}", exc_info=True)
46
- return None
55
+ return None
@@ -68,7 +68,7 @@ class GrpcClientBase:
68
68
  self.connected = False
69
69
  error_msg = str(e)
70
70
 
71
- logger.error(f"⚠️ Connection failed ({attempts}/{self.max_retries}): {error_msg}")
71
+ logger.error(f"⚠️ Connection failed ({attempts}/{self.max_retries}): {error_msg}", exc_info=True)
72
72
 
73
73
  if attempts < self.max_retries:
74
74
  sleep_time = retry_interval * (2 ** (attempts - 1))