matrice 1.0.99220__tar.gz → 1.0.99221__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.
- {matrice-1.0.99220/src/matrice.egg-info → matrice-1.0.99221}/PKG-INFO +1 -1
- {matrice-1.0.99220 → matrice-1.0.99221}/setup.py +1 -1
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/core/config.py +6 -6
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/processor.py +3 -3
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/__init__.py +3 -3
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/human_activity.py +8 -8
- {matrice-1.0.99220 → matrice-1.0.99221/src/matrice.egg-info}/PKG-INFO +1 -1
- {matrice-1.0.99220 → matrice-1.0.99221}/LICENSE.txt +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/README.md +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/setup.cfg +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/action.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/actionTracker.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/action_tracker.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/annotation.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/app_store.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/application.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/compute.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/compute_manager/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/compute_manager/action_instance.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/compute_manager/actions_manager.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/compute_manager/actions_scaledown_manager.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/compute_manager/instance_manager.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/compute_manager/instance_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/compute_manager/prechecks.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/compute_manager/resources_tracker.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/compute_manager/scaling.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/compute_manager/shutdown_manager.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/compute_manager/task_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/aug_server.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/aug_server_v2.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/base.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/bit_depth_reduction.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/blur.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/brightness_contrast.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/color_jitter.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/compression_artifacts.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/downscale_upscale.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/film_grain.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/flip.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/fog.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/horizontal_flip.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/hsv.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/iso_noise.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/low_light.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/posterize.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/rain.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/random_affine.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/salt_pepper.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/shadows.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/snow.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/speckle.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/strategies/sunflare.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/client.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/client_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/create_dataset.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_augmentation.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_augmentor.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/imagenet_classification.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/labelbox_classification.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/labelbox_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/mscoco_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/pascalvoc_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/unlabelled.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/video_davis_segmentation.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/video_detection_mscoco.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/video_imagenet_classification.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/video_kinetics_activity_recognition.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/video_mot_tracking.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/video_mscoco_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/video_youtube_bb_tracking.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/yolo_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_labelling.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_prep.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_processor.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/image_augmentations.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/image_data_augmentation.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/new_data_augmentation.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/pipeline.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/server.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/server_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/video_server.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/dataset.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/aggregator/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/aggregator/aggregator.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/aggregator/ingestor.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/aggregator/pipeline.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/aggregator/publisher.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/aggregator/synchronizer.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/client/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/client/auto_streaming/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/client/auto_streaming/auto_streaming.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/client/auto_streaming/auto_streaming_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/client/client.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/client/client_stream_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/client/client_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/client/frame_comparators.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/client/streaming_gateway/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/client/streaming_gateway/streaming_gateway.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/client/streaming_gateway/streaming_gateway_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/client/streaming_gateway/streaming_results_handler.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/server/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/server/inference/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/server/inference/batch_manager.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/server/inference/cache_manager.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/server/inference/inference_interface.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/server/inference/model_manager.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/server/inference/triton_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/server/proxy/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/server/proxy/proxy_interface.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/server/proxy/proxy_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/server/server.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/server/stream_worker.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/boundary_drawing_internal/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/boundary_drawing_internal/boundary_drawing_internal.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/boundary_drawing_internal/boundary_drawing_tool.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/boundary_drawing_internal/example_usage.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/kafka_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/advanced_tracker/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/advanced_tracker/base.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/advanced_tracker/config.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/advanced_tracker/kalman_filter.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/advanced_tracker/matching.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/advanced_tracker/strack.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/advanced_tracker/tracker.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/config.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/core/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/core/base.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/core/config_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/test_cases/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/test_cases/run_tests.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/test_cases/test_advanced_customer_service.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/test_cases/test_basic_counting_tracking.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/test_cases/test_comprehensive.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/test_cases/test_config.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/test_cases/test_customer_service.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/test_cases/test_data_generators.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/test_cases/test_people_counting.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/test_cases/test_processor.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/test_cases/test_utilities.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/test_cases/test_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/Histopathological_Cancer_Detection_img.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/advanced_customer_service.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/age_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/anti_spoofing_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/assembly_line_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/banana_defect_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/basic_counting_tracking.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/blood_cancer_detection_img.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/car_damage_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/car_part_segmentation.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/cardiomegaly_classification.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/chicken_pose_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/child_monitoring.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/color_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/color_map_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/concrete_crack_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/crop_weed_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/customer_service.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/defect_detection_products.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/distracted_driver_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/drowsy_driver_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/emergency_vehicle_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/face_emotion.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/face_recognition.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/fashion_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/field_mapping.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/fire_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/flare_analysis.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/flower_segmentation.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/gas_leak_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/gender_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/leaf.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/leaf_disease.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/leak_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/license_plate_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/litter_monitoring.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/mask_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/parking.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/parking_space_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/pedestrian_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/people_counting.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/pipeline_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/plaque_segmentation_img.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/pothole_segmentation.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/ppe_compliance.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/price_tag_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/road_lane_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/road_traffic_density.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/road_view_segmentation.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/shelf_inventory_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/shoplifting_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/shopping_cart_analysis.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/skin_cancer_classification_img.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/smoker_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/solar_panel.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/template_usecase.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/theft_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/traffic_sign_monitoring.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/underwater_pollution_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/vehicle_monitoring.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/warehouse_object_segmentation.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/waterbody_segmentation.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/weapon_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/weld_defect_detection.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/windmill_maintenance.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/usecases/wound_segmentation.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/utils/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/utils/advanced_counting_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/utils/advanced_helper_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/utils/advanced_tracking_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/utils/alerting_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/utils/category_mapping_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/utils/color_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/utils/counting_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/utils/filter_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/utils/format_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/utils/geometry_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/utils/smoothing_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/utils/tracking_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deployment/__init__.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deployment/camera_manager.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deployment/deployment.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deployment/inference_pipeline.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deployment/streaming_gateway_manager.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/docker_utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/drift_monitor.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/exported_model.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/local_test.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/metrics_calculator.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/metrics_calculator_oop.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/model_store.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/models.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/pipeline.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/projects.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/rpc.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/scaling.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/session.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/testing.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/token_auth.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/utils.py +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice.egg-info/SOURCES.txt +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice.egg-info/dependency_links.txt +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice.egg-info/requires.txt +0 -0
- {matrice-1.0.99220 → matrice-1.0.99221}/src/matrice.egg-info/top_level.txt +0 -0
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/core/config.py
RENAMED
@@ -873,8 +873,8 @@ class ConfigManager:
|
|
873
873
|
def human_activity_config_class(self):
|
874
874
|
"""Register a configuration class for a use case."""
|
875
875
|
try:
|
876
|
-
from ..usecases.human_activity import
|
877
|
-
return
|
876
|
+
from ..usecases.human_activity import HumanActivityConfig
|
877
|
+
return HumanActivityConfig
|
878
878
|
except ImportError:
|
879
879
|
return None
|
880
880
|
|
@@ -1856,13 +1856,13 @@ class ConfigManager:
|
|
1856
1856
|
|
1857
1857
|
elif usecase == "human_activity":
|
1858
1858
|
# Import here to avoid circular import
|
1859
|
-
from ..usecases.human_activity import
|
1859
|
+
from ..usecases.human_activity import HumanActivityConfig
|
1860
1860
|
|
1861
1861
|
alert_config = kwargs.pop("alert_config", None)
|
1862
1862
|
if alert_config and isinstance(alert_config, dict):
|
1863
1863
|
alert_config = AlertConfig(**alert_config)
|
1864
1864
|
|
1865
|
-
config =
|
1865
|
+
config = HumanActivityConfig(
|
1866
1866
|
category=category or "general",
|
1867
1867
|
usecase=usecase,
|
1868
1868
|
zone_config=zone_config,
|
@@ -2343,8 +2343,8 @@ class ConfigManager:
|
|
2343
2343
|
return default_config.to_dict()
|
2344
2344
|
elif usecase == "human_activity":
|
2345
2345
|
# Import here to avoid circular import
|
2346
|
-
from ..usecases.human_activity import
|
2347
|
-
default_config =
|
2346
|
+
from ..usecases.human_activity import HumanActivityConfig
|
2347
|
+
default_config = HumanActivityConfig()
|
2348
2348
|
return default_config.to_dict()
|
2349
2349
|
elif usecase == "gas_leak_detection":
|
2350
2350
|
# Import here to avoid circular import
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/processor.py
RENAMED
@@ -61,7 +61,7 @@ from .usecases import (
|
|
61
61
|
LaneDetectionUseCase,
|
62
62
|
LitterDetectionUseCase,
|
63
63
|
LeakDetectionUseCase,
|
64
|
-
|
64
|
+
HumanActivityUseCase,
|
65
65
|
GasLeakUseCase,
|
66
66
|
|
67
67
|
|
@@ -224,7 +224,7 @@ class PostProcessor:
|
|
224
224
|
registry.register_use_case("agriculture", "waterbody_segmentation", WaterBodyUseCase)
|
225
225
|
registry.register_use_case("litter_detection", "litter_detection", LitterDetectionUseCase)
|
226
226
|
registry.register_use_case("oil_gas", "leak_detection", LeakDetectionUseCase)
|
227
|
-
registry.register_use_case("general", "human_activity",
|
227
|
+
registry.register_use_case("general", "human_activity", HumanActivityUseCase)
|
228
228
|
registry.register_use_case("oil_gas", "gas_leak_detection", GasLeakUseCase)
|
229
229
|
|
230
230
|
#Put all IMAGE based usecases here
|
@@ -400,7 +400,7 @@ class PostProcessor:
|
|
400
400
|
result = use_case.process(data, parsed_config, context, stream_info)
|
401
401
|
elif isinstance(use_case, LeakDetectionUseCase):
|
402
402
|
result = use_case.process(data, parsed_config, context, stream_info)
|
403
|
-
elif isinstance(use_case,
|
403
|
+
elif isinstance(use_case, HumanActivityUseCase):
|
404
404
|
result = use_case.process(data, parsed_config, context, stream_info)
|
405
405
|
elif isinstance(use_case, GasLeakUseCase):
|
406
406
|
result = use_case.process(data, parsed_config, context, stream_info)
|
@@ -69,7 +69,7 @@ from .drowsy_driver_detection import DrowsyDriverUseCase, DrowsyDriverUseCase
|
|
69
69
|
from .waterbody_segmentation import WaterBodyConfig, WaterBodyUseCase
|
70
70
|
from .litter_monitoring import LitterDetectionConfig,LitterDetectionUseCase
|
71
71
|
from .leak_detection import LeakDetectionConfig, LeakDetectionUseCase
|
72
|
-
from .human_activity import
|
72
|
+
from .human_activity import HumanActivityConfig, HumanActivityUseCase
|
73
73
|
from .gas_leak_detection import GasLeakConfig, GasLeakUseCase
|
74
74
|
|
75
75
|
#Put all IMAGE based usecases here
|
@@ -137,7 +137,7 @@ __all__ = [
|
|
137
137
|
'WaterBodyUseCase',
|
138
138
|
'LitterDetectionUseCase',
|
139
139
|
'LeakDetectionUseCase',
|
140
|
-
'
|
140
|
+
'HumanActivityUseCase',
|
141
141
|
'GasLeakUseCase',
|
142
142
|
|
143
143
|
#Put all IMAGE based usecases here
|
@@ -205,7 +205,7 @@ __all__ = [
|
|
205
205
|
'WaterBodyConfig',
|
206
206
|
'LitterDetectionConfig',
|
207
207
|
'LeakDetectionConfig',
|
208
|
-
'
|
208
|
+
'HumanActivityConfig',
|
209
209
|
'GasLeakConfig',
|
210
210
|
|
211
211
|
|
@@ -21,7 +21,7 @@ from ..core.config import BaseConfig, AlertConfig, ZoneConfig
|
|
21
21
|
|
22
22
|
|
23
23
|
@dataclass
|
24
|
-
class
|
24
|
+
class HumanActivityConfig(BaseConfig):
|
25
25
|
"""Configuration for human activity detection use case."""
|
26
26
|
# Smoothing configuration
|
27
27
|
enable_smoothing: bool = True
|
@@ -64,7 +64,7 @@ class HumanActivityRecognitionConfig(BaseConfig):
|
|
64
64
|
)
|
65
65
|
|
66
66
|
|
67
|
-
class
|
67
|
+
class HumanActivityUseCase(BaseProcessor):
|
68
68
|
|
69
69
|
|
70
70
|
def __init__(self):
|
@@ -108,7 +108,7 @@ class HumanActivityRecognitionUseCase(BaseProcessor):
|
|
108
108
|
"""
|
109
109
|
start_time = time.time()
|
110
110
|
# Ensure config is correct type
|
111
|
-
if not isinstance(config,
|
111
|
+
if not isinstance(config, HumanActivityConfig):
|
112
112
|
return self.create_error_result("Invalid config type", usecase=self.name, category=self.category,
|
113
113
|
context=context)
|
114
114
|
if context is None:
|
@@ -244,7 +244,7 @@ class HumanActivityRecognitionUseCase(BaseProcessor):
|
|
244
244
|
|
245
245
|
return result
|
246
246
|
|
247
|
-
def _check_alerts(self, summary: dict, frame_number:Any, config:
|
247
|
+
def _check_alerts(self, summary: dict, frame_number:Any, config: HumanActivityConfig) -> List[Dict]:
|
248
248
|
"""
|
249
249
|
Check if any alert thresholds are exceeded and return alert dicts.
|
250
250
|
"""
|
@@ -312,7 +312,7 @@ class HumanActivityRecognitionUseCase(BaseProcessor):
|
|
312
312
|
pass
|
313
313
|
return alerts
|
314
314
|
|
315
|
-
def _generate_incidents(self, counting_summary: Dict, alerts: List, config:
|
315
|
+
def _generate_incidents(self, counting_summary: Dict, alerts: List, config: HumanActivityConfig,
|
316
316
|
frame_number: Optional[int] = None, stream_info: Optional[Dict[str, Any]] = None) -> List[
|
317
317
|
Dict]:
|
318
318
|
"""Generate structured incidents for the output format with frame-based keys."""
|
@@ -403,7 +403,7 @@ class HumanActivityRecognitionUseCase(BaseProcessor):
|
|
403
403
|
self,
|
404
404
|
counting_summary: Dict,
|
405
405
|
alerts: List,
|
406
|
-
config:
|
406
|
+
config: HumanActivityConfig,
|
407
407
|
frame_number: Optional[int] = None,
|
408
408
|
stream_info: Optional[Dict[str, Any]] = None
|
409
409
|
) -> List[Dict]:
|
@@ -515,7 +515,7 @@ class HumanActivityRecognitionUseCase(BaseProcessor):
|
|
515
515
|
tracking_stats.append(tracking_stat)
|
516
516
|
return tracking_stats
|
517
517
|
|
518
|
-
def _generate_business_analytics(self, counting_summary: Dict, alerts:Any, config:
|
518
|
+
def _generate_business_analytics(self, counting_summary: Dict, alerts:Any, config: HumanActivityConfig, stream_info: Optional[Dict[str, Any]] = None, is_empty=False) -> List[Dict]:
|
519
519
|
"""Generate standardized business analytics for the agg_summary structure."""
|
520
520
|
if is_empty:
|
521
521
|
return []
|
@@ -688,7 +688,7 @@ class HumanActivityRecognitionUseCase(BaseProcessor):
|
|
688
688
|
return dt.strftime('%Y:%m:%d %H:%M:%S')
|
689
689
|
|
690
690
|
|
691
|
-
def _count_categories(self, detections: list, config:
|
691
|
+
def _count_categories(self, detections: list, config: HumanActivityConfig) -> dict:
|
692
692
|
"""
|
693
693
|
Count the number of detections per category and return a summary dict.
|
694
694
|
The detections list is expected to have 'track_id' (from tracker), 'category', 'bounding_box', etc.
|
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
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/compute_manager/actions_scaledown_manager.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
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/__init__.py
RENAMED
File without changes
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/augmentation_utils/base.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
|
File without changes
|
File without changes
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/mscoco_detection.py
RENAMED
File without changes
|
File without changes
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/unlabelled.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
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/data_formats/yolo_detection.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/image_data_augmentation.py
RENAMED
File without changes
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/data_processing/new_data_augmentation.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
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/client/auto_streaming/__init__.py
RENAMED
File without changes
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/client/auto_streaming/auto_streaming.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/client/streaming_gateway/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/server/inference/batch_manager.py
RENAMED
File without changes
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/server/inference/cache_manager.py
RENAMED
File without changes
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/server/inference/inference_interface.py
RENAMED
File without changes
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/server/inference/model_manager.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
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/__init__.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
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/core/__init__.py
RENAMED
File without changes
|
{matrice-1.0.99220 → matrice-1.0.99221}/src/matrice/deploy/utils/post_processing/core/base.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
|
File without changes
|
File without changes
|