from msgpack import unpackb cdef class AIRecognitionConfig: def __init__(self, frame_period_recognition, frame_recognition_seconds, probability_threshold, tracking_distance_confidence, tracking_probability_increase, tracking_intersection_threshold, file_data, paths ): self.frame_period_recognition = frame_period_recognition self.frame_recognition_seconds = frame_recognition_seconds self.probability_threshold = probability_threshold self.tracking_distance_confidence = tracking_distance_confidence self.tracking_probability_increase = tracking_probability_increase self.tracking_intersection_threshold = tracking_intersection_threshold self.file_data = file_data self.paths = paths def __str__(self): return (f'frame_seconds : {self.frame_recognition_seconds}, distance_confidence : {self.tracking_distance_confidence}, ' f'probability_increase : {self.tracking_probability_increase}, ' f'intersection_threshold : {self.tracking_intersection_threshold}, ' f'frame_period_recognition : {self.frame_period_recognition}, ' f'paths: {self.paths}') @staticmethod cdef from_msgpack(bytes data): unpacked = unpackb(data, strict_map_key=False) return AIRecognitionConfig( unpacked.get("FramePeriodRecognition", 0), unpacked.get("FrameRecognitionSeconds", 0.0), unpacked.get("ProbabilityThreshold", 0.0), unpacked.get("TrackingDistanceConfidence", 0.0), unpacked.get("TrackingProbabilityIncrease", 0.0), unpacked.get("TrackingIntersectionThreshold", 0.0), unpacked.get("Data", b''), unpacked.get("Paths", []), )