nedo-vision-worker 1.2.3__tar.gz → 1.2.4__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 (104) hide show
  1. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/PKG-INFO +1 -1
  2. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/__init__.py +1 -1
  3. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/AIModelClient.py +9 -12
  4. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker.egg-info/PKG-INFO +1 -1
  5. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/README.md +0 -0
  6. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/cli.py +0 -0
  7. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/config/ConfigurationManager.py +0 -0
  8. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/config/__init__.py +0 -0
  9. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/database/DatabaseManager.py +0 -0
  10. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/database/__init__.py +0 -0
  11. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/doctor.py +0 -0
  12. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/initializer/AppInitializer.py +0 -0
  13. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/initializer/__init__.py +0 -0
  14. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/models/__init__.py +0 -0
  15. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/models/ai_model.py +0 -0
  16. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/models/auth.py +0 -0
  17. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/models/config.py +0 -0
  18. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/models/dataset_source.py +0 -0
  19. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/models/logs.py +0 -0
  20. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/models/ppe_detection.py +0 -0
  21. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/models/ppe_detection_label.py +0 -0
  22. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/models/restricted_area_violation.py +0 -0
  23. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/models/user.py +0 -0
  24. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/models/worker_source.py +0 -0
  25. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/models/worker_source_pipeline.py +0 -0
  26. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/models/worker_source_pipeline_config.py +0 -0
  27. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/models/worker_source_pipeline_debug.py +0 -0
  28. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/models/worker_source_pipeline_detection.py +0 -0
  29. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/protos/AIModelService_pb2.py +0 -0
  30. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/protos/AIModelService_pb2_grpc.py +0 -0
  31. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/protos/DatasetSourceService_pb2.py +0 -0
  32. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/protos/DatasetSourceService_pb2_grpc.py +0 -0
  33. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/protos/HumanDetectionService_pb2.py +0 -0
  34. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/protos/HumanDetectionService_pb2_grpc.py +0 -0
  35. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/protos/PPEDetectionService_pb2.py +0 -0
  36. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/protos/PPEDetectionService_pb2_grpc.py +0 -0
  37. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/protos/VisionWorkerService_pb2.py +0 -0
  38. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/protos/VisionWorkerService_pb2_grpc.py +0 -0
  39. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/protos/WorkerSourcePipelineService_pb2.py +0 -0
  40. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/protos/WorkerSourcePipelineService_pb2_grpc.py +0 -0
  41. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/protos/WorkerSourceService_pb2.py +0 -0
  42. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/protos/WorkerSourceService_pb2_grpc.py +0 -0
  43. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/protos/__init__.py +0 -0
  44. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/repositories/AIModelRepository.py +0 -0
  45. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/repositories/DatasetSourceRepository.py +0 -0
  46. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/repositories/PPEDetectionRepository.py +0 -0
  47. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/repositories/RestrictedAreaRepository.py +0 -0
  48. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/repositories/WorkerSourcePipelineDebugRepository.py +0 -0
  49. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/repositories/WorkerSourcePipelineDetectionRepository.py +0 -0
  50. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/repositories/WorkerSourcePipelineRepository.py +0 -0
  51. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/repositories/WorkerSourceRepository.py +0 -0
  52. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/repositories/__init__.py +0 -0
  53. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/ConnectionInfoClient.py +0 -0
  54. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/DatasetSourceClient.py +0 -0
  55. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/DirectDeviceToRTMPStreamer.py +0 -0
  56. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/FileToRTMPServer.py +0 -0
  57. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/GrpcClientBase.py +0 -0
  58. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/GrpcClientManager.py +0 -0
  59. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/ImageUploadClient.py +0 -0
  60. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/PPEDetectionClient.py +0 -0
  61. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/RTSPtoRTMPStreamer.py +0 -0
  62. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/RestrictedAreaClient.py +0 -0
  63. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/SharedDirectDeviceClient.py +0 -0
  64. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/SharedVideoStreamServer.py +0 -0
  65. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/SystemUsageClient.py +0 -0
  66. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/SystemWideDeviceCoordinator.py +0 -0
  67. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/VideoSharingDaemon.py +0 -0
  68. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/VideoStreamClient.py +0 -0
  69. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/WorkerSourceClient.py +0 -0
  70. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/WorkerSourcePipelineClient.py +0 -0
  71. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/WorkerSourceUpdater.py +0 -0
  72. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/WorkerStatusClient.py +0 -0
  73. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/services/__init__.py +0 -0
  74. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/util/FFmpegUtil.py +0 -0
  75. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/util/HardwareID.py +0 -0
  76. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/util/ImageUploader.py +0 -0
  77. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/util/Networking.py +0 -0
  78. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/util/PlatformDetector.py +0 -0
  79. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/util/SystemMonitor.py +0 -0
  80. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/util/VideoProbeUtil.py +0 -0
  81. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/util/__init__.py +0 -0
  82. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/worker/CoreActionWorker.py +0 -0
  83. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/worker/DataSenderWorker.py +0 -0
  84. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/worker/DataSyncWorker.py +0 -0
  85. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/worker/DatasetFrameSender.py +0 -0
  86. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/worker/DatasetFrameWorker.py +0 -0
  87. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/worker/PPEDetectionManager.py +0 -0
  88. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/worker/PipelineActionWorker.py +0 -0
  89. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/worker/PipelineImageWorker.py +0 -0
  90. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/worker/RabbitMQListener.py +0 -0
  91. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/worker/RestrictedAreaManager.py +0 -0
  92. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/worker/SystemUsageManager.py +0 -0
  93. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/worker/VideoStreamWorker.py +0 -0
  94. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/worker/WorkerManager.py +0 -0
  95. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/worker/__init__.py +0 -0
  96. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker/worker_service.py +0 -0
  97. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker.egg-info/SOURCES.txt +0 -0
  98. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker.egg-info/dependency_links.txt +0 -0
  99. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker.egg-info/entry_points.txt +0 -0
  100. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker.egg-info/requires.txt +0 -0
  101. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/nedo_vision_worker.egg-info/top_level.txt +0 -0
  102. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/pyproject.toml +0 -0
  103. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/setup.cfg +0 -0
  104. {nedo_vision_worker-1.2.3 → nedo_vision_worker-1.2.4}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nedo-vision-worker
3
- Version: 1.2.3
3
+ Version: 1.2.4
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>
@@ -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.3"
9
+ __version__ = "1.2.4"
10
10
  __all__ = ["WorkerService"]
@@ -98,7 +98,7 @@ class AIModelClient(GrpcClientBase):
98
98
  if download_info.thread and download_info.thread.is_alive():
99
99
  download_info.thread.join(timeout=5)
100
100
 
101
- self._update_model_status(model_id, "cancelled", "Download cancelled")
101
+ self._update_model_status(model_id, DownloadState.CANCELLED.value, "Download cancelled")
102
102
  logging.info(f"🛑 Cancelled download for {download_info.model_name}")
103
103
  return True
104
104
 
@@ -160,12 +160,11 @@ class AIModelClient(GrpcClientBase):
160
160
 
161
161
  def _handle_existing_model(self, server_model, local_model, updated_models: List):
162
162
  if not self._model_file_exists(local_model.file):
163
- # Only schedule download if not already downloading
164
163
  if not self._is_downloading(server_model.id):
165
164
  logging.warning(f"⚠️ Model file missing for {local_model.name}. Re-downloading...")
166
165
  self._schedule_download(server_model)
167
166
  else:
168
- logging.debug(f"⏳ Model {local_model.name} is already being downloaded, skipping...")
167
+ logging.info(f"⏳ Model {local_model.name} is already being downloaded, skipping reschedule")
169
168
  return
170
169
 
171
170
  needs_update, changes = self._check_model_changes(server_model, local_model)
@@ -197,7 +196,6 @@ class AIModelClient(GrpcClientBase):
197
196
  self._schedule_download(server_model)
198
197
 
199
198
  def _check_model_changes(self, server_model, local_model) -> tuple[bool, List[str]]:
200
- """Check if model needs update and return list of changes"""
201
199
  changes = []
202
200
 
203
201
  if server_model.version != local_model.version:
@@ -250,22 +248,22 @@ class AIModelClient(GrpcClientBase):
250
248
  local_model.set_main_class(server_model.main_class)
251
249
 
252
250
  def _schedule_download(self, model):
253
- # Check if already downloading - don't cancel and restart
254
251
  if self._is_downloading(model.id):
255
- logging.debug(f"⏳ Model {model.name} download already in progress, skipping reschedule")
252
+ logging.info(f"⏳ Model {model.name} download already in progress, skipping reschedule")
256
253
  return
257
254
 
258
- # Only cancel if there's a stale download entry
259
255
  self._cancel_download(model.id)
260
256
 
261
257
  download_info = DownloadInfo(
262
258
  model_id=model.id,
263
259
  model_name=model.name,
264
260
  version=model.version,
261
+ state=DownloadState.PENDING,
265
262
  start_time=time.time()
266
263
  )
267
264
 
268
- self._update_model_status(model.id, "pending")
265
+ self._set_download_info(model.id, download_info)
266
+ self._update_model_status(model.id, DownloadState.PENDING.value)
269
267
 
270
268
  download_info.thread = threading.Thread(
271
269
  target=self._download_worker,
@@ -274,12 +272,11 @@ class AIModelClient(GrpcClientBase):
274
272
  name=f"ModelDownload-{model.id[:8]}"
275
273
  )
276
274
  download_info.thread.start()
277
- self._set_download_info(model.id, download_info)
278
275
 
279
276
  def _download_worker(self, model, download_info: DownloadInfo):
280
277
  try:
281
278
  download_info.state = DownloadState.DOWNLOADING
282
- self._update_model_status(model.id, "downloading")
279
+ self._update_model_status(model.id, DownloadState.DOWNLOADING.value)
283
280
  logging.info(f"📥 Downloading {model.name}...")
284
281
 
285
282
  success = self._download_model_file(model, download_info)
@@ -288,7 +285,7 @@ class AIModelClient(GrpcClientBase):
288
285
  download_info.state = DownloadState.COMPLETED
289
286
  download_info.end_time = time.time()
290
287
  duration = download_info.end_time - download_info.start_time
291
- self._update_model_status(model.id, "completed")
288
+ self._update_model_status(model.id, DownloadState.COMPLETED.value)
292
289
  logging.info(f"✅ Downloaded {model.name} in {duration:.1f}s")
293
290
  else:
294
291
  self._handle_download_failure(download_info, "Download failed")
@@ -301,7 +298,7 @@ class AIModelClient(GrpcClientBase):
301
298
  def _handle_download_failure(self, download_info: DownloadInfo, error: str):
302
299
  download_info.state = DownloadState.FAILED
303
300
  download_info.error_message = error
304
- self._update_model_status(download_info.model_id, "failed", error)
301
+ self._update_model_status(download_info.model_id, DownloadState.FAILED.value, error)
305
302
  logging.error(f"❌ Failed to download {download_info.model_name}: {error}")
306
303
 
307
304
  def _save_changes(self, new_models: List, updated_models: List, models_to_delete: List):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nedo-vision-worker
3
- Version: 1.2.3
3
+ Version: 1.2.4
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>