fix: 修复 TensorRT bindings 问题
- tensorrt_engine.py 添加 pycuda 支持 - CUDA 上下文和流管理 - _is_in_working_hours 支持字符串格式
This commit is contained in:
@@ -49,14 +49,39 @@ class LeavePostAlgorithm:
|
||||
def _is_in_working_hours(self, dt: Optional[datetime] = None) -> bool:
|
||||
if not self.working_hours:
|
||||
return True
|
||||
|
||||
import json
|
||||
|
||||
working_hours = self.working_hours
|
||||
if isinstance(working_hours, str):
|
||||
try:
|
||||
working_hours = json.loads(working_hours)
|
||||
except:
|
||||
return True
|
||||
|
||||
if not working_hours:
|
||||
return True
|
||||
|
||||
dt = dt or datetime.now()
|
||||
current_minutes = dt.hour * 60 + dt.minute
|
||||
for period in self.working_hours:
|
||||
start_minutes = period["start"][0] * 60 + period["start"][1]
|
||||
end_minutes = period["end"][0] * 60 + period["end"][1]
|
||||
for period in working_hours:
|
||||
start_str = period["start"] if isinstance(period, dict) else period
|
||||
end_str = period["end"] if isinstance(period, dict) else period
|
||||
start_minutes = self._parse_time_to_minutes(start_str)
|
||||
end_minutes = self._parse_time_to_minutes(end_str)
|
||||
if start_minutes <= current_minutes < end_minutes:
|
||||
return True
|
||||
return False
|
||||
|
||||
def _parse_time_to_minutes(self, time_str: str) -> int:
|
||||
"""将时间字符串转换为分钟数"""
|
||||
if isinstance(time_str, int):
|
||||
return time_str
|
||||
try:
|
||||
parts = time_str.split(":")
|
||||
return int(parts[0]) * 60 + int(parts[1])
|
||||
except:
|
||||
return 0
|
||||
|
||||
def _check_detection_in_roi(self, detection: Dict, roi_id: str) -> bool:
|
||||
matched_rois = detection.get("matched_rois", [])
|
||||
|
||||
Reference in New Issue
Block a user