OTVision 0.6.9__tar.gz → 0.6.10__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.
- {otvision-0.6.9 → otvision-0.6.10}/.github/workflows/release-pypi.yml +5 -6
- {otvision-0.6.9 → otvision-0.6.10}/.github/workflows/release-testpypi.yml +6 -6
- otvision-0.6.10/.github/workflows/test.yml +30 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/version.py +1 -1
- {otvision-0.6.9 → otvision-0.6.10}/PKG-INFO +9 -2
- {otvision-0.6.9 → otvision-0.6.10}/config.yml +8 -14
- otvision-0.6.10/install.cmd +19 -0
- {otvision-0.6.9 → otvision-0.6.10}/install.sh +8 -7
- otvision-0.6.10/install_cuda.cmd +19 -0
- otvision-0.6.10/install_cuda.sh +27 -0
- {otvision-0.6.9 → otvision-0.6.10}/install_dev.cmd +2 -3
- {otvision-0.6.9 → otvision-0.6.10}/install_dev.sh +1 -2
- otvision-0.6.10/pyproject.toml +157 -0
- {otvision-0.6.9 → otvision-0.6.10}/update_precommit.py +10 -0
- otvision-0.6.10/uv.lock +1951 -0
- otvision-0.6.9/.github/workflows/test.yml +0 -25
- otvision-0.6.9/install.cmd +0 -16
- otvision-0.6.9/pyproject.toml +0 -62
- otvision-0.6.9/requirements-dev.txt +0 -15
- otvision-0.6.9/requirements.txt +0 -18
- {otvision-0.6.9 → otvision-0.6.10}/.editorconfig +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/.flake8 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/.github/dependabot.yml +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/.github/workflows/build-nightly.yml +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/.github/workflows/build-release.yml +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/.github/workflows/linter.yml +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/.gitignore +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/.pre-commit-config.yaml +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/.vscode/launch.json +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/.vscode/scripts/build_debug_env.cmd +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/.vscode/scripts/build_debug_env.sh +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/.vscode/scripts/teardown_debug_env.cmd +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/.vscode/scripts/teardown_debug_env.sh +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/.vscode/settings.json +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/.vscode/tasks.json +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/.yamllint.yaml +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/LICENSE +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/abstraction/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/abstraction/defaults.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/abstraction/observer.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/abstraction/pipes_and_filter.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/buffer.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/config.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/config_parser.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/configure_logger.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/detect/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/detect/current_object_detector.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/detect/current_object_detector_metadata.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/detect/detected_frame_factory.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/detect/factory.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/detect/get_detect_cli_args.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/detect/timestamper.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/detect/update_detect_config_with_cli_args.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/event/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/event/new_otvision_config.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/event/new_video_start.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/frame_count_provider.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/get_config.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/get_current_config.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/otvision_save_path_provider.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/track/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/track/get_track_cli_args.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/track/ottrk.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/track/tracking_run_id.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/track/update_current_track_config.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/track/update_track_config_with_cli_args.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/update_current_config.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/video/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/application/video/generate_video.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/config.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/convert/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/convert/convert.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/dataformat.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/detect/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/detect/builder.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/detect/cli.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/detect/detect.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/detect/detected_frame_buffer.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/detect/detected_frame_producer.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/detect/detected_frame_producer_factory.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/detect/file_based_detect_builder.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/detect/otdet.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/detect/otdet_file_writer.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/detect/plugin_av/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/detect/plugin_av/rotate_frame.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/detect/pyav_frame_count_provider.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/detect/rtsp_based_detect_builder.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/detect/rtsp_input_source.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/detect/timestamper.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/detect/video_input_source.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/detect/yolo.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/domain/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/domain/cli.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/domain/current_config.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/domain/detect_producer_consumer.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/domain/detection.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/domain/frame.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/domain/input_source_detect.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/domain/object_detection.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/domain/serialization.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/domain/time.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/domain/video_writer.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/helpers/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/helpers/date.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/helpers/files.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/helpers/formats.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/helpers/input_types.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/helpers/log.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/helpers/machine.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/helpers/video.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/plugin/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/plugin/ffmpeg_video_writer.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/plugin/generate_video.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/plugin/yaml_serialization.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/builder.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/cli.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/exporter/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/exporter/filebased_exporter.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/id_generator.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/model/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/model/filebased/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/model/filebased/frame_chunk.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/model/filebased/frame_group.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/model/track_exporter.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/model/tracking_interfaces.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/parser/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/parser/chunk_parser_plugins.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/parser/frame_group_parser_plugins.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/stream_ottrk_file_writer.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/track.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/tracker/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/tracker/filebased_tracking.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/track/tracker/tracker_plugin_iou.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/transform/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/transform/get_homography.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/transform/reference_points_picker.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/transform/transform.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/view/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/view/helpers/OTC.ico +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/view/view.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/view/view_convert.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/view/view_detect.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/view/view_helpers.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/view/view_track.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision/view/view_transform.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/OTVision.bat +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/README.md +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/clean-up-repository.sh +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/convert.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/detect.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/export_models.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/generate_video.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/reference_points_picker.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/abstraction/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/abstraction/test_defaults.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/abstraction/test_observer.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/application/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/application/detect/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/application/detect/test_current_object_detector.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/application/detect/test_detected_frame_factory.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/application/detect/test_get_detect_cli_args.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/application/detect/test_timestamper.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/application/detect/test_update_detect_config_with_cli_args.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/application/test_buffer.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/application/test_config_parser.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/application/test_get_config.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/application/test_otvision_save_path_provider.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/application/track/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/application/track/test_get_track_cli_args.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/application/track/test_ottrk.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/application/track/test_update_current_track_config.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/application/track/test_update_track_config_with_cli_args.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/cli/custom_cli_test_config.yaml +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/cli/test_convert_cli.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/cli/test_detect_cli.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/cli/test_track_cli.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/conftest.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/convert/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/convert/test_convert.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_CamView.png +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_CamView_Cars-Cyclist.png +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_CamView_Cars-Truck.png +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_CamView_refpts.png +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.gpkg +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otrfpts +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.gpkg +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mp4 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otrfpts +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_FR20.otrfpts +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_Satellite.jpg +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/Testvideo_Satellite_far.jpg +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/default/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/default/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/default/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/default/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mp4 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/fail_fps_from_filename/Testvideo_Cars-Cyclist_F20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/fail_fps_from_filename/Testvideo_Cars-Truck_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/fps_from_filename/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/fps_from_filename/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/fps_from_filename/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/fps_from_filename/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mp4 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/input_fps_20/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/input_fps_20/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/input_fps_20/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/input_fps_20/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mp4 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/input_fps_40/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/input_fps_40/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/input_fps_40/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/input_fps_40/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mp4 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/output_filetype_avi/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.avi +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/output_filetype_avi/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/output_filetype_avi/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.avi +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/output_filetype_avi/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/output_filetype_mkv/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/output_filetype_mkv/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mkv +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/output_filetype_mkv/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/output_filetype_mkv/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mkv +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/output_filetype_mov/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/output_filetype_mov/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mov +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/output_filetype_mov/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/output_filetype_mov/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mov +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/output_filetype_mp4/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/output_filetype_mp4/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/output_filetype_mp4/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/output_filetype_mp4/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mp4 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/rotation/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00_rotate.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/rotation/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00_rotate.mov +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/rotation/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00_rotate.mp4 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/rotation/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00_rotate.h264 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/rotation/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00_rotate.mov +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/convert/rotation/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00_rotate.mp4 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/detect/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/detect/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mp4 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/detect/default/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/detect/default/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/detect/rotated-Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4 +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/log/_otvision_logs/test.log +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/default/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/default/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/default/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/default/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_h_0_2/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_h_0_2/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_h_0_2/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_h_0_2/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_h_0_6/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_h_0_6/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_h_0_6/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_h_0_6/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_iou_0_2/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_iou_0_2/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_iou_0_2/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_iou_0_2/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_iou_0_6/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_iou_0_6/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_iou_0_6/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_iou_0_6/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_l_0_1/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_l_0_1/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_l_0_1/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_l_0_1/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_l_0_5/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_l_0_5/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_l_0_5/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/sigma_l_0_5/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/t_min_10/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/t_min_10/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/t_min_10/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/t_min_10/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/t_min_3/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/t_min_3/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/t_min_3/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/t_min_3/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/t_miss_max_25/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/t_miss_max_25/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/t_miss_max_25/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/t_miss_max_25/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/t_miss_max_75/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/t_miss_max_75/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/t_miss_max_75/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/track/t_miss_max_75/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/transform/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.gpkg +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/transform/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otrfpts +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/transform/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/transform/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.gpkg +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/transform/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otrfpts +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/transform/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/transform/Testvideo_FR20.otrfpts +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/yolov8m.mlpackage/Data/com.apple.CoreML/model.mlmodel +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/yolov8m.mlpackage/Data/com.apple.CoreML/weights/weight.bin +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/data/yolov8m.mlpackage/Manifest.json +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/detect/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/detect/detect_test.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/detect/plugin_av/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/detect/plugin_av/test_rotate_frame.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/detect/test_detected_frame_buffer.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/detect/test_detected_frame_producer.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/detect/test_detected_frame_producer_factory.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/detect/test_otdet.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/detect/test_otdet_file_writer.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/detect/test_pyav_frame_count_provider.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/detect/test_rtsp_input_source.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/detect/test_video_input_source.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/detect/yolo_test.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/helpers/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/helpers/files_test.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/helpers/formats_test.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/helpers/test_log.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/log/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/log/log_maker.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/log/test_log.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/plugin/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/plugin/test_ffmpeg_video_file_writer.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/test_config.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/track/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/track/helper/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/track/helper/data_builder.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/track/parser/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/track/parser/test_chunk_parser_plugins.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/track/test_frame_chunk.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/track/test_frame_group.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/track/test_frame_group_parser_plugins.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/track/test_stream_ottrk_file_writer.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/track/test_track.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/track/test_tracking_data_structures.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/transform/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/transform/test_transform.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/utils/__init__.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/utils/generator.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/tests/utils/mocking.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/track.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/transform.py +0 -0
- {otvision-0.6.9 → otvision-0.6.10}/view.py +0 -0
|
@@ -31,19 +31,18 @@ jobs:
|
|
|
31
31
|
uses: actions/setup-python@v5
|
|
32
32
|
with:
|
|
33
33
|
python-version: "3.12"
|
|
34
|
+
- name: Install uv
|
|
35
|
+
uses: astral-sh/setup-uv@v6
|
|
36
|
+
with:
|
|
37
|
+
enable-cache: true
|
|
34
38
|
- name: Update Python Package Version
|
|
35
39
|
uses: platomo/update-version-py-action@v1.0.1
|
|
36
40
|
with:
|
|
37
41
|
version: ${{ github.ref_name }}
|
|
38
42
|
file-path: "OTVision"
|
|
39
|
-
- name: Install pypa/build
|
|
40
|
-
shell: bash
|
|
41
|
-
run: |
|
|
42
|
-
python3 -m pip install build --user
|
|
43
|
-
|
|
44
43
|
- name: Build a binary wheel and a source tarball
|
|
45
44
|
shell: bash
|
|
46
|
-
run:
|
|
45
|
+
run: uv build --out-dir ${{ env.out_dir }}
|
|
47
46
|
|
|
48
47
|
- name: Store the distribution packages
|
|
49
48
|
uses: actions/upload-artifact@v4
|
|
@@ -35,6 +35,11 @@ jobs:
|
|
|
35
35
|
with:
|
|
36
36
|
python-version: "3.12"
|
|
37
37
|
|
|
38
|
+
- name: Install uv
|
|
39
|
+
uses: astral-sh/setup-uv@v6
|
|
40
|
+
with:
|
|
41
|
+
enable-cache: true
|
|
42
|
+
|
|
38
43
|
- name: Get latest tag and create new version
|
|
39
44
|
id: get_version
|
|
40
45
|
run: |
|
|
@@ -58,14 +63,9 @@ jobs:
|
|
|
58
63
|
with:
|
|
59
64
|
version: ${{ steps.get_version.outputs.new_version }}
|
|
60
65
|
file-path: "OTVision"
|
|
61
|
-
- name: Install pypa/build
|
|
62
|
-
shell: bash
|
|
63
|
-
run: |
|
|
64
|
-
python3 -m pip install build --user
|
|
65
|
-
|
|
66
66
|
- name: Build a binary wheel and a source tarball
|
|
67
67
|
shell: bash
|
|
68
|
-
run:
|
|
68
|
+
run: uv build --out-dir ${{ env.out_dir }}
|
|
69
69
|
|
|
70
70
|
- name: Store the distribution packages
|
|
71
71
|
uses: actions/upload-artifact@v4
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Test
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
# Run tests each time a PR is opened or changed.
|
|
6
|
+
# Allow other Workflows (e.g., build workflows) to call this workflow.
|
|
7
|
+
pull_request:
|
|
8
|
+
workflow_call:
|
|
9
|
+
|
|
10
|
+
permissions: read-all
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
test:
|
|
14
|
+
name: Run Python tests on multiple OS and Python versions
|
|
15
|
+
strategy:
|
|
16
|
+
fail-fast: True
|
|
17
|
+
matrix:
|
|
18
|
+
os: [ubuntu-latest, windows-latest]
|
|
19
|
+
py: ["3.12"]
|
|
20
|
+
runs-on: ${{ matrix.os }}
|
|
21
|
+
steps:
|
|
22
|
+
- name: Checkout repository
|
|
23
|
+
uses: actions/checkout@v4
|
|
24
|
+
- name: Run Python Tests
|
|
25
|
+
uses: platomo/test-python-app-action@v2
|
|
26
|
+
timeout-minutes: 60
|
|
27
|
+
with:
|
|
28
|
+
py-version: ${{ matrix.py }}
|
|
29
|
+
package-path: OTVision
|
|
30
|
+
ffmpeg-required: True
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: OTVision
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.10
|
|
4
4
|
Summary: OTVision is a core module of the OpenTrafficCam framework to perform object detection and tracking.
|
|
5
5
|
Project-URL: Homepage, https://opentrafficcam.org/
|
|
6
6
|
Project-URL: Documentation, https://opentrafficcam.org/overview/
|
|
@@ -15,8 +15,9 @@ Classifier: Development Status :: 4 - Beta
|
|
|
15
15
|
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
16
16
|
Classifier: Operating System :: OS Independent
|
|
17
17
|
Classifier: Programming Language :: Python :: 3
|
|
18
|
-
Requires-Python:
|
|
18
|
+
Requires-Python: ==3.12.*
|
|
19
19
|
Requires-Dist: av==13.0.0
|
|
20
|
+
Requires-Dist: coremltools==8.2; sys_platform == 'darwin'
|
|
20
21
|
Requires-Dist: ffmpeg-python==0.2.0
|
|
21
22
|
Requires-Dist: fire==0.7.0
|
|
22
23
|
Requires-Dist: geopandas==1.0.1
|
|
@@ -33,6 +34,12 @@ Requires-Dist: torchvision==0.22.1
|
|
|
33
34
|
Requires-Dist: tqdm==4.67.1
|
|
34
35
|
Requires-Dist: ujson==5.10.0
|
|
35
36
|
Requires-Dist: ultralytics==8.3.159
|
|
37
|
+
Provides-Extra: cuda
|
|
38
|
+
Requires-Dist: tensorrt-cu12-bindings==10.12.0.36; (sys_platform != 'darwin') and extra == 'cuda'
|
|
39
|
+
Requires-Dist: tensorrt-cu12-libs==10.12.0.36; (sys_platform != 'darwin') and extra == 'cuda'
|
|
40
|
+
Requires-Dist: tensorrt==10.12.0.36; (sys_platform != 'darwin') and extra == 'cuda'
|
|
41
|
+
Requires-Dist: torch; extra == 'cuda'
|
|
42
|
+
Requires-Dist: torchvision; extra == 'cuda'
|
|
36
43
|
Description-Content-Type: text/markdown
|
|
37
44
|
|
|
38
45
|
# OTVision
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
base_files:
|
|
2
2
|
- "LICENSE"
|
|
3
3
|
- "README.md"
|
|
4
|
-
- "
|
|
4
|
+
- "pyproject.toml"
|
|
5
5
|
- "user_config.otvision.yaml"
|
|
6
6
|
- "track.py"
|
|
7
7
|
- "detect.py"
|
|
@@ -28,26 +28,20 @@ configurations:
|
|
|
28
28
|
suffix: "macos"
|
|
29
29
|
output_file_name: OTVision
|
|
30
30
|
additional_requirements:
|
|
31
|
-
- "
|
|
31
|
+
- ""
|
|
32
32
|
- package_path: OTVision
|
|
33
33
|
files:
|
|
34
|
-
- source: "
|
|
34
|
+
- source: "install_cuda.cmd"
|
|
35
|
+
destination: "install.cmd"
|
|
35
36
|
suffix: "win-cuda"
|
|
36
37
|
output_file_name: otvision
|
|
37
38
|
additional_requirements:
|
|
38
|
-
- "
|
|
39
|
-
- "--extra-index-url https://download.pytorch.org/whl/cu128"
|
|
40
|
-
- "tensorrt==10.12.0.36"
|
|
41
|
-
- "tensorrt-cu12-bindings==10.12.0.36"
|
|
42
|
-
- "tensorrt-cu12-libs==10.12.0.36"
|
|
39
|
+
- ""
|
|
43
40
|
- package_path: OTVision
|
|
44
41
|
files:
|
|
45
|
-
- source: "
|
|
42
|
+
- source: "install_cuda.sh"
|
|
43
|
+
destination: "install.sh"
|
|
46
44
|
suffix: "linux-cuda"
|
|
47
45
|
output_file_name: OTVision
|
|
48
46
|
additional_requirements:
|
|
49
|
-
- "
|
|
50
|
-
- "--extra-index-url https://download.pytorch.org/whl/cu128"
|
|
51
|
-
- "tensorrt==10.12.0.36"
|
|
52
|
-
- "tensorrt-cu12-bindings==10.12.0.36"
|
|
53
|
-
- "tensorrt-cu12-libs==10.12.0.36"
|
|
47
|
+
- ""
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
echo Install OTVision.
|
|
2
|
+
@echo off
|
|
3
|
+
FOR /F "tokens=* USEBACKQ" %%F IN (`python --version`) DO SET "PYTHON_VERSION=%%F"
|
|
4
|
+
|
|
5
|
+
echo %PYTHON_VERSION%
|
|
6
|
+
if "x%PYTHON_VERSION:3.12=%"=="x%PYTHON_VERSION%" (
|
|
7
|
+
echo "Python Version 3.12 is not installed in environment." & cmd /K & exit
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
REM Check if uv is available globally, if not install it
|
|
11
|
+
where uv >nul 2>nul
|
|
12
|
+
if errorlevel neq 0 (
|
|
13
|
+
echo uv not found globally, installing uv...
|
|
14
|
+
powershell -ExecutionPolicy Bypass -Command "& {irm https://astral.sh/uv/install.ps1 | iex}"
|
|
15
|
+
set "PATH=%USERPROFILE%\.cargo\bin;%PATH%"
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
uv venv .venv
|
|
19
|
+
uv sync --python .venv%
|
|
@@ -15,12 +15,13 @@ echo "$DIR"
|
|
|
15
15
|
cd "$DIR" || exit
|
|
16
16
|
WORKING_DIR=$(pwd)
|
|
17
17
|
VENV="$WORKING_DIR"/.venv
|
|
18
|
-
PYTHON="$VENV"/bin/python
|
|
19
|
-
PIP="$VENV"/bin/pip
|
|
20
|
-
UV="$VENV"/bin/uv
|
|
21
18
|
|
|
22
|
-
|
|
19
|
+
# Check if uv is available globally, if not install it
|
|
20
|
+
if ! command -v uv &>/dev/null; then
|
|
21
|
+
echo "uv not found globally, installing uv..."
|
|
22
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
23
|
+
export PATH="$HOME/.cargo/bin:$PATH"
|
|
24
|
+
fi
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
$UV pip install -r requirements.txt --index-strategy unsafe-best-match --python .venv
|
|
26
|
+
uv venv "$VENV"
|
|
27
|
+
uv sync --python "$VENV"
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
echo Install OTVision.
|
|
2
|
+
@echo off
|
|
3
|
+
FOR /F "tokens=* USEBACKQ" %%F IN (`python --version`) DO SET "PYTHON_VERSION=%%F"
|
|
4
|
+
|
|
5
|
+
echo %PYTHON_VERSION%
|
|
6
|
+
if "x%PYTHON_VERSION:3.12=%"=="x%PYTHON_VERSION%" (
|
|
7
|
+
echo "Python Version 3.12 is not installed in environment." & cmd /K & exit
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
REM Check if uv is available globally, if not install it
|
|
11
|
+
where uv >nul 2>nul
|
|
12
|
+
if errorlevel neq 0 (
|
|
13
|
+
echo uv not found globally, installing uv...
|
|
14
|
+
powershell -ExecutionPolicy Bypass -Command "& {irm https://astral.sh/uv/install.ps1 | iex}"
|
|
15
|
+
set "PATH=%USERPROFILE%\.cargo\bin;%PATH%"
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
uv venv .venv
|
|
19
|
+
uv sync --extra cuda --python .venv
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
SOURCE=${BASH_SOURCE[0]}
|
|
4
|
+
while [ -L "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
|
5
|
+
DIR=$(cd -P "$(dirname "$SOURCE")" >/dev/null 2>&1 && pwd)
|
|
6
|
+
SOURCE=$(readlink "$SOURCE")
|
|
7
|
+
[[ $SOURCE != /* ]] && SOURCE=$DIR/$SOURCE # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
|
8
|
+
done
|
|
9
|
+
DIR=$(cd -P "$(dirname "$SOURCE")" >/dev/null 2>&1 && pwd)
|
|
10
|
+
|
|
11
|
+
set -e
|
|
12
|
+
echo "Install OTVision."
|
|
13
|
+
|
|
14
|
+
echo "$DIR"
|
|
15
|
+
cd "$DIR" || exit
|
|
16
|
+
WORKING_DIR=$(pwd)
|
|
17
|
+
VENV="$WORKING_DIR"/.venv
|
|
18
|
+
|
|
19
|
+
# Check if uv is available globally, if not install it
|
|
20
|
+
if ! command -v uv &>/dev/null; then
|
|
21
|
+
echo "uv not found globally, installing uv..."
|
|
22
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
23
|
+
export PATH="$HOME/.cargo/bin:$PATH"
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
uv venv "$VENV"
|
|
27
|
+
uv sync --extra cuda --python "$VENV"
|
|
@@ -5,9 +5,8 @@ echo "Install OTVision development environment."
|
|
|
5
5
|
WORKING_DIR=$(pwd)
|
|
6
6
|
VENV="$WORKING_DIR"/.venv
|
|
7
7
|
PRE_COMMIT="$VENV"/bin/pre-commit
|
|
8
|
-
UV="$VENV"/bin/uv
|
|
9
8
|
|
|
10
9
|
bash "$WORKING_DIR"/install.sh
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
uv sync --only-dev --python "$VENV"
|
|
13
12
|
$PRE_COMMIT install --install-hooks
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "OTVision"
|
|
7
|
+
dynamic = ["version"]
|
|
8
|
+
authors = [
|
|
9
|
+
{ name="OpenTrafficCam contributors", email="team@opentrafficcam.org" },
|
|
10
|
+
{ name="platomo GmbH", email="info@platomo.de" },
|
|
11
|
+
]
|
|
12
|
+
description = "OTVision is a core module of the OpenTrafficCam framework to perform object detection and tracking."
|
|
13
|
+
|
|
14
|
+
readme = "README.md"
|
|
15
|
+
requires-python = "==3.12.*"
|
|
16
|
+
license = "GPL-3.0-only"
|
|
17
|
+
license-files = ["LICENSE"]
|
|
18
|
+
classifiers = [
|
|
19
|
+
"Development Status :: 4 - Beta",
|
|
20
|
+
"Programming Language :: Python :: 3",
|
|
21
|
+
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
|
22
|
+
"Operating System :: OS Independent",
|
|
23
|
+
]
|
|
24
|
+
keywords = ["OpenTrafficCam", "Traffic Analysis", "Traffic Counting", "Trajectories"]
|
|
25
|
+
dependencies = [
|
|
26
|
+
"av==13.0.0",
|
|
27
|
+
"coremltools==8.2; sys_platform == 'darwin'",
|
|
28
|
+
"ffmpeg-python==0.2.0",
|
|
29
|
+
"fire==0.7.0",
|
|
30
|
+
"geopandas==1.0.1",
|
|
31
|
+
"ijson==3.3.0",
|
|
32
|
+
"more-itertools==10.7.0",
|
|
33
|
+
"moviepy==1.0.3",
|
|
34
|
+
"numpy==2.1.1; sys_platform != 'win32'",
|
|
35
|
+
"numpy==1.26.4; sys_platform == 'win32'",
|
|
36
|
+
"opencv-python==4.10.0.84",
|
|
37
|
+
"pandas==2.2.3",
|
|
38
|
+
"PyYAML==6.0.2",
|
|
39
|
+
"torch==2.7.1",
|
|
40
|
+
"torchvision==0.22.1",
|
|
41
|
+
"tqdm==4.67.1",
|
|
42
|
+
"ujson==5.10.0",
|
|
43
|
+
"ultralytics==8.3.159",
|
|
44
|
+
]
|
|
45
|
+
|
|
46
|
+
[dependency-groups]
|
|
47
|
+
dev = [
|
|
48
|
+
"black==25.1.0",
|
|
49
|
+
"flake8==7.1.1",
|
|
50
|
+
"interrogate==1.5.0",
|
|
51
|
+
"isort==5.13.2",
|
|
52
|
+
"jsonschema==4.23.0",
|
|
53
|
+
"mypy==1.15.0",
|
|
54
|
+
"pandas-stubs==2.2.3.250308",
|
|
55
|
+
"pre-commit==3.8.0",
|
|
56
|
+
"pytest==8.3.3",
|
|
57
|
+
"pytest-cov==5.0.0",
|
|
58
|
+
"twine==6.1.0",
|
|
59
|
+
"yamllint==1.35.1",
|
|
60
|
+
]
|
|
61
|
+
|
|
62
|
+
[project.optional-dependencies]
|
|
63
|
+
cuda = [
|
|
64
|
+
"torch",
|
|
65
|
+
"torchvision",
|
|
66
|
+
"tensorrt==10.12.0.36; sys_platform != 'darwin'",
|
|
67
|
+
"tensorrt-cu12-bindings==10.12.0.36; sys_platform != 'darwin'",
|
|
68
|
+
"tensorrt-cu12-libs==10.12.0.36; sys_platform != 'darwin'",
|
|
69
|
+
]
|
|
70
|
+
[project.urls]
|
|
71
|
+
Homepage = "https://opentrafficcam.org/"
|
|
72
|
+
Documentation = "https://opentrafficcam.org/overview/"
|
|
73
|
+
Repository = "https://github.com/OpenTrafficCam/OTVision"
|
|
74
|
+
Issues = "https://github.com/OpenTrafficCam/OTVision/issues"
|
|
75
|
+
Changelog = "https://github.com/OpenTrafficCam/OTVision/releases"
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
[tool.hatch.version]
|
|
79
|
+
path = "OTVision/version.py"
|
|
80
|
+
|
|
81
|
+
[tool.hatch.build.targets.wheel]
|
|
82
|
+
packages = ["OTVision"]
|
|
83
|
+
|
|
84
|
+
[tool.hatch.build]
|
|
85
|
+
directory = "dist"
|
|
86
|
+
|
|
87
|
+
[tool.black]
|
|
88
|
+
line-length = 88
|
|
89
|
+
|
|
90
|
+
[tool.isort]
|
|
91
|
+
profile = "black"
|
|
92
|
+
|
|
93
|
+
[tool.mypy]
|
|
94
|
+
ignore_missing_imports = true
|
|
95
|
+
ignore_missing_imports_per_module = true
|
|
96
|
+
disallow_untyped_defs = true
|
|
97
|
+
|
|
98
|
+
[[tool.mypy.overrides]]
|
|
99
|
+
module = "OTVision.view.*"
|
|
100
|
+
ignore_errors = true
|
|
101
|
+
|
|
102
|
+
[[tool.mypy.overrides]]
|
|
103
|
+
module = "OTVision.transform.*"
|
|
104
|
+
ignore_errors = true
|
|
105
|
+
|
|
106
|
+
[[tool.uv.dependency-metadata]]
|
|
107
|
+
name = "tensorrt-cu12"
|
|
108
|
+
requires-dist = ["tensorrt-cu12-bindings", "tensorrt-cu12-libs"]
|
|
109
|
+
|
|
110
|
+
[[tool.uv.dependency-metadata]]
|
|
111
|
+
name = "tensorrt-cu12-libs"
|
|
112
|
+
requires-dist = ["nvidia-cuda-runtime-cu12"]
|
|
113
|
+
|
|
114
|
+
[[tool.uv.dependency-metadata]]
|
|
115
|
+
name = "nvidia-cuda-runtime-cu12"
|
|
116
|
+
|
|
117
|
+
[[tool.uv.dependency-metadata]]
|
|
118
|
+
name = "tensorrt-cu12-bindings"
|
|
119
|
+
|
|
120
|
+
[[tool.uv.dependency-metadata]]
|
|
121
|
+
name = "tensorrt-cu12-libs"
|
|
122
|
+
|
|
123
|
+
[tool.uv]
|
|
124
|
+
default-groups = []
|
|
125
|
+
environments = [
|
|
126
|
+
"sys_platform == 'win32'",
|
|
127
|
+
"sys_platform == 'darwin'",
|
|
128
|
+
"sys_platform == 'linux'",
|
|
129
|
+
]
|
|
130
|
+
|
|
131
|
+
[tool.uv.sources]
|
|
132
|
+
torch = [
|
|
133
|
+
{ index = "pytorch-cpu", marker = "sys_platform == 'darwin'" },
|
|
134
|
+
{ index = "pytorch-cu128", marker = "sys_platform != 'darwin'" , extra = "cuda" }
|
|
135
|
+
]
|
|
136
|
+
torchvision = [
|
|
137
|
+
{ index = "pytorch-cpu", marker = "sys_platform == 'darwin'" },
|
|
138
|
+
{ index = "pytorch-cu128", marker = "sys_platform != 'darwin'" , extra = "cuda" }
|
|
139
|
+
]
|
|
140
|
+
tensorrt = { index = "tensorrt", extra = "cuda" }
|
|
141
|
+
tensorrt-cu12-bindings = { index = "tensorrt", extra = "cuda" }
|
|
142
|
+
tensorrt-cu12-libs = { index = "tensorrt", extra = "cuda" }
|
|
143
|
+
|
|
144
|
+
[[tool.uv.index]]
|
|
145
|
+
name = "pytorch-cpu"
|
|
146
|
+
url = "https://download.pytorch.org/whl/cpu"
|
|
147
|
+
explicit = true
|
|
148
|
+
|
|
149
|
+
[[tool.uv.index]]
|
|
150
|
+
name = "pytorch-cu128"
|
|
151
|
+
url = "https://download.pytorch.org/whl/cu128"
|
|
152
|
+
explicit = true
|
|
153
|
+
|
|
154
|
+
[[tool.uv.index]]
|
|
155
|
+
name = "tensorrt"
|
|
156
|
+
url = "https://pypi.nvidia.com/"
|
|
157
|
+
explicit = true
|
|
@@ -127,6 +127,16 @@ class CustomDumper(yaml.SafeDumper):
|
|
|
127
127
|
def increase_indent(self, flow: bool = False, indentless: bool = False) -> None:
|
|
128
128
|
return super(CustomDumper, self).increase_indent(flow, False)
|
|
129
129
|
|
|
130
|
+
def choose_scalar_style(self) -> str:
|
|
131
|
+
# Get the default style choice
|
|
132
|
+
style = super().choose_scalar_style()
|
|
133
|
+
|
|
134
|
+
# If the default choice is single quotes, change to double quotes
|
|
135
|
+
if style == "'":
|
|
136
|
+
return '"'
|
|
137
|
+
|
|
138
|
+
return style
|
|
139
|
+
|
|
130
140
|
|
|
131
141
|
def parse_multiple_requirements_file(
|
|
132
142
|
files: Iterable[Path],
|