roboflow-workflows 0.2.8__tar.gz → 0.2.9__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.
- {roboflow_workflows-0.2.8/roboflow_workflows.egg-info → roboflow_workflows-0.2.9}/PKG-INFO +2 -1
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/pyproject.toml +2 -1
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/_compat_names.py +22 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations/roboflow/visual_search/helpers.py +43 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations/roboflow/visual_search/v1.py +248 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations/roboflow/visual_search_classifier/__init__.py +1 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations/roboflow/visual_search_classifier/classification_annotations.py +177 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations/roboflow/visual_search_classifier/v1.py +510 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations/roboflow/visual_search_classifier/v1_tensor.py +640 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/loader.py +92 -10
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openai/v7.py +33 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/asset_library_attributes/v1.py +469 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/custom_metadata/v1.py +340 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/custom_metadata/v1_tensor.py +380 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/dataset_upload/active_learning.py +424 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/dataset_upload/v1.py +706 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/dataset_upload/v1_tensor.py +1028 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/dataset_upload/v2.py +446 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/dataset_upload/v2_tensor.py +465 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/model_monitoring_inference_aggregator/v1.py +558 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/model_monitoring_inference_aggregator/v1_tensor.py +668 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/vision_events/v1.py +1220 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/vision_events/v1_tensor.py +1184 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/vision_events_bundle/v1.py +1043 -0
- roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/vision_events_bundle/v1_tensor.py +1056 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/introspection/blocks_loader.py +5 -2
- roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/introspection/manifest_cache.py +57 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/introspection/schema_parser.py +15 -3
- roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/profiling/__init__.py +0 -0
- roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/v1/__init__.py +0 -0
- roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/v1/compiler/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/cache.py +13 -1
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/core.py +9 -7
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/syntactic_parser.py +27 -9
- roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/v1/debugger/__init__.py +0 -0
- roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/v1/dynamic_blocks/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/dynamic_blocks/block_assembler.py +13 -0
- roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/v1/executor/__init__.py +0 -0
- roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/v1/executor/execution_data_manager/__init__.py +0 -0
- roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/v1/introspection/__init__.py +0 -0
- roboflow_workflows-0.2.9/roboflow_workflows/prototypes/__init__.py +0 -0
- roboflow_workflows-0.2.9/roboflow_workflows/prototypes/platform_client.py +617 -0
- roboflow_workflows-0.2.9/roboflow_workflows/utils/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9/roboflow_workflows.egg-info}/PKG-INFO +2 -1
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows.egg-info/SOURCES.txt +31 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows.egg-info/requires.txt +1 -0
- roboflow_workflows-0.2.8/roboflow_workflows/prototypes/platform_client.py +0 -97
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/LICENSE +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/README.md +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/configuration.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/_zone_geometry.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/data_aggregator/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/data_aggregator/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/detection_event_log/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/detection_event_log/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/detection_event_log/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/line_counter/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/line_counter/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/line_counter/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/line_counter/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/line_counter/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/overlap/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/overlap/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/overlap/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/path_deviation/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/path_deviation/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/path_deviation/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/path_deviation/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/path_deviation/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/time_in_zone/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/time_in_zone/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/time_in_zone/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/time_in_zone/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/time_in_zone/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/time_in_zone/v3.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/time_in_zone/v3_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/velocity/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/velocity/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/analytics/velocity/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/cache/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/cache/cache_get/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/cache/cache_get/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/cache/cache_set/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/cache/cache_set/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/cache/common.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/cache/memory_cache.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/auto_rotate_on_edges/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/auto_rotate_on_edges/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/background_subtraction/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/background_subtraction/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/camera_focus/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/camera_focus/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/camera_focus/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/contours/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/contours/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/contrast_enhancement/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/contrast_enhancement/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/contrast_enhancement/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/contrast_equalization/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/contrast_equalization/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/contrast_equalization/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/convert_grayscale/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/convert_grayscale/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/convert_grayscale/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/detections_nearest_neighbor/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/detections_nearest_neighbor/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/detections_nearest_neighbor/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/distance_measurement/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/distance_measurement/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/distance_measurement/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/dominant_color/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/dominant_color/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/dominant_color/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/image_blur/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/image_blur/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/image_blur/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/image_preprocessing/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/image_preprocessing/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/image_preprocessing/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/mask_area_measurement/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/mask_area_measurement/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/mask_area_measurement/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/mask_edge_snap/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/mask_edge_snap/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/mask_edge_snap/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/morphological_transformation/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/morphological_transformation/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/morphological_transformation/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/motion_detection/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/motion_detection/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/motion_detection/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/pixel_color_count/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/pixel_color_count/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/pixel_color_count/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/sift/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/sift/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/sift_comparison/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/sift_comparison/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/sift_comparison/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/size_measurement/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/size_measurement/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/size_measurement/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/template_matching/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/template_matching/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/template_matching/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/threshold/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/threshold/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/classical_cv/threshold/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/deserializers.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/deserializers_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/entities.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/inference_response_entities.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/keypoints.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/openrouter.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/operators.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/entities/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/entities/enums.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/entities/introspection.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/entities/operations.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/entities/types.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/errors.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/evaluation_engine/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/evaluation_engine/core.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/evaluation_engine/detection/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/evaluation_engine/detection/geometry.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/introspection/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/introspection/core.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/booleans/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/booleans/base.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/classification_results/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/classification_results/base.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/core.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/detection/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/detection/base.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/detections/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/detections/base.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/dictionaries/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/dictionaries/base.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/frame_metadata/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/frame_metadata/base.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/generic/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/generic/base.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/images/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/images/base.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/numbers/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/numbers/base.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/sequences/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/sequences/base.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/strings/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/strings/base.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/timestamps/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/timestamps/base.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/query_language/operations/utils.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/reasoning.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/rle_compact.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/segmentation_entities.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/serializers.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/serializers_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/tensor_native.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/token_usage.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/utils.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/utils_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/argon_segmentation.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/classification.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/detection_formats.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/detections.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/json_extraction.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/outputs.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/segmentation.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/tensor_native.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_decoding/utils.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlm_json.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/vlms.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/common/workload_presets.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/continue_if/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/continue_if/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/delta_filter/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/delta_filter/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/inner_workflow/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/inner_workflow/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/rate_limiter/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/rate_limiter/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/switch_case/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/flow_control/switch_case/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/csv/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/csv/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/current_time/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/current_time/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/expression/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/expression/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/first_non_empty_or_default/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/first_non_empty_or_default/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/json_parser/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/json_parser/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/property_definition/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/property_definition/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/string_template/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/string_template/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_classifier/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_classifier/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_classifier/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_classifier/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_classifier/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/anthropic_detection_parsing.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/gemini_detection_parsing.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/muse_detection_parsing.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/openai_detection_parsing.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/qwen_detection_parsing.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/spacexai_detection_parsing.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/formatters/vlm_as_detector/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/buffer/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/buffer/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_classes_replacement/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_classes_replacement/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_classes_replacement/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_consensus/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_consensus/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_consensus/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_difference/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_difference/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_difference/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_list_rollup/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_list_rollup/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_list_rollup/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_stitch/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_stitch/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/detections_stitch/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/dimension_collapse/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/dimension_collapse/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/frame_delay/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/frame_delay/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/frame_delay/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/image_stack/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/image_stack/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/overlap_analysis/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/overlap_analysis/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/fusion/overlap_analysis/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/math → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/math/cosine_similarity → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations/roboflow}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations/roboflow/visual_search}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/math}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/anthropic_claude → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/math/cosine_similarity}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/math/cosine_similarity/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/math/cosine_similarity/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/clip → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/clip_comparison → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/cog_vlm → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/anthropic_claude}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/anthropic_claude/model_capabilities.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/anthropic_claude/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/anthropic_claude/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/anthropic_claude/v3.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/anthropic_claude/v4.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/anthropic_claude/v5.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/cosmos3 → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/clip}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/clip/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/clip/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/depth_estimation → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/clip_comparison}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/clip_comparison/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/clip_comparison/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/clip_comparison/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/clip_comparison/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/easy_ocr → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/cog_vlm}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/cog_vlm/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/flex → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/cosmos3}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/cosmos3/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/flex/inpainting → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/depth_estimation}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/depth_estimation/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/depth_estimation/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/florence2 → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/easy_ocr}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/easy_ocr/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/easy_ocr/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/gaze → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/flex}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/glm_ocr → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/flex/inpainting}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/google_gemini → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/florence2}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/florence2/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/florence2/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/florence2/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/florence2/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/google_gemma → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/gaze}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/gaze/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/google_vision_ocr → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/glm_ocr}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/glm_ocr/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/kimi_openrouter → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/google_gemini}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemini/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemini/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemini/v3.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemini/v4.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemini/v5.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemini/v6.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/llama_vision → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/google_gemma}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemma/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemma/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemma/v3.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_gemma/v4.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/lmm → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/google_vision_ocr}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_vision_ocr/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/google_vision_ocr/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/lmm_classifier → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/kimi_openrouter}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/kimi_openrouter/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/kimi_openrouter/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/kimi_openrouter/v3.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/meta_vlm → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/llama_vision}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/llama_vision/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/llama_vision/v2.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/mistral_vlm → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/lmm}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/lmm/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/moondream2 → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/lmm_classifier}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/lmm_classifier/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/ocr → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/meta_vlm}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/meta_vlm/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/meta_vlm/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/meta_vlm/v3.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/openai → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/mistral_vlm}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/mistral_vlm/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/openai_compatible → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/moondream2}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/moondream2/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/moondream2/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/openrouter → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/ocr}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/ocr/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/ocr/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/perception_encoder → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/openai}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openai/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openai/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openai/v3.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openai/v4.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openai/v5.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openai/v6.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/pp_ocr → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/openai_compatible}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openai_compatible/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/qwen → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/openrouter}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openrouter/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openrouter/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/openrouter/v3.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/qwen3_5_openrouter → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/perception_encoder}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/perception_encoder/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/perception_encoder/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/qwen3_5vl → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/pp_ocr}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/pp_ocr/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/pp_ocr/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/qwen3_6_openrouter → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/qwen}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/qwen3vl → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/qwen3_5_openrouter}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen3_5_openrouter/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/qwen_vlm → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/qwen3_5vl}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen3_5vl/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen3_5vl/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen3_5vl/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen3_5vl/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/seg_preview → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/qwen3_6_openrouter}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen3_6_openrouter/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/segment_anything2 → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/qwen3vl}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen3vl/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen3vl/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/segment_anything2_video → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/qwen_vlm}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen_vlm/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen_vlm/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen_vlm/v3.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/qwen_vlm/v4.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/segment_anything3 → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/seg_preview}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/seg_preview/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/seg_preview/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/segment_anything3_3d → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/segment_anything2}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything2/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything2/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/segment_anything3_interactive → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/segment_anything2_video}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything2_video/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything2_video/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/segment_anything3_video → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/segment_anything3}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3/v3.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3/v3_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/smolvlm → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/segment_anything3_3d}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3_3d/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3_3d/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/spacexai → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/segment_anything3_interactive}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3_interactive/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3_interactive/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/stability_ai → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/segment_anything3_video}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3_video/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything3_video/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything_common/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything_common/prompts.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything_common/streaming_video.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything_common/streaming_video_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/segment_anything_common/visual_prompt.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/stability_ai/image_gen → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/smolvlm}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/smolvlm/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/smolvlm/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/stability_ai/inpainting → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/spacexai}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/spacexai/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/spacexai/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/spacexai/v3.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/stability_ai/outpainting → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/stability_ai}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/yolo_world → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/stability_ai/image_gen}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/stability_ai/image_gen/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/foundation/zai_vlm → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/stability_ai/inpainting}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/stability_ai/inpainting/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/stability_ai/inpainting/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/roboflow → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/stability_ai/outpainting}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/stability_ai/outpainting/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/roboflow/action_recognition → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/yolo_world}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/yolo_world/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/yolo_world/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/roboflow/embedding → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/foundation/zai_vlm}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/zai_vlm/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/foundation/zai_vlm/v2.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/roboflow/instance_segmentation → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/roboflow}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/roboflow/keypoint_detection → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/roboflow/action_recognition}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/action_recognition/entities.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/action_recognition/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/action_recognition/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/roboflow/multi_class_classification → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/roboflow/embedding}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/embedding/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/embedding/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/roboflow/multi_label_classification → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/roboflow/instance_segmentation}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/instance_segmentation/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/instance_segmentation/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/instance_segmentation/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/instance_segmentation/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/instance_segmentation/v3.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/instance_segmentation/v3_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/instance_segmentation/v4.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/instance_segmentation/v4_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/roboflow/object_detection → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/roboflow/keypoint_detection}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/keypoint_detection/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/keypoint_detection/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/keypoint_detection/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/keypoint_detection/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/keypoint_detection/v3.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/keypoint_detection/v3_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/roboflow/semantic_segmentation → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/roboflow/multi_class_classification}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_class_classification/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_class_classification/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_class_classification/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_class_classification/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_class_classification/v3.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_class_classification/v3_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/third_party → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/roboflow/multi_label_classification}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_label_classification/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_label_classification/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_label_classification/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_label_classification/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_label_classification/v3.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/multi_label_classification/v3_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/third_party/barcode_detection → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/roboflow/object_detection}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/object_detection/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/object_detection/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/object_detection/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/object_detection/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/object_detection/v3.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/object_detection/v3_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/models/third_party/qr_code_detection → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/roboflow/semantic_segmentation}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/semantic_segmentation/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/semantic_segmentation/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/semantic_segmentation/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/roboflow/semantic_segmentation/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sampling → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/third_party}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sampling/identify_changes → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/third_party/barcode_detection}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/third_party/barcode_detection/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/third_party/barcode_detection/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sampling/identify_outliers → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/models/third_party/qr_code_detection}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/third_party/qr_code_detection/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/third_party/qr_code_detection/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/models/workload_presets.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/secrets_providers → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sampling}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/secrets_providers/environment_secrets_store → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sampling/identify_changes}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sampling/identify_changes/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sampling/identify_changes/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sampling/identify_outliers}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sampling/identify_outliers/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sampling/identify_outliers/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks/email_notification → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/secrets_providers}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks/local_file → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/secrets_providers/environment_secrets_store}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/secrets_providers/environment_secrets_store/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks/onvif_movement → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks/s3 → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/email_notification}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/email_notification/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/email_notification/v2.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks/slack → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/local_file}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/local_file/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/noop.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks/slack/notification → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/onvif_movement}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/onvif_movement/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/onvif_movement/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks/twilio → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks/twilio/sms → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/asset_library_attributes}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/sinks/webhook → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/custom_metadata}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/trackers → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/dataset_upload}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/trackers/botsort → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/model_monitoring_inference_aggregator}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/trackers/bytetrack → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/vision_events}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/trackers/ocsort → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/roboflow/vision_events_bundle}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/trackers/sort → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/s3}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/s3/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/slack}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/absolute_static_crop → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/slack/notification}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/slack/notification/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/bounding_rect → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/twilio}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/byte_tracker → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/twilio/sms}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/twilio/sms/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/twilio/sms/v2.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/camera_calibration → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/sinks/webhook}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/sinks/webhook/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/detection_offset → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/trackers}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/_base.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/_base_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/detections_combine → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/trackers/botsort}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/botsort/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/botsort/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/detections_filter → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/trackers/bytetrack}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/bytetrack/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/bytetrack/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/detections_merge → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/trackers/ocsort}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/ocsort/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/ocsort/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/detections_transformation → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/trackers/sort}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/sort/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/trackers/sort/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/dynamic_crop → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/dynamic_zones → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/absolute_static_crop}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/absolute_static_crop/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/absolute_static_crop/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/geotag_detection → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/bounding_rect}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/bounding_rect/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/bounding_rect/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/image_slicer → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/byte_tracker}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/byte_tracker/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/byte_tracker/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/byte_tracker/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/byte_tracker/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/byte_tracker/v3.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/byte_tracker/v3_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/per_class_confidence_filter → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/camera_calibration}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/camera_calibration/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/perspective_correction → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/detection_offset}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/detection_offset/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/detection_offset/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/qr_code_generator → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/detections_combine}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/detections_combine/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/detections_combine/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/relative_static_crop → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/detections_filter}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/detections_filter/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/stabilize_detections → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/detections_merge}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/detections_merge/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/detections_merge/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/stitch_images → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/detections_transformation}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/detections_transformation/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/stitch_ocr_detections → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/dynamic_crop}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/dynamic_crop/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/dynamic_crop/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/transformations/track_class_lock → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/dynamic_zones}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/dynamic_zones/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/dynamic_zones/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/geotag_detection}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/geotag_detection/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/geotag_detection/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/background_color → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/image_slicer}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/image_slicer/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/image_slicer/v2.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/blur → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/per_class_confidence_filter}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/per_class_confidence_filter/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/per_class_confidence_filter/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/bounding_box → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/perspective_correction}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/perspective_correction/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/perspective_correction/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/circle → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/qr_code_generator}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/qr_code_generator/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/classification_label → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/relative_static_crop}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/relative_static_crop/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/color → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/stabilize_detections}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/stabilize_detections/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/stabilize_detections/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/common → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/stitch_images}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/stitch_images/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/common/annotators → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/stitch_ocr_detections}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/stitch_ocr_detections/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/stitch_ocr_detections/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/stitch_ocr_detections/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/stitch_ocr_detections/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/corner → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/transformations/track_class_lock}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/track_class_lock/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/transformations/track_class_lock/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/crop → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/dot → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/background_color}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/background_color/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/background_color/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/ellipse → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/blur}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/blur/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/blur/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/grid → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/bounding_box}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/bounding_box/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/bounding_box/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/halo → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/circle}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/circle/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/circle/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/heatmap → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/classification_label}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/classification_label/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/classification_label/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/icon → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/color}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/color/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/color/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/keypoint → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/common}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/label → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/common/annotators}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/annotators/background_color.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/annotators/blur.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/annotators/halo.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/annotators/model_comparison.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/annotators/polygon.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/base.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/base_colorable.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/base_colorable_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/base_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/README.md +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/anonymous_pro/AnonymousPro-Regular.ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/anonymous_pro/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/courier_prime/CourierPrime-Regular.ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/courier_prime/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/fira_code/FiraCode[wght].ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/fira_code/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/geist/Geist-Regular.ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/geist/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/geist_mono/GeistMono-Regular.ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/geist_mono/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/ibm_plex_mono/IBMPlexMono-Regular.ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/ibm_plex_mono/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/inconsolata/Inconsolata[wdth,wght].ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/inconsolata/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/inter/Inter[opsz,wght].ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/inter/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/jetbrains_mono/JetBrainsMono[wght].ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/jetbrains_mono/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/lato/Lato-Regular.ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/lato/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/montserrat/Montserrat[wght].ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/montserrat/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/noto_sans/NotoSans-Regular.ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/noto_sans/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/nunito_sans/NunitoSans[YTLC,opsz,wdth,wght].ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/nunito_sans/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/open_sans/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/open_sans/OpenSans[wdth,wght].ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/pt_mono/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/pt_mono/PTM55FT.ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/roboto/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/roboto/Roboto[wdth,wght].ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/roboto_mono/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/roboto_mono/RobotoMono[wght].ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/source_code_pro/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/source_code_pro/SourceCodePro[wght].ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/space_mono/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/space_mono/SpaceMono-Regular.ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/work_sans/OFL.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/assets/work_sans/WorkSans[wght].ttf +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/downloader.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/registry.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/fonts/schema.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/label_text.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/common/utils.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/line_zone → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/corner}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/corner/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/corner/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/mask → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/crop}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/crop/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/crop/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/model_comparison → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/dot}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/dot/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/dot/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/pixelate → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/ellipse}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/ellipse/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/ellipse/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/polygon → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/grid}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/grid/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/polygon_zone → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/halo}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/halo/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/halo/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/halo/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/halo/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/reference_path → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/heatmap}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/heatmap/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/heatmap/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/rich_label → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/icon}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/icon/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/icon/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/text_display → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/keypoint}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/keypoint/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/keypoint/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/trace → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/label}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/label/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/label/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/label/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/label/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/core_steps/visualizations/triangle → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/line_zone}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/line_zone/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/mask}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/mask/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/mask/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/PLC_modbus → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/model_comparison}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/model_comparison/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/model_comparison/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/PLCethernetIP → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/pixelate}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/pixelate/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/pixelate/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/polygon}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/polygon/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/polygon/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/polygon/v2.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/polygon/v2_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/event_writer → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/polygon_zone}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/polygon_zone/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/kafka_consumer → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/reference_path}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/reference_path/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/kafka_producer → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/rich_label}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/rich_label/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/rich_label/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/microsoft_sql_server → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/text_display}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/text_display/utils.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/text_display/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/mqtt_reader → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/trace}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/trace/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/trace/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/mqtt_writer → roboflow_workflows-0.2.9/roboflow_workflows/core_steps/visualizations/triangle}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/triangle/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/core_steps/visualizations/triangle/v1_tensor.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/opc_writer → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/loader.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/plc → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/PLC_modbus}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/PLC_modbus/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/enterprise_blocks/sinks/postgresql → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/PLCethernetIP}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/PLCethernetIP/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks}/__init__.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/entities → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/event_writer}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/event_writer/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/kafka_common.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/introspection → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/kafka_consumer}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/kafka_consumer/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/profiling → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/kafka_producer}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/kafka_producer/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/v1 → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/microsoft_sql_server}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/microsoft_sql_server/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/mqtt_common.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/v1/compiler → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/mqtt_reader}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/mqtt_reader/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/v1/debugger → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/mqtt_writer}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/mqtt_writer/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/mqtt_writer/v2.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/v1/dynamic_blocks → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/opc_writer}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/opc_writer/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/v1/executor → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/plc}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/plc/client.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/plc/direct.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/plc/v1.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/v1/executor/execution_data_manager → roboflow_workflows-0.2.9/roboflow_workflows/enterprise_blocks/sinks/postgresql}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/enterprise_blocks/sinks/postgresql/v1.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/environment.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/errors.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/execution_engine/v1/introspection → roboflow_workflows-0.2.9/roboflow_workflows/execution_engine}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/constants.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/core.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/prototypes → roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/entities}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/entities/base.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/entities/engine.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/entities/tensor_native_types.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/entities/types.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/entities/workload.py +0 -0
- {roboflow_workflows-0.2.8/roboflow_workflows/utils → roboflow_workflows-0.2.9/roboflow_workflows/execution_engine/introspection}/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/introspection/connections_discovery.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/introspection/entities.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/introspection/restriction_environment.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/introspection/selectors_parser.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/introspection/utils.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/introspection/workload.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/introspection/workload_entities.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/profiling/core.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/entities.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/graph_constructor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/graph_traversal.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/reference_type_checker.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/steps_initialiser.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/utils.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/compiler/validator.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/core.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/debugger/core.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/dynamic_blocks/block_duration.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/dynamic_blocks/block_scaffolding.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/dynamic_blocks/debug_logs.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/dynamic_blocks/entities.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/dynamic_blocks/error_utils.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/dynamic_blocks/modal_executor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/dynamic_blocks/representation_boundary.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/dynamic_blocks/workflow_debug.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/entities.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/core.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/execution_data_manager/branching_manager.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/execution_data_manager/dynamic_batches_manager.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/execution_data_manager/execution_cache.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/execution_data_manager/manager.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/execution_data_manager/step_input_assembler.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/flow_coordinator.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/output_constructor.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/runtime_input_assembler.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/runtime_input_validator.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/executor/utils.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/inner_workflow/__init__.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/inner_workflow/compiler_bridge.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/inner_workflow/composition.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/inner_workflow/constants.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/inner_workflow/dynamic_blocks_collection.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/inner_workflow/errors.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/inner_workflow/inline.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/inner_workflow/reference_resolution.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/introspection/inputs_discovery.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/introspection/kinds_schemas.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/introspection/kinds_schemas_register.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/introspection/outputs_discovery.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/introspection/types_discovery.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/introspection/workload.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/execution_engine/v1/step_error_handlers.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/offline.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/prototypes/background_tasks.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/prototypes/block.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/prototypes/cache.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/prototypes/image_codec.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/prototypes/model_registration.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/prototypes/models_provider.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/prototypes/observer.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/prototypes/platform_errors.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/prototypes/workspace_resolver.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/utils/action_recognition.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/utils/image_encoding.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/utils/images.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/utils/in_memory_cache.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/utils/lru_cache.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/utils/text.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/utils/url_input.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows/warnings.py +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows.egg-info/dependency_links.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/roboflow_workflows.egg-info/top_level.txt +0 -0
- {roboflow_workflows-0.2.8 → roboflow_workflows-0.2.9}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: roboflow-workflows
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.9
|
|
4
4
|
Summary: Roboflow Workflows execution engine and block library
|
|
5
5
|
License: LICENSE.core (Apache 2.0) applies to all files in this repository
|
|
6
6
|
except for files in or under any directory that contains a superseding
|
|
@@ -61,6 +61,7 @@ Requires-Dist: fastapi<0.142,>=0.134; extra == "enterprise"
|
|
|
61
61
|
Provides-Extra: test
|
|
62
62
|
Requires-Dist: pytest<10.0.0,>=9.0.3; extra == "test"
|
|
63
63
|
Requires-Dist: requests-mock~=1.12.1; extra == "test"
|
|
64
|
+
Requires-Dist: pytest-xdist<4.0.0,>=3.6; extra == "test"
|
|
64
65
|
Dynamic: license-file
|
|
65
66
|
|
|
66
67
|
# roboflow-workflows
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "roboflow-workflows"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.9"
|
|
4
4
|
description = "Roboflow Workflows execution engine and block library"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = {file = "LICENSE"}
|
|
@@ -59,6 +59,7 @@ enterprise = [
|
|
|
59
59
|
test = [
|
|
60
60
|
"pytest>=9.0.3,<10.0.0",
|
|
61
61
|
"requests-mock~=1.12.1",
|
|
62
|
+
"pytest-xdist>=3.6,<4.0.0",
|
|
62
63
|
]
|
|
63
64
|
|
|
64
65
|
[build-system]
|
|
@@ -14,12 +14,25 @@ We map at read-time; ``class.__module__`` stays canonical so pickling and
|
|
|
14
14
|
from __future__ import annotations
|
|
15
15
|
|
|
16
16
|
import logging
|
|
17
|
+
from typing import Optional
|
|
17
18
|
|
|
18
19
|
_CANONICAL_ROOT = "roboflow_workflows"
|
|
19
20
|
_ENTERPRISE_CANONICAL = "roboflow_workflows.enterprise_blocks"
|
|
20
21
|
_CORE_LEGACY = "inference.core.workflows"
|
|
21
22
|
_ENTERPRISE_LEGACY = "inference.enterprise.workflows.enterprise_blocks"
|
|
22
23
|
|
|
24
|
+
# Paths of inference.roboflow_workflows_plugin (1.6.1-1.7.2), for disable patterns.
|
|
25
|
+
_PLATFORM_BLOCKS_PLUGIN_PREFIXES = (
|
|
26
|
+
(
|
|
27
|
+
"roboflow_workflows.core_steps.sinks.roboflow.",
|
|
28
|
+
"inference.roboflow_workflows_plugin.sinks.",
|
|
29
|
+
),
|
|
30
|
+
(
|
|
31
|
+
"roboflow_workflows.core_steps.integrations.roboflow.",
|
|
32
|
+
"inference.roboflow_workflows_plugin.integrations.",
|
|
33
|
+
),
|
|
34
|
+
)
|
|
35
|
+
|
|
23
36
|
|
|
24
37
|
def to_legacy_module(module_name: str) -> str:
|
|
25
38
|
"""Return the historic ``inference.*`` dotted form of a canonical module."""
|
|
@@ -32,6 +45,15 @@ def to_legacy_module(module_name: str) -> str:
|
|
|
32
45
|
return module_name
|
|
33
46
|
|
|
34
47
|
|
|
48
|
+
def to_historic_plugin_module(module_name: str) -> Optional[str]:
|
|
49
|
+
"""Return the 1.6.1-1.7.2 plugin-package path of a Roboflow-platform block
|
|
50
|
+
module, or ``None`` for any other module. For disable-pattern matching only."""
|
|
51
|
+
for canonical_prefix, plugin_prefix in _PLATFORM_BLOCKS_PLUGIN_PREFIXES:
|
|
52
|
+
if module_name.startswith(canonical_prefix):
|
|
53
|
+
return plugin_prefix + module_name[len(canonical_prefix) :]
|
|
54
|
+
return None
|
|
55
|
+
|
|
56
|
+
|
|
35
57
|
def get_logger(module_name: str) -> logging.Logger:
|
|
36
58
|
"""``logging.getLogger`` under the historic ``inference.*`` name.
|
|
37
59
|
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional
|
|
2
|
+
|
|
3
|
+
from roboflow_workflows.execution_engine.entities.base import (
|
|
4
|
+
ImageParentMetadata,
|
|
5
|
+
WorkflowImageData,
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def format_visual_search_candidate(
|
|
10
|
+
candidate: Dict[str, Any],
|
|
11
|
+
extra_fields: Optional[List[str]] = None,
|
|
12
|
+
) -> Dict[str, Any]:
|
|
13
|
+
filename = candidate.get("filename") or candidate.get("name")
|
|
14
|
+
formatted_candidate = {
|
|
15
|
+
"image_id": candidate.get("id"),
|
|
16
|
+
"image_url": candidate.get("url"),
|
|
17
|
+
"name": candidate.get("name") or filename,
|
|
18
|
+
"filename": filename,
|
|
19
|
+
"metadata": candidate.get("user_metadata") or {},
|
|
20
|
+
"tags": candidate.get("tags") or [],
|
|
21
|
+
"width": candidate.get("width"),
|
|
22
|
+
"height": candidate.get("height"),
|
|
23
|
+
"aspect_ratio": candidate.get("aspectRatio"),
|
|
24
|
+
}
|
|
25
|
+
for field in extra_fields or []:
|
|
26
|
+
formatted_candidate[field] = candidate.get(field)
|
|
27
|
+
return formatted_candidate
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def build_visual_search_candidate_image(
|
|
31
|
+
candidate: Dict[str, Any],
|
|
32
|
+
fallback_parent_id: str,
|
|
33
|
+
) -> Optional[WorkflowImageData]:
|
|
34
|
+
image_url = candidate.get("image_url")
|
|
35
|
+
if not image_url:
|
|
36
|
+
return None
|
|
37
|
+
parent_id = (
|
|
38
|
+
candidate.get("image_id") or candidate.get("filename") or fallback_parent_id
|
|
39
|
+
)
|
|
40
|
+
return WorkflowImageData(
|
|
41
|
+
parent_metadata=ImageParentMetadata(parent_id=str(parent_id)),
|
|
42
|
+
image_reference=image_url,
|
|
43
|
+
)
|
roboflow_workflows-0.2.9/roboflow_workflows/core_steps/integrations/roboflow/visual_search/v1.py
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Literal, Optional, Type, Union
|
|
2
|
+
|
|
3
|
+
from pydantic import ConfigDict, Field
|
|
4
|
+
from roboflow_workflows.core_steps.integrations.roboflow.visual_search.helpers import (
|
|
5
|
+
build_visual_search_candidate_image,
|
|
6
|
+
format_visual_search_candidate,
|
|
7
|
+
)
|
|
8
|
+
from roboflow_workflows.execution_engine.entities.base import (
|
|
9
|
+
Batch,
|
|
10
|
+
OutputDefinition,
|
|
11
|
+
WorkflowImageData,
|
|
12
|
+
)
|
|
13
|
+
from roboflow_workflows.execution_engine.entities.types import (
|
|
14
|
+
BOOLEAN_KIND,
|
|
15
|
+
DICTIONARY_KIND,
|
|
16
|
+
IMAGE_KIND,
|
|
17
|
+
INTEGER_KIND,
|
|
18
|
+
LIST_OF_VALUES_KIND,
|
|
19
|
+
ROBOFLOW_PROJECT_KIND,
|
|
20
|
+
STRING_KIND,
|
|
21
|
+
Selector,
|
|
22
|
+
)
|
|
23
|
+
from roboflow_workflows.execution_engine.entities.workload import (
|
|
24
|
+
Discovery,
|
|
25
|
+
RuntimeRestriction,
|
|
26
|
+
WorkOperation,
|
|
27
|
+
)
|
|
28
|
+
from roboflow_workflows.prototypes.block import (
|
|
29
|
+
AirGappedAvailability,
|
|
30
|
+
BlockResult,
|
|
31
|
+
DependentResource,
|
|
32
|
+
WorkflowBlock,
|
|
33
|
+
WorkflowBlockManifest,
|
|
34
|
+
roboflow_platform_project,
|
|
35
|
+
)
|
|
36
|
+
from roboflow_workflows.prototypes.platform_client import (
|
|
37
|
+
OFFLINE_PLATFORM_CLIENT,
|
|
38
|
+
RoboflowPlatformClient,
|
|
39
|
+
resolve_platform_blocks_client,
|
|
40
|
+
)
|
|
41
|
+
from typing_extensions import Annotated
|
|
42
|
+
|
|
43
|
+
SHORT_DESCRIPTION = "Find visually similar image candidates in a Roboflow project."
|
|
44
|
+
|
|
45
|
+
LONG_DESCRIPTION = """
|
|
46
|
+
Search a Roboflow project for images that look similar to an input image and return
|
|
47
|
+
the nearest candidate plus metadata.
|
|
48
|
+
|
|
49
|
+
## How This Block Works
|
|
50
|
+
|
|
51
|
+
This block uses the existing Roboflow project image search API:
|
|
52
|
+
|
|
53
|
+
1. Receives an input image from the workflow
|
|
54
|
+
2. Sends the image to Roboflow project search as `image_base64`
|
|
55
|
+
3. Requests useful fields such as image URL, tags, and user metadata
|
|
56
|
+
4. Returns the best candidate, best candidate image, metadata, tags, and the top candidates list
|
|
57
|
+
|
|
58
|
+
The target project should already contain uploaded images. Roboflow indexes those
|
|
59
|
+
images for visual search using the platform's existing image indexing pipeline.
|
|
60
|
+
This block does not create images, update metadata, or manage the index.
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
TopK = Annotated[int, Field(ge=1, le=50)]
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class BlockManifest(WorkflowBlockManifest):
|
|
67
|
+
model_config = ConfigDict(
|
|
68
|
+
json_schema_extra={
|
|
69
|
+
"name": "Roboflow Visual Search",
|
|
70
|
+
"version": "v1",
|
|
71
|
+
"short_description": SHORT_DESCRIPTION,
|
|
72
|
+
"long_description": LONG_DESCRIPTION,
|
|
73
|
+
"license": "Apache-2.0",
|
|
74
|
+
"block_type": "fusion",
|
|
75
|
+
"ui_manifest": {
|
|
76
|
+
"section": "advanced",
|
|
77
|
+
"icon": "far fa-search",
|
|
78
|
+
"blockPriority": 1,
|
|
79
|
+
"requires_rf_key": True,
|
|
80
|
+
},
|
|
81
|
+
}
|
|
82
|
+
)
|
|
83
|
+
type: Literal["roboflow_core/visual_search@v1"]
|
|
84
|
+
image: Selector(kind=[IMAGE_KIND]) = Field(
|
|
85
|
+
description="Image to use as the visual search query.",
|
|
86
|
+
examples=["$inputs.image", "$steps.crop.crops"],
|
|
87
|
+
)
|
|
88
|
+
workspace: Union[Selector(kind=[STRING_KIND]), str] = Field(
|
|
89
|
+
description="Roboflow workspace URL slug that owns the target project.",
|
|
90
|
+
examples=["my-workspace", "$inputs.workspace"],
|
|
91
|
+
)
|
|
92
|
+
target_project: Union[Selector(kind=[ROBOFLOW_PROJECT_KIND]), str] = Field(
|
|
93
|
+
description="Roboflow project URL slug to search.",
|
|
94
|
+
examples=["reference-images", "$inputs.target_project"],
|
|
95
|
+
)
|
|
96
|
+
top_k: Union[TopK, Selector(kind=[INTEGER_KIND])] = Field(
|
|
97
|
+
default=1,
|
|
98
|
+
description=(
|
|
99
|
+
"Number of visually similar image candidates to return. Use 1 when you "
|
|
100
|
+
"only need the nearest candidate."
|
|
101
|
+
),
|
|
102
|
+
examples=[1, 5, "$inputs.top_k"],
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
@classmethod
|
|
106
|
+
def get_air_gapped_availability(cls) -> AirGappedAvailability:
|
|
107
|
+
return AirGappedAvailability(available=False, reason="requires_internet")
|
|
108
|
+
|
|
109
|
+
@classmethod
|
|
110
|
+
def get_parameters_accepting_batches(cls) -> List[str]:
|
|
111
|
+
return ["image"]
|
|
112
|
+
|
|
113
|
+
@classmethod
|
|
114
|
+
def describe_outputs(cls) -> List[OutputDefinition]:
|
|
115
|
+
return [
|
|
116
|
+
OutputDefinition(name="candidate_found", kind=[BOOLEAN_KIND]),
|
|
117
|
+
OutputDefinition(name="best_candidate", kind=[DICTIONARY_KIND]),
|
|
118
|
+
OutputDefinition(name="candidates", kind=[LIST_OF_VALUES_KIND]),
|
|
119
|
+
OutputDefinition(name="error_status", kind=[BOOLEAN_KIND]),
|
|
120
|
+
OutputDefinition(name="message", kind=[STRING_KIND]),
|
|
121
|
+
OutputDefinition(name="best_candidate_image", kind=[IMAGE_KIND]),
|
|
122
|
+
OutputDefinition(name="best_candidate_metadata", kind=[DICTIONARY_KIND]),
|
|
123
|
+
OutputDefinition(name="best_candidate_tags", kind=[LIST_OF_VALUES_KIND]),
|
|
124
|
+
]
|
|
125
|
+
|
|
126
|
+
@classmethod
|
|
127
|
+
def get_execution_engine_compatibility(cls) -> Optional[str]:
|
|
128
|
+
return ">=1.3.0,<2.0.0"
|
|
129
|
+
|
|
130
|
+
def discover_dependent_resources(self) -> Optional[List[DependentResource]]:
|
|
131
|
+
return [roboflow_platform_project(project_url=self.target_project)]
|
|
132
|
+
|
|
133
|
+
def discover_work_operations(self) -> List[WorkOperation]:
|
|
134
|
+
return [WorkOperation.EXTERNAL_REQUEST, WorkOperation.IMAGE_ENCODING]
|
|
135
|
+
|
|
136
|
+
def get_actual_restrictions(
|
|
137
|
+
self, *, ignore_environment_restrictions: bool = False
|
|
138
|
+
) -> Discovery[RuntimeRestriction]:
|
|
139
|
+
return Discovery[RuntimeRestriction](
|
|
140
|
+
items=[], complete=True, unknown_reasons=[]
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
class RoboflowVisualSearchBlockV1(WorkflowBlock):
|
|
145
|
+
def __init__(
|
|
146
|
+
self,
|
|
147
|
+
api_key: Optional[str],
|
|
148
|
+
platform_client: RoboflowPlatformClient = OFFLINE_PLATFORM_CLIENT,
|
|
149
|
+
):
|
|
150
|
+
self._api_key = api_key
|
|
151
|
+
self._platform_client = resolve_platform_blocks_client(platform_client)
|
|
152
|
+
|
|
153
|
+
@classmethod
|
|
154
|
+
def get_init_parameters(cls) -> List[str]:
|
|
155
|
+
return ["api_key", "platform_client"]
|
|
156
|
+
|
|
157
|
+
@classmethod
|
|
158
|
+
def get_manifest(cls) -> Type[WorkflowBlockManifest]:
|
|
159
|
+
return BlockManifest
|
|
160
|
+
|
|
161
|
+
def run(
|
|
162
|
+
self,
|
|
163
|
+
image: Union[WorkflowImageData, Batch[WorkflowImageData]],
|
|
164
|
+
workspace: str,
|
|
165
|
+
target_project: str,
|
|
166
|
+
top_k: int = 1,
|
|
167
|
+
) -> BlockResult:
|
|
168
|
+
if self._api_key is None:
|
|
169
|
+
raise ValueError(
|
|
170
|
+
"Roboflow Visual Search block cannot run without a Roboflow API key. "
|
|
171
|
+
"Visit https://docs.roboflow.com/api-reference/authentication"
|
|
172
|
+
"#retrieve-an-api-key to learn how to retrieve one."
|
|
173
|
+
)
|
|
174
|
+
|
|
175
|
+
if isinstance(image, Batch):
|
|
176
|
+
return [
|
|
177
|
+
self._search_single_image(
|
|
178
|
+
image=single_image,
|
|
179
|
+
workspace=workspace,
|
|
180
|
+
target_project=target_project,
|
|
181
|
+
top_k=top_k,
|
|
182
|
+
)
|
|
183
|
+
for single_image in image
|
|
184
|
+
]
|
|
185
|
+
|
|
186
|
+
return self._search_single_image(
|
|
187
|
+
image=image,
|
|
188
|
+
workspace=workspace,
|
|
189
|
+
target_project=target_project,
|
|
190
|
+
top_k=top_k,
|
|
191
|
+
)
|
|
192
|
+
|
|
193
|
+
def _search_single_image(
|
|
194
|
+
self,
|
|
195
|
+
image: WorkflowImageData,
|
|
196
|
+
workspace: str,
|
|
197
|
+
target_project: str,
|
|
198
|
+
top_k: int,
|
|
199
|
+
) -> Dict[str, Any]:
|
|
200
|
+
try:
|
|
201
|
+
response = self._platform_client.search_project_images_at_roboflow(
|
|
202
|
+
api_key=self._api_key,
|
|
203
|
+
workspace=workspace,
|
|
204
|
+
project=target_project,
|
|
205
|
+
image_base64=image.base64_image,
|
|
206
|
+
limit=top_k,
|
|
207
|
+
)
|
|
208
|
+
candidates = [
|
|
209
|
+
format_visual_search_candidate(candidate=candidate)
|
|
210
|
+
for candidate in response.get("results", [])
|
|
211
|
+
]
|
|
212
|
+
if not candidates:
|
|
213
|
+
return {
|
|
214
|
+
"candidate_found": False,
|
|
215
|
+
"best_candidate": {},
|
|
216
|
+
"candidates": [],
|
|
217
|
+
"error_status": False,
|
|
218
|
+
"message": "No visually similar images found.",
|
|
219
|
+
"best_candidate_image": None,
|
|
220
|
+
"best_candidate_metadata": {},
|
|
221
|
+
"best_candidate_tags": [],
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
best_candidate = candidates[0]
|
|
225
|
+
return {
|
|
226
|
+
"candidate_found": True,
|
|
227
|
+
"best_candidate": best_candidate,
|
|
228
|
+
"candidates": candidates,
|
|
229
|
+
"error_status": False,
|
|
230
|
+
"message": "Visual search completed.",
|
|
231
|
+
"best_candidate_image": build_visual_search_candidate_image(
|
|
232
|
+
candidate=best_candidate,
|
|
233
|
+
fallback_parent_id="visual_search_candidate",
|
|
234
|
+
),
|
|
235
|
+
"best_candidate_metadata": best_candidate["metadata"],
|
|
236
|
+
"best_candidate_tags": best_candidate["tags"],
|
|
237
|
+
}
|
|
238
|
+
except Exception as error:
|
|
239
|
+
return {
|
|
240
|
+
"candidate_found": False,
|
|
241
|
+
"best_candidate": {},
|
|
242
|
+
"candidates": [],
|
|
243
|
+
"error_status": True,
|
|
244
|
+
"message": f"Visual search failed: {error}",
|
|
245
|
+
"best_candidate_image": None,
|
|
246
|
+
"best_candidate_metadata": {},
|
|
247
|
+
"best_candidate_tags": [],
|
|
248
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def parse_visual_search_classification(
|
|
5
|
+
candidate: Dict[str, Any],
|
|
6
|
+
) -> Optional[Dict[str, Any]]:
|
|
7
|
+
classification = parse_classification_annotation(
|
|
8
|
+
classification=candidate.get("classification")
|
|
9
|
+
)
|
|
10
|
+
if classification is not None:
|
|
11
|
+
return classification
|
|
12
|
+
classification = parse_labels(labels=candidate.get("labels"))
|
|
13
|
+
if classification is not None:
|
|
14
|
+
return classification
|
|
15
|
+
return parse_annotations(annotations=candidate.get("annotations"))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def parse_classification_annotation(
|
|
19
|
+
classification: Any,
|
|
20
|
+
) -> Optional[Dict[str, Any]]:
|
|
21
|
+
if not isinstance(classification, dict):
|
|
22
|
+
return None
|
|
23
|
+
if _has_single_label_annotation(classification=classification):
|
|
24
|
+
return {
|
|
25
|
+
"type": "single_label",
|
|
26
|
+
"classes": [_build_class_entry(classification=classification)],
|
|
27
|
+
}
|
|
28
|
+
return _parse_multi_label_annotation(classification=classification)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def parse_labels(labels: Any) -> Optional[Dict[str, Any]]:
|
|
32
|
+
if not isinstance(labels, list):
|
|
33
|
+
return None
|
|
34
|
+
class_entries = []
|
|
35
|
+
for label in labels:
|
|
36
|
+
if isinstance(label, str):
|
|
37
|
+
class_entries.append({"class": label})
|
|
38
|
+
elif isinstance(label, dict):
|
|
39
|
+
class_entries.append(
|
|
40
|
+
{
|
|
41
|
+
"class": label.get("class"),
|
|
42
|
+
"class_id": label.get("class_id"),
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
return _build_annotation_from_class_entries(class_entries=class_entries)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def parse_annotations(annotations: Any) -> Optional[Dict[str, Any]]:
|
|
49
|
+
if not isinstance(annotations, list):
|
|
50
|
+
return None
|
|
51
|
+
class_names = []
|
|
52
|
+
for annotation in annotations:
|
|
53
|
+
if not isinstance(annotation, dict):
|
|
54
|
+
continue
|
|
55
|
+
classes = annotation.get("classes")
|
|
56
|
+
if isinstance(classes, list):
|
|
57
|
+
class_names.extend(classes)
|
|
58
|
+
return _build_annotation_from_class_entries(
|
|
59
|
+
class_entries=[{"class": class_name} for class_name in class_names]
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def _has_single_label_annotation(classification: Dict[str, Any]) -> bool:
|
|
64
|
+
return (
|
|
65
|
+
isinstance(classification.get("class"), str)
|
|
66
|
+
and len(classification["class"]) > 0
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def _build_annotation_from_class_entries(
|
|
71
|
+
class_entries: List[Dict[str, Any]],
|
|
72
|
+
) -> Optional[Dict[str, Any]]:
|
|
73
|
+
classes = []
|
|
74
|
+
seen_class_names = set()
|
|
75
|
+
used_class_ids = set()
|
|
76
|
+
for fallback_class_id, class_entry in enumerate(class_entries):
|
|
77
|
+
class_name = class_entry.get("class")
|
|
78
|
+
if (
|
|
79
|
+
not isinstance(class_name, str)
|
|
80
|
+
or not class_name
|
|
81
|
+
or class_name in seen_class_names
|
|
82
|
+
):
|
|
83
|
+
continue
|
|
84
|
+
class_id = _normalise_class_id(class_entry.get("class_id"))
|
|
85
|
+
if class_id < 0 or class_id in used_class_ids:
|
|
86
|
+
class_id = _next_available_class_id(
|
|
87
|
+
preferred_class_id=fallback_class_id,
|
|
88
|
+
used_class_ids=used_class_ids,
|
|
89
|
+
)
|
|
90
|
+
classes.append(
|
|
91
|
+
{
|
|
92
|
+
"class": class_name,
|
|
93
|
+
"class_id": class_id,
|
|
94
|
+
}
|
|
95
|
+
)
|
|
96
|
+
seen_class_names.add(class_name)
|
|
97
|
+
used_class_ids.add(class_id)
|
|
98
|
+
if not classes:
|
|
99
|
+
return None
|
|
100
|
+
if len(classes) == 1:
|
|
101
|
+
return {
|
|
102
|
+
"type": "single_label",
|
|
103
|
+
"classes": classes,
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
"type": "multi_label",
|
|
107
|
+
"classes": classes,
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
def _parse_multi_label_annotation(
|
|
112
|
+
classification: Dict[str, Any],
|
|
113
|
+
) -> Optional[Dict[str, Any]]:
|
|
114
|
+
predicted_classes = classification.get("predicted_classes")
|
|
115
|
+
if not isinstance(predicted_classes, list) or not predicted_classes:
|
|
116
|
+
return None
|
|
117
|
+
predictions = classification.get("predictions")
|
|
118
|
+
if not isinstance(predictions, dict):
|
|
119
|
+
predictions = {}
|
|
120
|
+
classes = []
|
|
121
|
+
seen_class_names = set()
|
|
122
|
+
used_class_ids = set()
|
|
123
|
+
for fallback_class_id, class_name in enumerate(predicted_classes):
|
|
124
|
+
if (
|
|
125
|
+
not isinstance(class_name, str)
|
|
126
|
+
or not class_name
|
|
127
|
+
or class_name in seen_class_names
|
|
128
|
+
):
|
|
129
|
+
continue
|
|
130
|
+
prediction = predictions.get(class_name) or {}
|
|
131
|
+
if not isinstance(prediction, dict):
|
|
132
|
+
prediction = {}
|
|
133
|
+
class_id = _normalise_class_id(prediction.get("class_id"))
|
|
134
|
+
if class_id < 0 or class_id in used_class_ids:
|
|
135
|
+
class_id = _next_available_class_id(
|
|
136
|
+
preferred_class_id=fallback_class_id,
|
|
137
|
+
used_class_ids=used_class_ids,
|
|
138
|
+
)
|
|
139
|
+
classes.append(
|
|
140
|
+
{
|
|
141
|
+
"class": class_name,
|
|
142
|
+
"class_id": class_id,
|
|
143
|
+
}
|
|
144
|
+
)
|
|
145
|
+
seen_class_names.add(class_name)
|
|
146
|
+
used_class_ids.add(class_id)
|
|
147
|
+
if not classes:
|
|
148
|
+
return None
|
|
149
|
+
return {
|
|
150
|
+
"type": "multi_label",
|
|
151
|
+
"classes": classes,
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def _build_class_entry(classification: Dict[str, Any]) -> Dict[str, Any]:
|
|
156
|
+
return {
|
|
157
|
+
"class": classification["class"],
|
|
158
|
+
"class_id": _normalise_class_id(classification.get("class_id")),
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
def _normalise_class_id(class_id: Any) -> int:
|
|
163
|
+
if class_id is None:
|
|
164
|
+
return -1
|
|
165
|
+
try:
|
|
166
|
+
return int(class_id)
|
|
167
|
+
except (TypeError, ValueError):
|
|
168
|
+
return -1
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
def _next_available_class_id(
|
|
172
|
+
preferred_class_id: int,
|
|
173
|
+
used_class_ids: set,
|
|
174
|
+
) -> int:
|
|
175
|
+
while preferred_class_id in used_class_ids:
|
|
176
|
+
preferred_class_id += 1
|
|
177
|
+
return preferred_class_id
|