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.
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/PKG-INFO +3 -1
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/README.md +2 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/__init__.py +1 -1
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/doctor.py +32 -2
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/repositories/WorkerSourceRepository.py +10 -1
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/GrpcClientBase.py +1 -1
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/WorkerSourcePipelineClient.py +189 -177
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/WorkerSourceUpdater.py +4 -3
- nedo_vision_worker-1.2.2/nedo_vision_worker/util/FFmpegUtil.py +73 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/util/VideoProbeUtil.py +1 -6
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/DataSenderWorker.py +1 -1
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/PipelineImageWorker.py +1 -1
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker.egg-info/PKG-INFO +3 -1
- nedo_vision_worker-1.2.1/nedo_vision_worker/util/FFmpegUtil.py +0 -124
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/cli.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/config/ConfigurationManager.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/config/__init__.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/database/DatabaseManager.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/database/__init__.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/initializer/AppInitializer.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/initializer/__init__.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/__init__.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/ai_model.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/auth.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/config.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/dataset_source.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/logs.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/ppe_detection.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/ppe_detection_label.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/restricted_area_violation.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/user.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/worker_source.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/worker_source_pipeline.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/worker_source_pipeline_config.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/worker_source_pipeline_debug.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/models/worker_source_pipeline_detection.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/AIModelService_pb2.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/AIModelService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/DatasetSourceService_pb2.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/DatasetSourceService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/HumanDetectionService_pb2.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/HumanDetectionService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/PPEDetectionService_pb2.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/PPEDetectionService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/VisionWorkerService_pb2.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/VisionWorkerService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/WorkerSourcePipelineService_pb2.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/WorkerSourcePipelineService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/WorkerSourceService_pb2.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/WorkerSourceService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/protos/__init__.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/repositories/AIModelRepository.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/repositories/DatasetSourceRepository.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/repositories/PPEDetectionRepository.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/repositories/RestrictedAreaRepository.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/repositories/WorkerSourcePipelineDebugRepository.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/repositories/WorkerSourcePipelineDetectionRepository.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/repositories/WorkerSourcePipelineRepository.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/repositories/__init__.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/AIModelClient.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/ConnectionInfoClient.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/DatasetSourceClient.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/DirectDeviceToRTMPStreamer.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/FileToRTMPServer.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/GrpcClientManager.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/ImageUploadClient.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/PPEDetectionClient.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/RTSPtoRTMPStreamer.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/RestrictedAreaClient.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/SharedDirectDeviceClient.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/SharedVideoStreamServer.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/SystemUsageClient.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/SystemWideDeviceCoordinator.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/VideoSharingDaemon.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/VideoStreamClient.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/WorkerSourceClient.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/WorkerStatusClient.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/__init__.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/util/HardwareID.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/util/ImageUploader.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/util/Networking.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/util/PlatformDetector.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/util/SystemMonitor.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/util/__init__.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/CoreActionWorker.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/DataSyncWorker.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/DatasetFrameSender.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/DatasetFrameWorker.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/PPEDetectionManager.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/PipelineActionWorker.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/RabbitMQListener.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/RestrictedAreaManager.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/SystemUsageManager.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/VideoStreamWorker.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/WorkerManager.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker/__init__.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/worker_service.py +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker.egg-info/SOURCES.txt +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker.egg-info/dependency_links.txt +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker.egg-info/entry_points.txt +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker.egg-info/requires.txt +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker.egg-info/top_level.txt +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/pyproject.toml +0 -0
- {nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/setup.cfg +0 -0
- {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.
|
|
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:
|
|
@@ -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,
|
|
91
|
-
recommended_version = (3,
|
|
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
|
{nedo_vision_worker-1.2.1 → nedo_vision_worker-1.2.2}/nedo_vision_worker/services/GrpcClientBase.py
RENAMED
|
@@ -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))
|