nedo-vision-worker 1.3.3__tar.gz → 1.3.6__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.3.3 → nedo_vision_worker-1.3.6}/PKG-INFO +1 -1
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/__init__.py +1 -1
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/PPEDetectionRepository.py +2 -2
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/RestrictedAreaRepository.py +2 -2
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/DataSenderWorker.py +4 -15
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/PPEDetectionManager.py +3 -22
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/RestrictedAreaManager.py +3 -22
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker.egg-info/PKG-INFO +1 -1
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/README.md +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/cli.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/config/ConfigurationManager.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/config/__init__.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/database/DatabaseManager.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/database/__init__.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/doctor.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/initializer/AppInitializer.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/initializer/__init__.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/__init__.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/ai_model.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/auth.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/config.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/dataset_source.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/logs.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/ppe_detection.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/ppe_detection_label.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/restricted_area_violation.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/user.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/worker_source.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/worker_source_pipeline.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/worker_source_pipeline_config.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/worker_source_pipeline_debug.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/worker_source_pipeline_detection.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/AIModelService_pb2.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/AIModelService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/DatasetSourceService_pb2.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/DatasetSourceService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/HumanDetectionService_pb2.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/HumanDetectionService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/PPEDetectionService_pb2.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/PPEDetectionService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/VisionWorkerService_pb2.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/VisionWorkerService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/WorkerSourcePipelineService_pb2.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/WorkerSourcePipelineService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/WorkerSourceService_pb2.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/WorkerSourceService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/__init__.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/AIModelRepository.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/DatasetSourceRepository.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/WorkerSourcePipelineDebugRepository.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/WorkerSourcePipelineDetectionRepository.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/WorkerSourcePipelineRepository.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/WorkerSourceRepository.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/__init__.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/AIModelClient.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/ConnectionInfoClient.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/DatasetSourceClient.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/DirectDeviceToRTMPStreamer.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/FileToRTMPServer.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/GrpcClientBase.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/GrpcClientManager.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/GrpcConnection.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/ImageUploadClient.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/PPEDetectionClient.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/RTSPtoRTMPStreamer.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/RestrictedAreaClient.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/SharedDirectDeviceClient.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/SharedVideoStreamServer.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/SystemUsageClient.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/SystemWideDeviceCoordinator.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/VideoSharingDaemon.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/VideoStreamClient.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/WorkerSourceClient.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/WorkerSourcePipelineClient.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/WorkerSourceUpdater.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/WorkerStatusClient.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/__init__.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/EncoderSelector.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/FFmpegUtil.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/HardwareID.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/ImageUploader.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/Networking.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/PlatformDetector.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/SystemMonitor.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/VideoProbeUtil.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/__init__.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/CoreActionWorker.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/DataSyncWorker.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/DatasetFrameSender.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/DatasetFrameWorker.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/PipelineActionWorker.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/PipelineImageWorker.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/PipelinePreviewWorker.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/RabbitMQListener.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/SystemUsageManager.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/VideoStreamWorker.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/WorkerManager.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/__init__.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker_service.py +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker.egg-info/SOURCES.txt +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker.egg-info/dependency_links.txt +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker.egg-info/entry_points.txt +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker.egg-info/requires.txt +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker.egg-info/top_level.txt +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/pyproject.toml +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/setup.cfg +0 -0
- {nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nedo-vision-worker
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.6
|
|
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>
|
|
@@ -2,7 +2,7 @@ import os
|
|
|
2
2
|
import logging
|
|
3
3
|
from pathlib import Path
|
|
4
4
|
from sqlalchemy.orm import Session, joinedload
|
|
5
|
-
from sqlalchemy import
|
|
5
|
+
from sqlalchemy import desc
|
|
6
6
|
from sqlalchemy.exc import SQLAlchemyError
|
|
7
7
|
from ..database.DatabaseManager import DatabaseManager, get_storage_path
|
|
8
8
|
from ..models.ppe_detection import PPEDetectionEntity
|
|
@@ -33,7 +33,7 @@ class PPEDetectionRepository:
|
|
|
33
33
|
latest_detections = (
|
|
34
34
|
self.session.query(PPEDetectionEntity)
|
|
35
35
|
.options(joinedload(PPEDetectionEntity.ppe_labels))
|
|
36
|
-
.order_by(
|
|
36
|
+
.order_by(desc(PPEDetectionEntity.created_at))
|
|
37
37
|
.limit(limit)
|
|
38
38
|
.all()
|
|
39
39
|
)
|
|
@@ -2,7 +2,7 @@ import os
|
|
|
2
2
|
import logging
|
|
3
3
|
from pathlib import Path
|
|
4
4
|
from sqlalchemy.orm import Session
|
|
5
|
-
from sqlalchemy import
|
|
5
|
+
from sqlalchemy import desc
|
|
6
6
|
from sqlalchemy.exc import SQLAlchemyError
|
|
7
7
|
from ..database.DatabaseManager import DatabaseManager, get_storage_path
|
|
8
8
|
from ..models.restricted_area_violation import RestrictedAreaViolationEntity
|
|
@@ -29,7 +29,7 @@ class RestrictedAreaRepository:
|
|
|
29
29
|
try:
|
|
30
30
|
latest_violations = (
|
|
31
31
|
self.session.query(RestrictedAreaViolationEntity)
|
|
32
|
-
.order_by(
|
|
32
|
+
.order_by(desc(RestrictedAreaViolationEntity.created_at))
|
|
33
33
|
.limit(limit)
|
|
34
34
|
.all()
|
|
35
35
|
)
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/DataSenderWorker.py
RENAMED
|
@@ -152,28 +152,17 @@ class DataSenderWorker:
|
|
|
152
152
|
|
|
153
153
|
def _calculate_sleep_interval(self, ppe_pending: int, violation_pending: int) -> float:
|
|
154
154
|
"""
|
|
155
|
-
|
|
156
|
-
Conservative approach to prevent server overload.
|
|
155
|
+
Returns fixed sleep interval to prevent storage rate limits.
|
|
157
156
|
|
|
158
157
|
Args:
|
|
159
158
|
ppe_pending: Number of pending PPE detections
|
|
160
159
|
violation_pending: Number of pending violations
|
|
161
160
|
|
|
162
161
|
Returns:
|
|
163
|
-
float: Sleep interval in seconds
|
|
162
|
+
float: Sleep interval in seconds (fixed at 5s)
|
|
164
163
|
"""
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
if total_pending == 0:
|
|
168
|
-
return self.send_interval
|
|
169
|
-
elif total_pending < 50:
|
|
170
|
-
return self.send_interval
|
|
171
|
-
elif total_pending < 200:
|
|
172
|
-
return 3.0
|
|
173
|
-
elif total_pending < 500:
|
|
174
|
-
return 2.0
|
|
175
|
-
else:
|
|
176
|
-
return 1.5
|
|
164
|
+
# Fixed 5 second interval to respect storage rate limits
|
|
165
|
+
return self.send_interval
|
|
177
166
|
|
|
178
167
|
def _run_worker_source_updater(self):
|
|
179
168
|
"""Dedicated loop for updating worker sources at a different interval."""
|
|
@@ -51,25 +51,6 @@ class PPEDetectionManager:
|
|
|
51
51
|
|
|
52
52
|
logger.info("📡 [APP] PPE detection monitoring started.")
|
|
53
53
|
|
|
54
|
-
def _calculate_fetch_size(self, pending_count: int) -> int:
|
|
55
|
-
"""
|
|
56
|
-
Dynamically calculates how many records to fetch based on pending count.
|
|
57
|
-
|
|
58
|
-
Args:
|
|
59
|
-
pending_count (int): Number of pending detections
|
|
60
|
-
|
|
61
|
-
Returns:
|
|
62
|
-
int: Number of records to fetch
|
|
63
|
-
"""
|
|
64
|
-
if pending_count <= 50:
|
|
65
|
-
return min(pending_count, 10)
|
|
66
|
-
elif pending_count <= 200:
|
|
67
|
-
return min(pending_count, 30)
|
|
68
|
-
elif pending_count <= 1000:
|
|
69
|
-
return min(pending_count, 50)
|
|
70
|
-
else:
|
|
71
|
-
return min(pending_count, 100)
|
|
72
|
-
|
|
73
54
|
def _calculate_batch_by_size(self, all_detections: list, max_size_mb: int = 40) -> list:
|
|
74
55
|
"""
|
|
75
56
|
Calculates batch based on actual image file sizes to stay within gRPC limit.
|
|
@@ -110,15 +91,15 @@ class PPEDetectionManager:
|
|
|
110
91
|
return batch
|
|
111
92
|
|
|
112
93
|
def send_ppe_detection_batch(self):
|
|
113
|
-
"""Sends a batch of collected PPE detection data to the server with
|
|
94
|
+
"""Sends a batch of collected PPE detection data to the server with fixed 5 detection batch size."""
|
|
114
95
|
try:
|
|
115
96
|
pending_count = self.ppe_detection_repo.get_total_pending_count()
|
|
116
97
|
|
|
117
98
|
if pending_count == 0:
|
|
118
99
|
return
|
|
119
100
|
|
|
120
|
-
|
|
121
|
-
all_detections = self.ppe_detection_repo.get_latest_detections(
|
|
101
|
+
# Fixed batch size of 5 to prevent storage rate limits
|
|
102
|
+
all_detections = self.ppe_detection_repo.get_latest_detections(5)
|
|
122
103
|
|
|
123
104
|
if not all_detections:
|
|
124
105
|
return
|
|
@@ -51,25 +51,6 @@ class RestrictedAreaManager:
|
|
|
51
51
|
|
|
52
52
|
logger.info("📡 [APP] Restricted area violation monitoring started.")
|
|
53
53
|
|
|
54
|
-
def _calculate_fetch_size(self, pending_count: int) -> int:
|
|
55
|
-
"""
|
|
56
|
-
Dynamically calculates how many records to fetch based on pending count.
|
|
57
|
-
|
|
58
|
-
Args:
|
|
59
|
-
pending_count (int): Number of pending violations
|
|
60
|
-
|
|
61
|
-
Returns:
|
|
62
|
-
int: Number of records to fetch
|
|
63
|
-
"""
|
|
64
|
-
if pending_count <= 50:
|
|
65
|
-
return min(pending_count, 10)
|
|
66
|
-
elif pending_count <= 200:
|
|
67
|
-
return min(pending_count, 30)
|
|
68
|
-
elif pending_count <= 1000:
|
|
69
|
-
return min(pending_count, 50)
|
|
70
|
-
else:
|
|
71
|
-
return min(pending_count, 100)
|
|
72
|
-
|
|
73
54
|
def _calculate_batch_by_size(self, all_violations: list, max_size_mb: int = 40) -> list:
|
|
74
55
|
"""
|
|
75
56
|
Calculates batch based on actual image file sizes to stay within gRPC limit.
|
|
@@ -108,15 +89,15 @@ class RestrictedAreaManager:
|
|
|
108
89
|
return batch
|
|
109
90
|
|
|
110
91
|
def send_violation_batch(self):
|
|
111
|
-
"""Sends a batch of collected violation data to the server with
|
|
92
|
+
"""Sends a batch of collected violation data to the server with fixed 5 violation batch size."""
|
|
112
93
|
try:
|
|
113
94
|
pending_count = self.repo.get_total_pending_count()
|
|
114
95
|
|
|
115
96
|
if pending_count == 0:
|
|
116
97
|
return
|
|
117
98
|
|
|
118
|
-
|
|
119
|
-
all_violations = self.repo.get_latest_violations(
|
|
99
|
+
# Fixed batch size of 5 to prevent storage rate limits
|
|
100
|
+
all_violations = self.repo.get_latest_violations(5)
|
|
120
101
|
|
|
121
102
|
if not all_violations:
|
|
122
103
|
return
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nedo-vision-worker
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.6
|
|
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>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/database/DatabaseManager.py
RENAMED
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/database/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/initializer/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/dataset_source.py
RENAMED
|
File without changes
|
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/ppe_detection.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/worker_source.py
RENAMED
|
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
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/__init__.py
RENAMED
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/AIModelClient.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/GrpcClientBase.py
RENAMED
|
File without changes
|
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/GrpcConnection.py
RENAMED
|
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
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/__init__.py
RENAMED
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/EncoderSelector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/ImageUploader.py
RENAMED
|
File without changes
|
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/PlatformDetector.py
RENAMED
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/SystemMonitor.py
RENAMED
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/VideoProbeUtil.py
RENAMED
|
File without changes
|
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/CoreActionWorker.py
RENAMED
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/DataSyncWorker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/RabbitMQListener.py
RENAMED
|
File without changes
|
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/VideoStreamWorker.py
RENAMED
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/WorkerManager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker.egg-info/requires.txt
RENAMED
|
File without changes
|
{nedo_vision_worker-1.3.3 → nedo_vision_worker-1.3.6}/nedo_vision_worker.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|