nedo-vision-worker 1.3.5__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.5 → nedo_vision_worker-1.3.6}/PKG-INFO +1 -1
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/__init__.py +1 -1
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/PPEDetectionRepository.py +2 -2
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/RestrictedAreaRepository.py +2 -2
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/DataSenderWorker.py +4 -17
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/PPEDetectionManager.py +3 -23
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/RestrictedAreaManager.py +3 -23
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker.egg-info/PKG-INFO +1 -1
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/README.md +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/cli.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/config/ConfigurationManager.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/config/__init__.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/database/DatabaseManager.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/database/__init__.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/doctor.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/initializer/AppInitializer.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/initializer/__init__.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/__init__.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/ai_model.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/auth.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/config.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/dataset_source.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/logs.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/ppe_detection.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/ppe_detection_label.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/restricted_area_violation.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/user.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/worker_source.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/worker_source_pipeline.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/worker_source_pipeline_config.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/worker_source_pipeline_debug.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/models/worker_source_pipeline_detection.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/AIModelService_pb2.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/AIModelService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/DatasetSourceService_pb2.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/DatasetSourceService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/HumanDetectionService_pb2.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/HumanDetectionService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/PPEDetectionService_pb2.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/PPEDetectionService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/VisionWorkerService_pb2.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/VisionWorkerService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/WorkerSourcePipelineService_pb2.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/WorkerSourcePipelineService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/WorkerSourceService_pb2.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/WorkerSourceService_pb2_grpc.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/protos/__init__.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/AIModelRepository.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/DatasetSourceRepository.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/WorkerSourcePipelineDebugRepository.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/WorkerSourcePipelineDetectionRepository.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/WorkerSourcePipelineRepository.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/WorkerSourceRepository.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/__init__.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/AIModelClient.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/ConnectionInfoClient.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/DatasetSourceClient.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/DirectDeviceToRTMPStreamer.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/FileToRTMPServer.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/GrpcClientBase.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/GrpcClientManager.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/GrpcConnection.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/ImageUploadClient.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/PPEDetectionClient.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/RTSPtoRTMPStreamer.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/RestrictedAreaClient.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/SharedDirectDeviceClient.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/SharedVideoStreamServer.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/SystemUsageClient.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/SystemWideDeviceCoordinator.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/VideoSharingDaemon.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/VideoStreamClient.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/WorkerSourceClient.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/WorkerSourcePipelineClient.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/WorkerSourceUpdater.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/WorkerStatusClient.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/__init__.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/EncoderSelector.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/FFmpegUtil.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/HardwareID.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/ImageUploader.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/Networking.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/PlatformDetector.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/SystemMonitor.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/VideoProbeUtil.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/__init__.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/CoreActionWorker.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/DataSyncWorker.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/DatasetFrameSender.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/DatasetFrameWorker.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/PipelineActionWorker.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/PipelineImageWorker.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/PipelinePreviewWorker.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/RabbitMQListener.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/SystemUsageManager.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/VideoStreamWorker.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/WorkerManager.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/__init__.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker_service.py +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker.egg-info/SOURCES.txt +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker.egg-info/dependency_links.txt +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker.egg-info/entry_points.txt +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker.egg-info/requires.txt +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker.egg-info/top_level.txt +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/pyproject.toml +0 -0
- {nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/setup.cfg +0 -0
- {nedo_vision_worker-1.3.5 → 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.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/DataSenderWorker.py
RENAMED
|
@@ -152,30 +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 and storage rate limits.
|
|
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 4.0
|
|
173
|
-
elif total_pending < 500:
|
|
174
|
-
return 3.0
|
|
175
|
-
elif total_pending < 1000:
|
|
176
|
-
return 2.5
|
|
177
|
-
else:
|
|
178
|
-
return 2.0
|
|
164
|
+
# Fixed 5 second interval to respect storage rate limits
|
|
165
|
+
return self.send_interval
|
|
179
166
|
|
|
180
167
|
def _run_worker_source_updater(self):
|
|
181
168
|
"""Dedicated loop for updating worker sources at a different interval."""
|
|
@@ -51,26 +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
|
-
Reduced to prevent storage rate limits (each detection = 2 images = 2 dir checks).
|
|
58
|
-
|
|
59
|
-
Args:
|
|
60
|
-
pending_count (int): Number of pending detections
|
|
61
|
-
|
|
62
|
-
Returns:
|
|
63
|
-
int: Number of records to fetch
|
|
64
|
-
"""
|
|
65
|
-
if pending_count <= 50:
|
|
66
|
-
return min(pending_count, 5)
|
|
67
|
-
elif pending_count <= 200:
|
|
68
|
-
return min(pending_count, 10)
|
|
69
|
-
elif pending_count <= 1000:
|
|
70
|
-
return min(pending_count, 15)
|
|
71
|
-
else:
|
|
72
|
-
return min(pending_count, 20)
|
|
73
|
-
|
|
74
54
|
def _calculate_batch_by_size(self, all_detections: list, max_size_mb: int = 40) -> list:
|
|
75
55
|
"""
|
|
76
56
|
Calculates batch based on actual image file sizes to stay within gRPC limit.
|
|
@@ -111,15 +91,15 @@ class PPEDetectionManager:
|
|
|
111
91
|
return batch
|
|
112
92
|
|
|
113
93
|
def send_ppe_detection_batch(self):
|
|
114
|
-
"""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."""
|
|
115
95
|
try:
|
|
116
96
|
pending_count = self.ppe_detection_repo.get_total_pending_count()
|
|
117
97
|
|
|
118
98
|
if pending_count == 0:
|
|
119
99
|
return
|
|
120
100
|
|
|
121
|
-
|
|
122
|
-
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)
|
|
123
103
|
|
|
124
104
|
if not all_detections:
|
|
125
105
|
return
|
|
@@ -51,26 +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
|
-
Reduced to prevent storage rate limits (each violation = 2 images = 2 dir checks).
|
|
58
|
-
|
|
59
|
-
Args:
|
|
60
|
-
pending_count (int): Number of pending violations
|
|
61
|
-
|
|
62
|
-
Returns:
|
|
63
|
-
int: Number of records to fetch
|
|
64
|
-
"""
|
|
65
|
-
if pending_count <= 50:
|
|
66
|
-
return min(pending_count, 5)
|
|
67
|
-
elif pending_count <= 200:
|
|
68
|
-
return min(pending_count, 10)
|
|
69
|
-
elif pending_count <= 1000:
|
|
70
|
-
return min(pending_count, 15)
|
|
71
|
-
else:
|
|
72
|
-
return min(pending_count, 20)
|
|
73
|
-
|
|
74
54
|
def _calculate_batch_by_size(self, all_violations: list, max_size_mb: int = 40) -> list:
|
|
75
55
|
"""
|
|
76
56
|
Calculates batch based on actual image file sizes to stay within gRPC limit.
|
|
@@ -109,15 +89,15 @@ class RestrictedAreaManager:
|
|
|
109
89
|
return batch
|
|
110
90
|
|
|
111
91
|
def send_violation_batch(self):
|
|
112
|
-
"""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."""
|
|
113
93
|
try:
|
|
114
94
|
pending_count = self.repo.get_total_pending_count()
|
|
115
95
|
|
|
116
96
|
if pending_count == 0:
|
|
117
97
|
return
|
|
118
98
|
|
|
119
|
-
|
|
120
|
-
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)
|
|
121
101
|
|
|
122
102
|
if not all_violations:
|
|
123
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.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/database/DatabaseManager.py
RENAMED
|
File without changes
|
{nedo_vision_worker-1.3.5 → 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.5 → 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.5 → 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.5 → 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.5 → 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.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/repositories/__init__.py
RENAMED
|
File without changes
|
{nedo_vision_worker-1.3.5 → 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.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/GrpcClientBase.py
RENAMED
|
File without changes
|
|
File without changes
|
{nedo_vision_worker-1.3.5 → 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.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/services/__init__.py
RENAMED
|
File without changes
|
{nedo_vision_worker-1.3.5 → 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.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/ImageUploader.py
RENAMED
|
File without changes
|
|
File without changes
|
{nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/PlatformDetector.py
RENAMED
|
File without changes
|
{nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/SystemMonitor.py
RENAMED
|
File without changes
|
{nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/util/VideoProbeUtil.py
RENAMED
|
File without changes
|
|
File without changes
|
{nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/CoreActionWorker.py
RENAMED
|
File without changes
|
{nedo_vision_worker-1.3.5 → 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.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/RabbitMQListener.py
RENAMED
|
File without changes
|
|
File without changes
|
{nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker/worker/VideoStreamWorker.py
RENAMED
|
File without changes
|
{nedo_vision_worker-1.3.5 → 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.5 → 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.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{nedo_vision_worker-1.3.5 → nedo_vision_worker-1.3.6}/nedo_vision_worker.egg-info/requires.txt
RENAMED
|
File without changes
|
{nedo_vision_worker-1.3.5 → 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
|