OTAnalytics 0.7.4__tar.gz → 0.7.6__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.
- otanalytics-0.7.6/.codespellrc +3 -0
- otanalytics-0.7.6/.github/super-linter-fix.env +6 -0
- otanalytics-0.7.6/.github/super-linter.env +21 -0
- otanalytics-0.7.6/.github/workflows/acceptance-test.yml +53 -0
- otanalytics-0.7.6/.github/workflows/benchmark.yml +57 -0
- otanalytics-0.7.6/.github/workflows/build-nightly.yml +38 -0
- otanalytics-0.7.6/.github/workflows/build-release.yml +40 -0
- otanalytics-0.7.6/.github/workflows/linter.yml +39 -0
- otanalytics-0.7.6/.github/workflows/regression-test.yml +50 -0
- otanalytics-0.7.6/.github/workflows/release-pypi.yml +63 -0
- otanalytics-0.7.6/.github/workflows/release-testpypi.yml +87 -0
- otanalytics-0.7.6/.github/workflows/system-test.yml +41 -0
- otanalytics-0.7.6/.github/workflows/test.yml +41 -0
- otanalytics-0.7.6/.gitignore +187 -0
- otanalytics-0.7.6/.pre-commit-config.yaml +60 -0
- otanalytics-0.7.6/.trivyignore +70 -0
- otanalytics-0.7.6/.yamllint.yaml +31 -0
- otanalytics-0.7.6/CONTEXT.md +96 -0
- otanalytics-0.7.6/OTAnalytics/adapter_ui/abstract_button_quick_save_config.py +11 -0
- otanalytics-0.7.6/OTAnalytics/adapter_ui/abstract_canvas.py +65 -0
- otanalytics-0.7.6/OTAnalytics/adapter_ui/abstract_frame_project.py +31 -0
- otanalytics-0.7.6/OTAnalytics/adapter_ui/abstract_frame_track_plotting.py +7 -0
- otanalytics-0.7.6/OTAnalytics/adapter_ui/dummy_viewmodel.py +1977 -0
- otanalytics-0.7.6/OTAnalytics/adapter_ui/file_export_dto.py +31 -0
- otanalytics-0.7.6/OTAnalytics/adapter_ui/local_file_providers.py +89 -0
- otanalytics-0.7.6/OTAnalytics/adapter_ui/message_type.py +9 -0
- otanalytics-0.7.6/OTAnalytics/adapter_ui/ui_factory.py +145 -0
- otanalytics-0.7.6/OTAnalytics/adapter_ui/view_model.py +523 -0
- otanalytics-0.7.6/OTAnalytics/application/analysis/road_user_assignment.py +340 -0
- otanalytics-0.7.6/OTAnalytics/application/analysis/traffic_counting.py +1199 -0
- otanalytics-0.7.6/OTAnalytics/application/analysis/traffic_counting_specification.py +102 -0
- otanalytics-0.7.6/OTAnalytics/application/analysis/traffic_statistics/day_statistics.py +401 -0
- otanalytics-0.7.6/OTAnalytics/application/analysis/traffic_statistics/speed_values.py +33 -0
- otanalytics-0.7.6/OTAnalytics/application/analysis/traffic_statistics_config.py +85 -0
- otanalytics-0.7.6/OTAnalytics/application/application.py +789 -0
- otanalytics-0.7.6/OTAnalytics/application/config.py +68 -0
- otanalytics-0.7.6/OTAnalytics/application/config_specification.py +76 -0
- otanalytics-0.7.6/OTAnalytics/application/datastore.py +326 -0
- otanalytics-0.7.6/OTAnalytics/application/eventlist.py +173 -0
- otanalytics-0.7.6/OTAnalytics/application/export_formats/event_list.py +29 -0
- otanalytics-0.7.6/OTAnalytics/application/export_formats/road_user_assignments.py +67 -0
- otanalytics-0.7.6/OTAnalytics/application/export_path_builder.py +90 -0
- otanalytics-0.7.6/OTAnalytics/application/files.py +19 -0
- otanalytics-0.7.6/OTAnalytics/application/key_prefix.py +34 -0
- otanalytics-0.7.6/OTAnalytics/application/orthophoto.py +292 -0
- otanalytics-0.7.6/OTAnalytics/application/parser/cli_parser.py +151 -0
- otanalytics-0.7.6/OTAnalytics/application/parser/config_parser.py +181 -0
- otanalytics-0.7.6/OTAnalytics/application/parser/track_parser.py +60 -0
- otanalytics-0.7.6/OTAnalytics/application/plotting.py +374 -0
- otanalytics-0.7.6/OTAnalytics/application/progress.py +195 -0
- otanalytics-0.7.6/OTAnalytics/application/project_location.py +43 -0
- otanalytics-0.7.6/OTAnalytics/application/resources/resource_manager.py +433 -0
- otanalytics-0.7.6/OTAnalytics/application/run_configuration.py +300 -0
- otanalytics-0.7.6/OTAnalytics/application/startup_config.py +54 -0
- otanalytics-0.7.6/OTAnalytics/application/state.py +974 -0
- otanalytics-0.7.6/OTAnalytics/application/ui/frame_control.py +150 -0
- otanalytics-0.7.6/OTAnalytics/application/upload_otconfig.py +24 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/ask_for_load_window.py +47 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/assignment_repository.py +90 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/clear_repositories.py +58 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/config.py +101 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/config_has_changed.py +134 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/export_events.py +72 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/flow_repository.py +116 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/geo_track_export.py +30 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/get_current_analysis_config.py +36 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/get_current_remark.py +23 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/load_otconfig.py +162 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/load_otflow.py +93 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/load_track_files.py +252 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/provide_input_files.py +35 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/quick_save_configuration.py +37 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/reset_application.py +41 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/reset_state.py +60 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/road_user_assignment_export.py +315 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/section_repository.py +198 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/start_new_project.py +29 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/static_analysis_config.py +458 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/suggest_save_path.py +166 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/track_export.py +31 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/track_statistics_export.py +174 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/traffic_statistics_export.py +49 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/update_count_plots.py +33 -0
- otanalytics-0.7.6/OTAnalytics/application/use_cases/video_repository.py +145 -0
- otanalytics-0.7.6/OTAnalytics/domain/date.py +94 -0
- otanalytics-0.7.6/OTAnalytics/domain/event.py +881 -0
- otanalytics-0.7.6/OTAnalytics/domain/filter.py +261 -0
- otanalytics-0.7.6/OTAnalytics/domain/flow.py +204 -0
- otanalytics-0.7.6/OTAnalytics/domain/geometry.py +200 -0
- otanalytics-0.7.6/OTAnalytics/domain/georeference.py +118 -0
- otanalytics-0.7.6/OTAnalytics/domain/intersect.py +155 -0
- otanalytics-0.7.6/OTAnalytics/domain/load_window.py +65 -0
- otanalytics-0.7.6/OTAnalytics/domain/orthophoto.py +47 -0
- otanalytics-0.7.6/OTAnalytics/domain/progress.py +161 -0
- otanalytics-0.7.6/OTAnalytics/domain/remark.py +12 -0
- otanalytics-0.7.6/OTAnalytics/domain/section.py +486 -0
- otanalytics-0.7.6/OTAnalytics/domain/track.py +358 -0
- otanalytics-0.7.6/OTAnalytics/domain/track_dataset/filtered_track_dataset.py +96 -0
- otanalytics-0.7.6/OTAnalytics/domain/track_dataset/track_dataset.py +753 -0
- otanalytics-0.7.6/OTAnalytics/domain/track_repository.py +318 -0
- otanalytics-0.7.6/OTAnalytics/domain/transfer_mode.py +8 -0
- otanalytics-0.7.6/OTAnalytics/domain/video.py +342 -0
- otanalytics-0.7.6/OTAnalytics/helpers/file_helpers.py +58 -0
- otanalytics-0.7.6/OTAnalytics/plugin_cli/cli_application.py +150 -0
- otanalytics-0.7.6/OTAnalytics/plugin_datastore/filter_pandas_track_store.py +322 -0
- otanalytics-0.7.6/OTAnalytics/plugin_datastore/filter_polars_track_dataset.py +334 -0
- otanalytics-0.7.6/OTAnalytics/plugin_datastore/polars_track_id_set.py +85 -0
- otanalytics-0.7.6/OTAnalytics/plugin_datastore/polars_track_store.py +1234 -0
- otanalytics-0.7.6/OTAnalytics/plugin_datastore/python_track_store.py +1107 -0
- otanalytics-0.7.6/OTAnalytics/plugin_datastore/track_geometry_store/polars_geometry_store.py +1656 -0
- otanalytics-0.7.6/OTAnalytics/plugin_datastore/track_store.py +940 -0
- otanalytics-0.7.6/OTAnalytics/plugin_filter/dataframe_filter.py +330 -0
- otanalytics-0.7.6/OTAnalytics/plugin_orthophoto/rasterio_orthophoto.py +145 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/argparse_cli_parser.py +231 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/convert_ottrk_to_feathers.py +144 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/export.py +367 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/feathers_parser.py +259 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/geo_only.py +24 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/georeference_parsing.py +44 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/json_parser.py +71 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/otconfig_parser.py +590 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/ottrk_dataformat.py +80 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/otvision_parser.py +1095 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/pandas_parser.py +160 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/road_user_assignment_csv_reader.py +71 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/road_user_assignment_export.py +82 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/streaming_parser.py +119 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/track_export.py +82 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/track_statistics_export.py +143 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/traffic_statistics_csv.py +188 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/traffic_statistics_export.py +254 -0
- otanalytics-0.7.6/OTAnalytics/plugin_parser/traffic_statistics_json.py +182 -0
- otanalytics-0.7.6/OTAnalytics/plugin_prototypes/eventlist_exporter/eventlist_exporter.py +462 -0
- otanalytics-0.7.6/OTAnalytics/plugin_prototypes/track_visualization/track_viz.py +961 -0
- otanalytics-0.7.6/OTAnalytics/plugin_s3/cleanup.py +58 -0
- otanalytics-0.7.6/OTAnalytics/plugin_s3/config/env_vars.py +76 -0
- otanalytics-0.7.6/OTAnalytics/plugin_s3/config/parsing.py +126 -0
- otanalytics-0.7.6/OTAnalytics/plugin_s3/config/s3.py +33 -0
- otanalytics-0.7.6/OTAnalytics/plugin_s3/download.py +37 -0
- otanalytics-0.7.6/OTAnalytics/plugin_s3/download_objects.py +106 -0
- otanalytics-0.7.6/OTAnalytics/plugin_s3/filename_timestamp.py +44 -0
- otanalytics-0.7.6/OTAnalytics/plugin_s3/list_objects.py +45 -0
- otanalytics-0.7.6/OTAnalytics/plugin_s3/orthophoto.py +72 -0
- otanalytics-0.7.6/OTAnalytics/plugin_s3/otconfig_upload.py +15 -0
- otanalytics-0.7.6/OTAnalytics/plugin_s3/project_location.py +37 -0
- otanalytics-0.7.6/OTAnalytics/plugin_s3/s3_file_providers.py +306 -0
- otanalytics-0.7.6/OTAnalytics/plugin_s3/select_objects.py +45 -0
- otanalytics-0.7.6/OTAnalytics/plugin_s3/store.py +47 -0
- otanalytics-0.7.6/OTAnalytics/plugin_s3/upload.py +46 -0
- otanalytics-0.7.6/OTAnalytics/plugin_track_export/csv/track_dataset_writer.py +42 -0
- otanalytics-0.7.6/OTAnalytics/plugin_track_export/csv/writers/domain.py +30 -0
- otanalytics-0.7.6/OTAnalytics/plugin_track_export/csv/writers/pandas.py +44 -0
- otanalytics-0.7.6/OTAnalytics/plugin_track_export/csv/writers/polars.py +43 -0
- otanalytics-0.7.6/OTAnalytics/plugin_track_export/geo/geo_track_writer.py +156 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/application_starter.py +139 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/base_application.py +1281 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/cli.py +698 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/ctk_application.py +58 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/ctk_ui_factory.py +190 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/frame_filter.py +867 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/frame_project.py +478 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/frame_track_plotting.py +141 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/helpers.py +171 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/line_section.py +704 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/style.py +110 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_export_counts.py +244 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_export_file.py +159 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_progress.py +179 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_template.py +81 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/gui_application.py +272 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_application.py +622 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/dialogs/confirmation_dialog.py +26 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/dialogs/edit_section_dialog.py +90 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/dialogs/export_counts_dialog.py +271 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/dialogs/file_chooser_dialog.py +279 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/dialogs/file_picker.py +263 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/dialogs/load_window_dialog.py +128 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/button_form.py +36 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/dialog.py +76 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/forms.py +957 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/table.py +205 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/progressbar.py +215 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/arrow.py +54 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/line_resources.py +18 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/polygon.py +23 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/section_resources.py +26 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/text.py +22 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/theme/global_theme.py +39 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/add_track_form/visualization_offset_slider_form.py +86 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/canvas_and_files_form/canvas_form.py +735 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/canvas_and_files_form/section_geometry.py +184 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/configuration_bar/container.py +62 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/configuration_bar/project_form.py +191 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/configuration_bar/static_analysis_config_form.py +320 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/remarks_form/container.py +38 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form/container.py +46 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form/flow_form.py +225 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form/sections_form.py +195 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/svz_metadata_form/svz_metadata_form.py +282 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/track_statistics_form/container.py +105 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_filters_form/container.py +580 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_layers_form/layers_form.py +90 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/ui_factory.py +375 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/visualization/counts/counts_plotter.py +526 -0
- otanalytics-0.7.6/OTAnalytics/plugin_ui/visualization/visualization.py +1051 -0
- otanalytics-0.7.6/OTAnalytics/plugin_video_processing/video_reader.py +285 -0
- otanalytics-0.7.6/OTAnalytics/version.py +1 -0
- otanalytics-0.7.6/PKG-INFO +290 -0
- otanalytics-0.7.6/README.md +246 -0
- otanalytics-0.7.6/docs/dependency_management.md +45 -0
- otanalytics-0.7.6/docs/dev.md +69 -0
- otanalytics-0.7.6/install_dev.cmd +7 -0
- otanalytics-0.7.6/install_dev.sh +12 -0
- otanalytics-0.7.6/justfile +43 -0
- otanalytics-0.7.6/pyproject.toml +129 -0
- otanalytics-0.7.6/tests/acceptance/conftest.py +150 -0
- otanalytics-0.7.6/tests/acceptance/test_create_important_test_data.py +312 -0
- otanalytics-0.7.6/tests/acceptance/test_export_track_statistics.py +62 -0
- otanalytics-0.7.6/tests/acceptance/test_filters_navigation_buttons.py +454 -0
- otanalytics-0.7.6/tests/acceptance/test_load_from_s3.py +234 -0
- otanalytics-0.7.6/tests/acceptance/test_project_information.py +220 -0
- otanalytics-0.7.6/tests/acceptance/test_sections_and_flows.py +408 -0
- otanalytics-0.7.6/tests/acceptance/test_start_new_project.py +132 -0
- otanalytics-0.7.6/tests/benchmark/test_benchmark_otanalytics.py +581 -0
- otanalytics-0.7.6/tests/conftest.py +480 -0
- otanalytics-0.7.6/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otconfig +183 -0
- otanalytics-0.7.6/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otflow +150 -0
- otanalytics-0.7.6/tests/data/sections_created_test_file.otconfig +87 -0
- otanalytics-0.7.6/tests/data/track_statistics_reference.csv +2 -0
- otanalytics-0.7.6/tests/integration/OTAnalytics/plugin_s3/test_load_from_rustfs.py +251 -0
- otanalytics-0.7.6/tests/integration/OTAnalytics/plugin_ui/test_start_new_project.py +188 -0
- otanalytics-0.7.6/tests/regression/test_regression_otanalytics.py +287 -0
- otanalytics-0.7.6/tests/system/OTAnalytics/plugin_ui/test_cli.py +362 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_ui/test_dummy_viewmodel_confirmation.py +174 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_ui/test_dummy_viewmodel_enabled_buttons.py +162 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_ui/test_dummy_viewmodel_loading.py +156 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_ui/test_dummy_viewmodel_otconfig.py +290 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_ui/test_dummy_viewmodel_save_otconfig.py +101 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_ui/test_dummy_viewmodel_start_new_project.py +64 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_ui/test_helpers.py +108 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_ui/test_local_file_providers.py +146 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_ui/test_ui_factory_defaults.py +59 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/analysis/test_road_user_assignment.py +88 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/analysis/test_traffic_counting.py +1434 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/analysis/test_traffic_statistics_config.py +78 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/analysis/traffic_statistics/test_day_statistics.py +547 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/analysis/traffic_statistics/test_speed_values.py +24 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/parser/test_track_parser.py +156 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_current_key_prefix.py +58 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_datastore.py +262 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_eventlist.py +394 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_export_path_builder.py +83 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_key_prefix.py +54 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_orthophoto.py +329 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_plotting.py +228 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_progress.py +191 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_project_location.py +57 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_run_configuration.py +652 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_startup_config.py +68 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_state.py +691 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_upload_otconfig.py +30 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_clear_assignments_on_changed_flows.py +35 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_clear_repositories.py +47 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_config.py +164 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_config_has_changed.py +222 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_filter_visualization.py +83 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_flow_repository.py +176 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_get_current_remark.py +13 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_load_otconfig.py +448 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_load_otflow.py +150 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_load_track_files.py +882 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_quick_save_configuration.py +78 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_reset_application.py +43 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_reset_state.py +120 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_road_user_assignment_export.py +259 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_start_new_project.py +21 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_suggest_save_path.py +166 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_video_repository.py +183 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_date.py +96 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_event.py +814 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_filter.py +119 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_flow.py +142 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_geometry.py +118 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_georeference.py +100 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_load_window.py +82 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_remark.py +11 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_section.py +521 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_track.py +35 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_track_repository.py +281 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_transfer_mode.py +26 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_video.py +154 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/domain/track_dataset/test_filtered_track_dataset.py +464 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/helpers/test_file_helpers.py +65 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_cli/test_cli_application.py +16 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_datastore/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_datastore/test_filter_polars_track_store.py +167 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_datastore/test_polars_track_store.py +1535 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_datastore/test_python_track_store.py +923 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_datastore/test_track_store.py +918 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_datastore/track_geometry_store/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_datastore/track_geometry_store/test_polars_geometry_store.py +1604 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_filter/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_filter/test_dataframe_filter.py +519 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_intersect/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_intersect/shapely/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_intersect/simple/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_intersect_parallelization/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_number_of_tracks_to_be_validated/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_number_of_tracks_to_be_validated/svz/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_orthophoto/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_orthophoto/test_rasterio_orthophoto.py +162 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/conftest.py +32 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_argparse_cli_parser.py +104 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_convert_ottrk_to_feathers.py +115 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_export.py +426 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_feathers_parser.py +873 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_georeference_parsing.py +63 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_json_parser.py +71 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_otconfig_key_prefix.py +185 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_otconfig_parser.py +791 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_otconfig_substitution.py +186 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_otvision_parser.py +877 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_pandas_parser.py +208 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_road_user_assignment_csv_reader.py +99 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_road_user_assignment_export.py +233 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_track_export.py +176 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_traffic_statistics_csv.py +163 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_traffic_statistics_export.py +503 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_traffic_statistics_json.py +291 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_progress/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_prototypes/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_prototypes/test_eventlist_exporter.py +89 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_prototypes/track_visualization/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/config/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/config/test_env_vars.py +49 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/config/test_parsing.py +186 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_cleanup.py +121 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_download.py +58 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_download_objects.py +218 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_filename_timestamp.py +55 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_list_objects.py +126 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_orthophoto.py +83 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_otconfig_upload.py +36 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_project_location.py +72 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_read_video_name.py +196 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_s3_file_providers.py +336 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_select_objects.py +96 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_upload.py +61 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_track_export/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_track_export/csv/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_track_export/csv/conftest.py +8 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_track_export/csv/test_domain.py +116 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_track_export/csv/test_pandas.py +113 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_track_export/csv/test_polars.py +108 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_track_export/csv/test_track_dataset_writer.py +91 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_track_export/geo/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_track_export/geo/test_geo_track_writer.py +271 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/dialogs/test_confirmation_dialog.py +42 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/dialogs/test_file_chooser_dialog.py +261 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/dialogs/test_load_window_dialog.py +200 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/test_table.py +82 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/test_arrow.py +43 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/test_polygon.py +22 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/test_text.py +23 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/nicegui/test_progressbar.py +276 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/canvas_and_files_form/test_canvas_form.py +1814 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/canvas_and_files_form/test_section_geometry.py +190 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/configuration_bar/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/configuration_bar/test_project_form.py +37 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/remarks_form/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/remarks_form/test_container.py +84 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form/test_flow_form.py +106 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form/test_sections_form.py +105 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/track_statistics_form/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/track_statistics_form/test_container.py +50 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_filters_form/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_filters_form/test_container.py +511 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_layers_form/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_layers_form/test_layers_form.py +60 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/test_ui_factory.py +255 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_cli.py +1654 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_edit_section_dialog.py +248 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_export_counts_dialog.py +310 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_file_chooser_dialog.py +355 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_flow_form.py +310 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_nicegui_application.py +144 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_nicegui_preload.py +64 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_sections_form.py +289 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_svz_metadata_form.py +315 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_visualization_offset_slider_form.py +53 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/visualization/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/visualization/counts/__init__.py +0 -0
- otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/visualization/counts/test_counts_plotter.py +629 -0
- otanalytics-0.7.6/tests/unit/__init__.py +0 -0
- otanalytics-0.7.6/tests/utils/__init__.py +0 -0
- otanalytics-0.7.6/tests/utils/app_environment.py +67 -0
- otanalytics-0.7.6/tests/utils/builders/__init__.py +0 -0
- otanalytics-0.7.6/tests/utils/builders/event_builder.py +141 -0
- otanalytics-0.7.6/tests/utils/builders/otanalytics_builders.py +148 -0
- otanalytics-0.7.6/tests/utils/builders/road_user_assignment.py +125 -0
- otanalytics-0.7.6/tests/utils/builders/run_configuration.py +64 -0
- otanalytics-0.7.6/tests/utils/builders/s3_config_builder.py +34 -0
- otanalytics-0.7.6/tests/utils/builders/s3_store_builder.py +21 -0
- otanalytics-0.7.6/tests/utils/builders/track_builder.py +381 -0
- otanalytics-0.7.6/tests/utils/nicegui_table.py +43 -0
- otanalytics-0.7.6/tests/utils/playwright_helpers.py +1429 -0
- otanalytics-0.7.6/tests/utils/progress.py +24 -0
- otanalytics-0.7.6/tests/utils/rustfs_container.py +62 -0
- otanalytics-0.7.6/uv.lock +2664 -0
- otanalytics-0.7.4/.flake8 +0 -7
- otanalytics-0.7.4/.github/workflows/acceptance-test.yml +0 -41
- otanalytics-0.7.4/.github/workflows/benchmark.yml +0 -55
- otanalytics-0.7.4/.github/workflows/build-nightly.yml +0 -33
- otanalytics-0.7.4/.github/workflows/build-release.yml +0 -35
- otanalytics-0.7.4/.github/workflows/linter.yml +0 -46
- otanalytics-0.7.4/.github/workflows/regression-test.yml +0 -42
- otanalytics-0.7.4/.github/workflows/release-pypi.yml +0 -59
- otanalytics-0.7.4/.github/workflows/release-testpypi.yml +0 -83
- otanalytics-0.7.4/.github/workflows/test.yml +0 -34
- otanalytics-0.7.4/.gitignore +0 -177
- otanalytics-0.7.4/.pre-commit-config.yaml +0 -101
- otanalytics-0.7.4/.yamllint.yaml +0 -34
- otanalytics-0.7.4/OTAnalytics/adapter_ui/abstract_button_quick_save_config.py +0 -12
- otanalytics-0.7.4/OTAnalytics/adapter_ui/abstract_canvas.py +0 -66
- otanalytics-0.7.4/OTAnalytics/adapter_ui/abstract_frame_project.py +0 -27
- otanalytics-0.7.4/OTAnalytics/adapter_ui/abstract_frame_track_plotting.py +0 -11
- otanalytics-0.7.4/OTAnalytics/adapter_ui/dummy_viewmodel.py +0 -1824
- otanalytics-0.7.4/OTAnalytics/adapter_ui/file_export_dto.py +0 -8
- otanalytics-0.7.4/OTAnalytics/adapter_ui/ui_factory.py +0 -106
- otanalytics-0.7.4/OTAnalytics/adapter_ui/view_model.py +0 -525
- otanalytics-0.7.4/OTAnalytics/application/analysis/road_user_assignment.py +0 -301
- otanalytics-0.7.4/OTAnalytics/application/analysis/traffic_counting.py +0 -1196
- otanalytics-0.7.4/OTAnalytics/application/analysis/traffic_counting_specification.py +0 -95
- otanalytics-0.7.4/OTAnalytics/application/application.py +0 -705
- otanalytics-0.7.4/OTAnalytics/application/config.py +0 -58
- otanalytics-0.7.4/OTAnalytics/application/config_specification.py +0 -63
- otanalytics-0.7.4/OTAnalytics/application/datastore.py +0 -386
- otanalytics-0.7.4/OTAnalytics/application/eventlist.py +0 -161
- otanalytics-0.7.4/OTAnalytics/application/export_formats/event_list.py +0 -27
- otanalytics-0.7.4/OTAnalytics/application/export_formats/road_user_assignments.py +0 -60
- otanalytics-0.7.4/OTAnalytics/application/parser/cli_parser.py +0 -135
- otanalytics-0.7.4/OTAnalytics/application/parser/config_parser.py +0 -132
- otanalytics-0.7.4/OTAnalytics/application/plotting.py +0 -352
- otanalytics-0.7.4/OTAnalytics/application/progress.py +0 -95
- otanalytics-0.7.4/OTAnalytics/application/resources/resource_manager.py +0 -334
- otanalytics-0.7.4/OTAnalytics/application/run_configuration.py +0 -255
- otanalytics-0.7.4/OTAnalytics/application/state.py +0 -784
- otanalytics-0.7.4/OTAnalytics/application/ui/frame_control.py +0 -152
- otanalytics-0.7.4/OTAnalytics/application/use_cases/assignment_repository.py +0 -103
- otanalytics-0.7.4/OTAnalytics/application/use_cases/clear_repositories.py +0 -53
- otanalytics-0.7.4/OTAnalytics/application/use_cases/config.py +0 -64
- otanalytics-0.7.4/OTAnalytics/application/use_cases/config_has_changed.py +0 -121
- otanalytics-0.7.4/OTAnalytics/application/use_cases/export_events.py +0 -50
- otanalytics-0.7.4/OTAnalytics/application/use_cases/flow_repository.py +0 -101
- otanalytics-0.7.4/OTAnalytics/application/use_cases/get_current_remark.py +0 -9
- otanalytics-0.7.4/OTAnalytics/application/use_cases/load_otconfig.py +0 -76
- otanalytics-0.7.4/OTAnalytics/application/use_cases/load_otflow.py +0 -94
- otanalytics-0.7.4/OTAnalytics/application/use_cases/load_track_files.py +0 -76
- otanalytics-0.7.4/OTAnalytics/application/use_cases/quick_save_configuration.py +0 -37
- otanalytics-0.7.4/OTAnalytics/application/use_cases/reset_application.py +0 -14
- otanalytics-0.7.4/OTAnalytics/application/use_cases/reset_state.py +0 -42
- otanalytics-0.7.4/OTAnalytics/application/use_cases/road_user_assignment_export.py +0 -267
- otanalytics-0.7.4/OTAnalytics/application/use_cases/section_repository.py +0 -198
- otanalytics-0.7.4/OTAnalytics/application/use_cases/start_new_project.py +0 -39
- otanalytics-0.7.4/OTAnalytics/application/use_cases/suggest_save_path.py +0 -113
- otanalytics-0.7.4/OTAnalytics/application/use_cases/track_export.py +0 -57
- otanalytics-0.7.4/OTAnalytics/application/use_cases/track_statistics_export.py +0 -140
- otanalytics-0.7.4/OTAnalytics/application/use_cases/update_count_plots.py +0 -35
- otanalytics-0.7.4/OTAnalytics/application/use_cases/video_repository.py +0 -137
- otanalytics-0.7.4/OTAnalytics/domain/date.py +0 -85
- otanalytics-0.7.4/OTAnalytics/domain/event.py +0 -855
- otanalytics-0.7.4/OTAnalytics/domain/filter.py +0 -256
- otanalytics-0.7.4/OTAnalytics/domain/flow.py +0 -236
- otanalytics-0.7.4/OTAnalytics/domain/geometry.py +0 -211
- otanalytics-0.7.4/OTAnalytics/domain/intersect.py +0 -155
- otanalytics-0.7.4/OTAnalytics/domain/progress.py +0 -84
- otanalytics-0.7.4/OTAnalytics/domain/remark.py +0 -9
- otanalytics-0.7.4/OTAnalytics/domain/section.py +0 -483
- otanalytics-0.7.4/OTAnalytics/domain/track.py +0 -346
- otanalytics-0.7.4/OTAnalytics/domain/track_dataset/filtered_track_dataset.py +0 -93
- otanalytics-0.7.4/OTAnalytics/domain/track_dataset/track_dataset.py +0 -721
- otanalytics-0.7.4/OTAnalytics/domain/track_repository.py +0 -315
- otanalytics-0.7.4/OTAnalytics/domain/video.py +0 -339
- otanalytics-0.7.4/OTAnalytics/helpers/file_helpers.py +0 -31
- otanalytics-0.7.4/OTAnalytics/plugin_cli/cli_application.py +0 -114
- otanalytics-0.7.4/OTAnalytics/plugin_datastore/filter_pandas_track_store.py +0 -324
- otanalytics-0.7.4/OTAnalytics/plugin_datastore/filter_polars_track_dataset.py +0 -325
- otanalytics-0.7.4/OTAnalytics/plugin_datastore/polars_track_id_set.py +0 -86
- otanalytics-0.7.4/OTAnalytics/plugin_datastore/polars_track_store.py +0 -1022
- otanalytics-0.7.4/OTAnalytics/plugin_datastore/python_track_store.py +0 -1088
- otanalytics-0.7.4/OTAnalytics/plugin_datastore/track_geometry_store/polars_geometry_store.py +0 -1411
- otanalytics-0.7.4/OTAnalytics/plugin_datastore/track_store.py +0 -903
- otanalytics-0.7.4/OTAnalytics/plugin_filter/dataframe_filter.py +0 -324
- otanalytics-0.7.4/OTAnalytics/plugin_parser/argparse_cli_parser.py +0 -201
- otanalytics-0.7.4/OTAnalytics/plugin_parser/convert_ottrk_to_feathers.py +0 -117
- otanalytics-0.7.4/OTAnalytics/plugin_parser/export.py +0 -319
- otanalytics-0.7.4/OTAnalytics/plugin_parser/feathers_parser.py +0 -237
- otanalytics-0.7.4/OTAnalytics/plugin_parser/json_parser.py +0 -70
- otanalytics-0.7.4/OTAnalytics/plugin_parser/otconfig_parser.py +0 -361
- otanalytics-0.7.4/OTAnalytics/plugin_parser/ottrk_dataformat.py +0 -63
- otanalytics-0.7.4/OTAnalytics/plugin_parser/otvision_parser.py +0 -1085
- otanalytics-0.7.4/OTAnalytics/plugin_parser/pandas_parser.py +0 -152
- otanalytics-0.7.4/OTAnalytics/plugin_parser/road_user_assignment_export.py +0 -78
- otanalytics-0.7.4/OTAnalytics/plugin_parser/streaming_parser.py +0 -122
- otanalytics-0.7.4/OTAnalytics/plugin_parser/track_export.py +0 -102
- otanalytics-0.7.4/OTAnalytics/plugin_parser/track_statistics_export.py +0 -137
- otanalytics-0.7.4/OTAnalytics/plugin_prototypes/eventlist_exporter/eventlist_exporter.py +0 -441
- otanalytics-0.7.4/OTAnalytics/plugin_prototypes/track_visualization/track_viz.py +0 -947
- otanalytics-0.7.4/OTAnalytics/plugin_ui/application_starter.py +0 -101
- otanalytics-0.7.4/OTAnalytics/plugin_ui/base_application.py +0 -1144
- otanalytics-0.7.4/OTAnalytics/plugin_ui/cli.py +0 -571
- otanalytics-0.7.4/OTAnalytics/plugin_ui/ctk_application.py +0 -59
- otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/ctk_ui_factory.py +0 -186
- otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/frame_filter.py +0 -865
- otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/frame_project.py +0 -476
- otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/frame_track_plotting.py +0 -153
- otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/helpers.py +0 -161
- otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/line_section.py +0 -704
- otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/style.py +0 -110
- otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_export_counts.py +0 -178
- otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_export_file.py +0 -117
- otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_progress.py +0 -181
- otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_template.py +0 -81
- otanalytics-0.7.4/OTAnalytics/plugin_ui/gui_application.py +0 -216
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_application.py +0 -240
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/dialogs/edit_section_dialog.py +0 -71
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/dialogs/export_counts_dialog.py +0 -216
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/dialogs/file_chooser_dialog.py +0 -155
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/dialogs/file_picker.py +0 -264
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/button_form.py +0 -37
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/dialog.py +0 -61
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/forms.py +0 -844
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/table.py +0 -172
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/line_resources.py +0 -17
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/section_resources.py +0 -17
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui/theme/global_theme.py +0 -24
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/add_track_form/visualization_offset_slider_form.py +0 -84
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/canvas_and_files_form/canvas_form.py +0 -382
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/configuration_bar/container.py +0 -56
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/configuration_bar/project_form.py +0 -155
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/remarks_form/container.py +0 -39
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form/container.py +0 -43
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form/flow_form.py +0 -175
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form/sections_form.py +0 -183
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/svz_metadata_form/svz_metadata_form.py +0 -248
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/track_statistics_form/container.py +0 -92
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_filters_form/container.py +0 -404
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_layers_form/layers_form.py +0 -75
- otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/ui_factory.py +0 -269
- otanalytics-0.7.4/OTAnalytics/plugin_ui/visualization/counts/counts_plotter.py +0 -524
- otanalytics-0.7.4/OTAnalytics/plugin_ui/visualization/visualization.py +0 -1044
- otanalytics-0.7.4/OTAnalytics/plugin_video_processing/video_reader.py +0 -286
- otanalytics-0.7.4/OTAnalytics/version.py +0 -1
- otanalytics-0.7.4/PKG-INFO +0 -196
- otanalytics-0.7.4/README.md +0 -154
- otanalytics-0.7.4/install_dev.cmd +0 -7
- otanalytics-0.7.4/install_dev.sh +0 -12
- otanalytics-0.7.4/pyproject.toml +0 -106
- otanalytics-0.7.4/tests/acceptance/conftest.py +0 -138
- otanalytics-0.7.4/tests/acceptance/test_create_important_test_data.py +0 -313
- otanalytics-0.7.4/tests/acceptance/test_export_track_statistics.py +0 -61
- otanalytics-0.7.4/tests/acceptance/test_filters_navigation_buttons.py +0 -454
- otanalytics-0.7.4/tests/acceptance/test_project_information.py +0 -219
- otanalytics-0.7.4/tests/acceptance/test_sections_and_flows.py +0 -219
- otanalytics-0.7.4/tests/benchmark/test_benchmark_otanalytics.py +0 -580
- otanalytics-0.7.4/tests/conftest.py +0 -480
- otanalytics-0.7.4/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otconfig +0 -183
- otanalytics-0.7.4/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otflow +0 -150
- otanalytics-0.7.4/tests/data/sections_created_test_file.otconfig +0 -87
- otanalytics-0.7.4/tests/regression/test_regression_otanalytics.py +0 -288
- otanalytics-0.7.4/tests/unit/OTAnalytics/adapter_ui/test_helpers.py +0 -81
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/analysis/test_road_user_assignment.py +0 -57
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/analysis/test_traffic_counting.py +0 -1426
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/test_datastore.py +0 -267
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/test_eventlist.py +0 -299
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/test_plotting.py +0 -175
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/test_progress.py +0 -53
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/test_run_configuration.py +0 -507
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/test_state.py +0 -622
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_clear_repositories.py +0 -43
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_config.py +0 -54
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_config_has_changed.py +0 -212
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_filter_visualization.py +0 -84
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_flow_repository.py +0 -124
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_load_otconfig.py +0 -164
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_load_otflow.py +0 -150
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_load_track_files.py +0 -244
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_quick_save_configuration.py +0 -78
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_reset_application.py +0 -25
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_reset_state.py +0 -80
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_road_user_assignment_export.py +0 -152
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_start_new_project.py +0 -25
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_suggest_save_path.py +0 -166
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_track_export.py +0 -49
- otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_video_repository.py +0 -175
- otanalytics-0.7.4/tests/unit/OTAnalytics/domain/test_date.py +0 -78
- otanalytics-0.7.4/tests/unit/OTAnalytics/domain/test_event.py +0 -758
- otanalytics-0.7.4/tests/unit/OTAnalytics/domain/test_filter.py +0 -107
- otanalytics-0.7.4/tests/unit/OTAnalytics/domain/test_flow.py +0 -142
- otanalytics-0.7.4/tests/unit/OTAnalytics/domain/test_geometry.py +0 -119
- otanalytics-0.7.4/tests/unit/OTAnalytics/domain/test_section.py +0 -513
- otanalytics-0.7.4/tests/unit/OTAnalytics/domain/test_track_repository.py +0 -273
- otanalytics-0.7.4/tests/unit/OTAnalytics/domain/test_video.py +0 -147
- otanalytics-0.7.4/tests/unit/OTAnalytics/domain/track_dataset/test_filtered_track_dataset.py +0 -456
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_datastore/test_filter_polars_track_store.py +0 -117
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_datastore/test_polars_track_store.py +0 -626
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_datastore/test_python_track_store.py +0 -805
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_datastore/test_track_store.py +0 -723
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_datastore/track_geometry_store/test_polars_geometry_store.py +0 -733
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_filter/test_dataframe_filter.py +0 -457
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser/test_argparse_cli_parser.py +0 -74
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser/test_export.py +0 -419
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser/test_feathers_parser.py +0 -359
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser/test_json_parser.py +0 -59
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser/test_otconfig_parser.py +0 -363
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser/test_otvision_parser.py +0 -822
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser/test_pandas_parser.py +0 -121
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser/test_road_user_assignment_export.py +0 -82
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser/test_track_export.py +0 -59
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_prototypes/test_eventlist_exporter.py +0 -15
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/dialogs/test_file_chooser_dialog.py +0 -260
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/canvas_and_files_form/test_canvas_form.py +0 -1107
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/test_cli.py +0 -1190
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/test_edit_section_dialog.py +0 -197
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/test_export_counts_dialog.py +0 -206
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/test_file_chooser_dialog.py +0 -221
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/test_flow_form.py +0 -169
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/test_sections_form.py +0 -257
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/test_svz_metadata_form.py +0 -243
- otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/visualization/counts/test_counts_plotter.py +0 -624
- otanalytics-0.7.4/tests/utils/builders/event_builder.py +0 -137
- otanalytics-0.7.4/tests/utils/builders/otanalytics_builders.py +0 -149
- otanalytics-0.7.4/tests/utils/builders/road_user_assignment.py +0 -54
- otanalytics-0.7.4/tests/utils/builders/run_configuration.py +0 -58
- otanalytics-0.7.4/tests/utils/builders/track_builder.py +0 -377
- otanalytics-0.7.4/tests/utils/playwright_helpers.py +0 -1367
- otanalytics-0.7.4/uv.lock +0 -2209
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.editorconfig +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.github/dependabot.yml +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.junie/guidelines.md +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/Scalene-CLI (benchmark).run.xml +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/Scalene-CLI.run.xml +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/Start-CLI (benchmark files).run.xml +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/Start-CLI.run.xml +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/Start-GUI (mit Benchmarkdaten).run.xml +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/Start-GUI (mit Testdaten).run.xml +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/Start-GUI.run.xml +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/Start-WebUI (mit Testdaten).run.xml +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/pytest-acceptance-tests.run.xml +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/pytest-benchmark-tests.run.xml +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/pytest-in-tests.run.xml +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/pytest-regression-tests.run.xml +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/pytest-unit-tests.run.xml +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.shellcheckrc +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.vscode/launch.json +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/.vscode/settings.json +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/LICENSE +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/__main__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_intersect/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/abstract_frame.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/abstract_frame_canvas.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/abstract_frame_filter.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/abstract_frame_offset.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/abstract_frame_remark.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/abstract_frame_track_statistics.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/abstract_main_window.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/abstract_progressbar_popup.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/abstract_treeview_interface.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/cancel_export_counts.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/cancel_export_file.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/default_values.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/dto.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/file_selection_cancelled.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/flow_adapter.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/flow_dto.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/helpers.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/info_box.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/message_box.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/text_resources.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/ui_texts.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_visualization/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_visualization/color_provider.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/analysis/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/analysis/intersect.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/application/export_formats → otanalytics-0.7.6/OTAnalytics/application/analysis/traffic_statistics}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/exception.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/application/parser → otanalytics-0.7.6/OTAnalytics/application/export_formats}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/export_formats/export_mode.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/export_formats/track_statistics.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/geometry.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/logger.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/application/resources → otanalytics-0.7.6/OTAnalytics/application/parser}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/parser/deserializer.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/parser/flow_parser.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/playback.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/project.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/application/ui → otanalytics-0.7.6/OTAnalytics/application/resources}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/track_filter.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/track_input_source.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/application/use_cases → otanalytics-0.7.6/OTAnalytics/application/ui}/__init__.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/application/use_cases/editor → otanalytics-0.7.6/OTAnalytics/application/use_cases}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/add_new_remark.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/apply_cli_cuts.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/create_events.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/create_intersection_events.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/create_road_user_assignments.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/cut_tracks_with_sections.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/domain → otanalytics-0.7.6/OTAnalytics/application/use_cases/editor}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/editor/section_editor.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/event_repository.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/filter_visualization.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/flow_statistics.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/generate_flows.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/get_current_project.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/highlight_intersections.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/inside_cutting_section.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/intersection_repository.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/number_of_tracks_to_be_validated.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/preload_input_files.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/reset_project_config.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/revert_cuts.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/save_otflow.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/track_repository.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/track_statistics.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/update_project.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/assets/OpenTrafficCam_800.png +0 -0
- {otanalytics-0.7.4/OTAnalytics/domain/track_dataset → otanalytics-0.7.6/OTAnalytics/domain}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/domain/common.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/domain/files.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/domain/observer.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/domain/otc_classes.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/domain/tls8plus1_classes.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/helpers → otanalytics-0.7.6/OTAnalytics/domain/track_dataset}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/domain/track_id_provider.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/domain/types.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_cli → otanalytics-0.7.6/OTAnalytics/helpers}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/helpers/time_profiling.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_datastore → otanalytics-0.7.6/OTAnalytics/plugin_cli}/__init__.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_datastore/track_geometry_store → otanalytics-0.7.6/OTAnalytics/plugin_datastore}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_datastore/get_current_frame_track_segments.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_datastore/pandas_track_dataset_factory.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_filter → otanalytics-0.7.6/OTAnalytics/plugin_datastore/track_geometry_store}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_datastore/track_geometry_store/shapely_store.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_intersect → otanalytics-0.7.6/OTAnalytics/plugin_filter}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_filter/pandas_track_id.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_intersect/shapely → otanalytics-0.7.6/OTAnalytics/plugin_intersect}/__init__.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_intersect/simple → otanalytics-0.7.6/OTAnalytics/plugin_intersect/shapely}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_intersect/shapely/mapping.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_intersect_parallelization → otanalytics-0.7.6/OTAnalytics/plugin_intersect/simple}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_intersect/simple/cut_tracks_with_sections.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_intersect/simple_intersect.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_number_of_tracks_to_be_validated → otanalytics-0.7.6/OTAnalytics/plugin_intersect_parallelization}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_intersect_parallelization/multiprocessing.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_intersect_parallelization/sequential.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_number_of_tracks_to_be_validated/svz → otanalytics-0.7.6/OTAnalytics/plugin_number_of_tracks_to_be_validated}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_number_of_tracks_to_be_validated/calculation_strategy.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_number_of_tracks_to_be_validated/metric_rates_builder.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_parser → otanalytics-0.7.6/OTAnalytics/plugin_number_of_tracks_to_be_validated/svz}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_number_of_tracks_to_be_validated/svz/metric_rates.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_number_of_tracks_to_be_validated/svz/number_of_tracks_to_be_validated.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_number_of_tracks_to_be_validated/tracks_as_dataframe_provider.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_progress → otanalytics-0.7.6/OTAnalytics/plugin_orthophoto}/__init__.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_prototypes → otanalytics-0.7.6/OTAnalytics/plugin_parser}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_parser/dataformat_versions.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_prototypes/eventlist_exporter → otanalytics-0.7.6/OTAnalytics/plugin_progress}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_progress/lazy_tqdm_progressbar.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_progress/multiprocessing_progress.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_progress/tqdm_progressbar.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_prototypes/track_visualization → otanalytics-0.7.6/OTAnalytics/plugin_prototypes}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_prototypes/event_visualization.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_track_input_source → otanalytics-0.7.6/OTAnalytics/plugin_prototypes/eventlist_exporter}/__init__.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui → otanalytics-0.7.6/OTAnalytics/plugin_prototypes/track_visualization}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_prototypes/track_visualization/cv2_image.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_prototypes/track_visualization/numpy_image.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_prototypes/track_visualization/pil_image.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui → otanalytics-0.7.6/OTAnalytics/plugin_s3}/__init__.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui → otanalytics-0.7.6/OTAnalytics/plugin_s3/config}/__init__.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/dialogs → otanalytics-0.7.6/OTAnalytics/plugin_track_export}/__init__.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/forms → otanalytics-0.7.6/OTAnalytics/plugin_track_export/csv}/__init__.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui → otanalytics-0.7.6/OTAnalytics/plugin_track_export/csv/writers}/__init__.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements → otanalytics-0.7.6/OTAnalytics/plugin_track_export/geo}/__init__.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui/theme → otanalytics-0.7.6/OTAnalytics/plugin_track_input_source}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_track_input_source/single_batch.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_track_input_source/template.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/page_builders → otanalytics-0.7.6/OTAnalytics/plugin_ui}/__init__.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages → otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/abstract_ctk_canvas.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/abstract_ctk_frame.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/button_quick_save_config.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/canvas_observer.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/constants.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/custom_containers.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_analysis.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_bbox_offset.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_canvas.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_configuration.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_date_filter_control.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_files.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_flows.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_remarks.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_sections.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_track_statistics.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_tracks.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_videos.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/gui.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/messagebox.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/scrollable_xy_frame.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/state.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_flows.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_sections.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/treeview_template.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/utility_widgets.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/intersection_repository.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/add_track_form → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/config.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/add_video_form → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/dialogs}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/dialogs/edit_flow_dialog.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/endpoints.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/file_utils.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/analysis_form → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/forms}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/forms/offset_slider_form.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/canvas_and_files_form → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/constants.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/configuration_bar → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/nicegui_webserver.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/page_builder.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/circle.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/circle_resources.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/line.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/polyline.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/remarks_form → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/theme}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/theme/color.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/theme/nicegui_layout_components.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/validation.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/page_builders}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/page_builders/main_page_builder.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/svz_metadata_form → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages}/__init__.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/track_statistics_form → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/add_track_form}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/add_track_form/add_tracks_form.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/add_track_form/container.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_filters_form → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/add_video_form}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/add_video_form/container.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_layers_form → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/analysis_form}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/analysis_form/container.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/utils → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/canvas_and_files_form}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/canvas_and_files_form/container.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/canvas_and_files_form/files_form.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/visualization → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/configuration_bar}/__init__.py +0 -0
- {otanalytics-0.7.4/OTAnalytics/plugin_ui/visualization/counts → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/remarks_form}/__init__.py +0 -0
- {otanalytics-0.7.4/tests → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form}/__init__.py +0 -0
- {otanalytics-0.7.4/tests/acceptance → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/svz_metadata_form}/__init__.py +0 -0
- {otanalytics-0.7.4/tests/benchmark → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/track_statistics_form}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_filters.py +0 -0
- {otanalytics-0.7.4/tests/regression → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_filters_form}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_layers.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_layers_form}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_layers_form/container.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/workspace.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/test_constants.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/adapter_intersect → otanalytics-0.7.6/OTAnalytics/plugin_ui/utils}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/utils/asyncio_helper.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/application → otanalytics-0.7.6/OTAnalytics/plugin_ui/visualization}/__init__.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/application/analysis → otanalytics-0.7.6/OTAnalytics/plugin_ui/visualization/counts}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/clean-up-repository.sh +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/config.yml +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/convert_ottrk_to_feather.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/install.cmd +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/install.sh +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/requirements.txt +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/scripts/check_clean_architecture.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/start_gui.cmd +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/start_gui.sh +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/application/resources → otanalytics-0.7.6/tests}/__init__.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/application/ui → otanalytics-0.7.6/tests/acceptance}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/acceptance/test_tracks_add_and_display.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/acceptance/test_video_import_and_display.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases → otanalytics-0.7.6/tests/benchmark}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/Sample_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4 +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mp4 +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/all_tracks.png +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/highlight_tracks_assigned_to_flows.png +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/highlight_tracks_intersecting_sections.png +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/highlight_tracks_not_assigned_to_flows.png +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/highlight_tracks_not_intersecting_sections.png +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/offset_before.png +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/start_end_all.png +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/start_end_assigned_to_flows.png +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/start_end_intersecting_sections.png +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/start_end_not_assigned_to_flows.png +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/start_end_not_intersecting_sections.png +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/cyclists_2025-12-19_10-18-43.otconfig +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/section.json.bz2.otflow +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/test_name.otconfig +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/trucks_2025-12-19_10-19-22.otconfig +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/domain → otanalytics-0.7.6/tests/integration/OTAnalytics}/__init__.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/domain/track_dataset → otanalytics-0.7.6/tests/integration/OTAnalytics/plugin_s3}/__init__.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_datastore → otanalytics-0.7.6/tests/integration/OTAnalytics/plugin_ui}/__init__.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_datastore/track_geometry_store → otanalytics-0.7.6/tests/integration}/__init__.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_filter → otanalytics-0.7.6/tests/regression}/__init__.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_intersect → otanalytics-0.7.6/tests/system/OTAnalytics}/__init__.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_intersect/shapely → otanalytics-0.7.6/tests/system/OTAnalytics/plugin_ui}/__init__.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_intersect/simple → otanalytics-0.7.6/tests/system}/__init__.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_intersect_parallelization → otanalytics-0.7.6/tests/unit/OTAnalytics}/__init__.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_number_of_tracks_to_be_validated → otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_intersect}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/adapter_intersect/test_mapping.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_number_of_tracks_to_be_validated/svz → otanalytics-0.7.6/tests/unit/OTAnalytics/application}/__init__.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser → otanalytics-0.7.6/tests/unit/OTAnalytics/application/analysis}/__init__.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_progress → otanalytics-0.7.6/tests/unit/OTAnalytics/application/analysis/traffic_statistics}/__init__.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_prototypes → otanalytics-0.7.6/tests/unit/OTAnalytics/application/parser}/__init__.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_prototypes/track_visualization → otanalytics-0.7.6/tests/unit/OTAnalytics/application/resources}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/resources/test_resource_manager.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/test_helpers.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/test_project.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/test_track_filter.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui → otanalytics-0.7.6/tests/unit/OTAnalytics/application/ui}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/ui/test_frame_control.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/visualization → otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_apply_cli_cuts.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_create_events.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_create_intersection_events.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_event_repository.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_flows_statistics.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_generate_flows.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_get_current_project.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_get_road_user_assignments.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_highlight_intersections.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_inside_cutting_section.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_intersection_repository.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_preload_input_files.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_reset_project_config.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_revert_cuts.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_save_otflow.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_section_repository.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_track_repository.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_track_statistics.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_track_statistics_export.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_update_count_plots.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_update_project.py +0 -0
- {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/visualization/counts → otanalytics-0.7.6/tests/unit/OTAnalytics/domain}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/domain/test_files.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/domain/test_observer.py +0 -0
- {otanalytics-0.7.4/tests/unit → otanalytics-0.7.6/tests/unit/OTAnalytics/domain/track_dataset}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/domain/track_dataset/conftest.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/domain/track_dataset/test_track_dataset.py +0 -0
- {otanalytics-0.7.4/tests/utils → otanalytics-0.7.6/tests/unit/OTAnalytics/helpers}/__init__.py +0 -0
- {otanalytics-0.7.4/tests/utils/builders → otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_cli}/__init__.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_datastore/test_filter_pandas_track_store.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_datastore/track_geometry_store/test_shapely_store.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_intersect/simple/test_cut_tracks_with_sections.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_intersect/test_intersect.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_intersect_parallelization/test_multiprocessing.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_intersect_parallelization/test_sequential.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_number_of_tracks_to_be_validated/conftest.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_number_of_tracks_to_be_validated/svz/test_number_of_tracks_to_be_validated.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_number_of_tracks_to_be_validated/test_calculation_strategy.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_number_of_tracks_to_be_validated/test_tracks_as_dataframe_provider.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_parser/test_streaming_parser.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_progress/test_multiprocessing_progress.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_prototypes/track_visualization/test_track_viz.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_ui/conftest.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/dialogs/test_file_extension_filtering.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/dialogs/test_file_picker.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/test_circle.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/test_line.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/test_polyline.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_ui/test_edit_flow_dialog.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_ui/test_intersection_repository.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_video_processing/test_video_reader.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/utils/assertions.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/utils/builders/constants.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/utils/builders/ottrk_file_input_source.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/utils/builders/track_dataset_provider.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/utils/builders/track_segment_builder.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/utils/state.py +0 -0
- {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/utils/ui_helpers.py +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
DEFAULT_BRANCH=main
|
|
2
|
+
FILTER_REGEX_EXCLUDE=^.venv/
|
|
3
|
+
IGNORE_GENERATED_FILES=true
|
|
4
|
+
LINTER_RULES_PATH=.
|
|
5
|
+
PYTHON_RUFF_CONFIG_FILE=pyproject.toml
|
|
6
|
+
PYTHON_RUFF_FORMAT_CONFIG_FILE=pyproject.toml
|
|
7
|
+
VALIDATE_ALL_CODEBASE=false
|
|
8
|
+
VALIDATE_BIOME_FORMAT=false
|
|
9
|
+
VALIDATE_BIOME_LINT=false
|
|
10
|
+
VALIDATE_EDITORCONFIG=false
|
|
11
|
+
VALIDATE_GO_RELEASER=false
|
|
12
|
+
VALIDATE_JSCPD=false
|
|
13
|
+
VALIDATE_MARKDOWN_PRETTIER=false
|
|
14
|
+
VALIDATE_NATURAL_LANGUAGE=false
|
|
15
|
+
VALIDATE_PRE_COMMIT=false
|
|
16
|
+
VALIDATE_PYTHON_BLACK=false
|
|
17
|
+
VALIDATE_PYTHON_FLAKE8=false
|
|
18
|
+
VALIDATE_PYTHON_ISORT=false
|
|
19
|
+
VALIDATE_PYTHON_MYPY=false
|
|
20
|
+
VALIDATE_PYTHON_PYLINT=false
|
|
21
|
+
YAML_CONFIG_FILE=.yamllint.yaml
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Acceptance Test With Pytest
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
workflow_call:
|
|
8
|
+
|
|
9
|
+
permissions: {}
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
acceptance-test:
|
|
13
|
+
name: Run pytest Acceptance test
|
|
14
|
+
permissions:
|
|
15
|
+
contents: read
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- name: Checkout repository
|
|
19
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
20
|
+
with:
|
|
21
|
+
persist-credentials: false
|
|
22
|
+
- name: Set up Python 3.12
|
|
23
|
+
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
24
|
+
with:
|
|
25
|
+
python-version: 3.12
|
|
26
|
+
- name: Set up uv
|
|
27
|
+
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
|
28
|
+
with:
|
|
29
|
+
enable-cache: true
|
|
30
|
+
- name: Download test data
|
|
31
|
+
run: |
|
|
32
|
+
gh release download \
|
|
33
|
+
--pattern 'OTCamera19_FR20_2023-05-24_06-00-00_11-45-00.zip' \
|
|
34
|
+
--pattern 'OTCamera19_FR20_2023-05-24_00-00-00.zip' \
|
|
35
|
+
-R platomo/OpenTrafficCam-testdata -D tests/data
|
|
36
|
+
env:
|
|
37
|
+
GH_TOKEN: ${{ secrets.PLATOMO_OTC_TESTDATA_ACCESS }}
|
|
38
|
+
- name: Unzip test data
|
|
39
|
+
run: |
|
|
40
|
+
cd tests/data
|
|
41
|
+
unzip ./\*.zip
|
|
42
|
+
rm ./*.zip
|
|
43
|
+
cd ..
|
|
44
|
+
# Separate from the test steps so a stale uv.lock fails loudly and early.
|
|
45
|
+
- name: Install dependencies
|
|
46
|
+
run: uv sync --locked --dev
|
|
47
|
+
# pytest-playwright runs headless Chromium by default, so the other browsers
|
|
48
|
+
# (and their ~180 apt packages) aren't needed.
|
|
49
|
+
- name: Install Playwright browsers
|
|
50
|
+
run: uv run playwright install --with-deps --only-shell chromium
|
|
51
|
+
- name: Run acceptance tests
|
|
52
|
+
timeout-minutes: 20
|
|
53
|
+
run: uv run pytest --cov=OTAnalytics tests/acceptance
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Benchmark Test With Pytest
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
- cron: "0 0 * * *"
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: write
|
|
10
|
+
deployments: write
|
|
11
|
+
packages: write
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
benchmark:
|
|
15
|
+
name: Run pytest-benchmark benchmark
|
|
16
|
+
runs-on: [ubuntu-latest]
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
19
|
+
with:
|
|
20
|
+
persist-credentials: false
|
|
21
|
+
- uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
22
|
+
with:
|
|
23
|
+
python-version: 3.12
|
|
24
|
+
- name: Install uv
|
|
25
|
+
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
|
26
|
+
with:
|
|
27
|
+
enable-cache: true
|
|
28
|
+
- name: Download test data
|
|
29
|
+
run: |
|
|
30
|
+
gh release download \
|
|
31
|
+
--pattern 'OTCamera19_FR20_2023-05-24_06-00-00_11-45-00.zip' \
|
|
32
|
+
--pattern 'OTCamera19_FR20_2023-05-24_00-00-00.zip' \
|
|
33
|
+
-R platomo/OpenTrafficCam-testdata -D tests/data
|
|
34
|
+
env:
|
|
35
|
+
GH_TOKEN: ${{ secrets.PLATOMO_OTC_TESTDATA_ACCESS }}
|
|
36
|
+
- name: Unzip test data
|
|
37
|
+
run: |
|
|
38
|
+
cd tests/data
|
|
39
|
+
unzip ./\*.zip
|
|
40
|
+
rm ./*.zip
|
|
41
|
+
cd ..
|
|
42
|
+
- name: Install the project
|
|
43
|
+
shell: bash
|
|
44
|
+
run: uv sync --locked --dev
|
|
45
|
+
- name: Run benchmark tests
|
|
46
|
+
run: uv run pytest ./tests/benchmark --benchmark-json output.json
|
|
47
|
+
- name: Store benchmark result
|
|
48
|
+
uses: benchmark-action/github-action-benchmark@4322e5726e6334590d251fc4f92bec0efafc45dc # v1.22.2
|
|
49
|
+
with:
|
|
50
|
+
name: Python Benchmark with pytest-benchmark
|
|
51
|
+
tool: "pytest"
|
|
52
|
+
output-file-path: output.json
|
|
53
|
+
auto-push: true
|
|
54
|
+
alert-threshold: "200%"
|
|
55
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
56
|
+
comment-on-alert: true
|
|
57
|
+
fail-on-alert: true
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Build Nightly Version
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
# Creates Nightly Release of main
|
|
6
|
+
# Needs: secrets.PLATOMO_BUILDER_ACCESS
|
|
7
|
+
push:
|
|
8
|
+
branches:
|
|
9
|
+
- main
|
|
10
|
+
|
|
11
|
+
permissions: {}
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
test:
|
|
15
|
+
permissions:
|
|
16
|
+
contents: read
|
|
17
|
+
uses: "./.github/workflows/test.yml"
|
|
18
|
+
regression-test:
|
|
19
|
+
permissions:
|
|
20
|
+
contents: read
|
|
21
|
+
uses: "./.github/workflows/regression-test.yml"
|
|
22
|
+
secrets:
|
|
23
|
+
PLATOMO_OTC_TESTDATA_ACCESS: ${{ secrets.PLATOMO_OTC_TESTDATA_ACCESS }}
|
|
24
|
+
create_nightly:
|
|
25
|
+
permissions:
|
|
26
|
+
contents: write
|
|
27
|
+
needs:
|
|
28
|
+
- test
|
|
29
|
+
- regression-test
|
|
30
|
+
uses: "platomo/GitHub-workflows/.github/workflows/reusable-create-release-with-assets.yml@a4deb65bd5188ee1115e902bbe19d949bf69fe62" # main
|
|
31
|
+
secrets:
|
|
32
|
+
PLATOMO_BUILDER_ACCESS: ${{ secrets.PLATOMO_BUILDER_ACCESS }}
|
|
33
|
+
with:
|
|
34
|
+
package-version: nightly
|
|
35
|
+
package-path: OTAnalytics
|
|
36
|
+
draft-release: false
|
|
37
|
+
pre-release: true
|
|
38
|
+
delete-existing: true
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Build Release Version
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
# Create release if tag is pushed to main.
|
|
6
|
+
# Needs: secrets.PLATOMO_BUILDER_ACCESS
|
|
7
|
+
push:
|
|
8
|
+
tags:
|
|
9
|
+
- "v*.*.*"
|
|
10
|
+
|
|
11
|
+
permissions: {}
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
test:
|
|
15
|
+
if: endsWith(github.event.base_ref, 'main')
|
|
16
|
+
permissions:
|
|
17
|
+
contents: read
|
|
18
|
+
uses: "./.github/workflows/test.yml"
|
|
19
|
+
regression-test:
|
|
20
|
+
if: endsWith(github.event.base_ref, 'main')
|
|
21
|
+
permissions:
|
|
22
|
+
contents: read
|
|
23
|
+
uses: "./.github/workflows/regression-test.yml"
|
|
24
|
+
secrets:
|
|
25
|
+
PLATOMO_OTC_TESTDATA_ACCESS: ${{ secrets.PLATOMO_OTC_TESTDATA_ACCESS }}
|
|
26
|
+
create_release:
|
|
27
|
+
permissions:
|
|
28
|
+
contents: write
|
|
29
|
+
needs:
|
|
30
|
+
- test
|
|
31
|
+
- regression-test
|
|
32
|
+
uses: "platomo/GitHub-workflows/.github/workflows/reusable-create-release-with-assets.yml@a4deb65bd5188ee1115e902bbe19d949bf69fe62" # main
|
|
33
|
+
secrets:
|
|
34
|
+
PLATOMO_BUILDER_ACCESS: ${{ secrets.PLATOMO_BUILDER_ACCESS }}
|
|
35
|
+
with:
|
|
36
|
+
package-version: ${{ github.ref_name }}
|
|
37
|
+
package-path: OTAnalytics
|
|
38
|
+
draft-release: false
|
|
39
|
+
pre-release: false
|
|
40
|
+
delete-existing: false
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: super-linter
|
|
3
|
+
|
|
4
|
+
on: pull_request
|
|
5
|
+
|
|
6
|
+
permissions: {}
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
build:
|
|
10
|
+
name: Lint many languages with super-linter
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
permissions:
|
|
14
|
+
# contents permission to clone the repository
|
|
15
|
+
contents: read
|
|
16
|
+
packages: read
|
|
17
|
+
# To report GitHub Actions status checks
|
|
18
|
+
statuses: write
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- name: Checkout code
|
|
22
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
23
|
+
with:
|
|
24
|
+
# super-linter needs the full git history to get the
|
|
25
|
+
# list of files that changed across commits
|
|
26
|
+
fetch-depth: 0
|
|
27
|
+
persist-credentials: false
|
|
28
|
+
|
|
29
|
+
- name: Load super-linter configuration
|
|
30
|
+
# Use grep inverse matching to exclude eventual comments in the .env file
|
|
31
|
+
# because the GitHub Actions command to set environment variables doesn't
|
|
32
|
+
# support comments.
|
|
33
|
+
# Ref: https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions#setting-an-environment-variable
|
|
34
|
+
run: grep -v '^#' .github/super-linter.env >> "$GITHUB_ENV"
|
|
35
|
+
|
|
36
|
+
- name: Super-linter
|
|
37
|
+
uses: super-linter/super-linter/slim@2da136927bd4a73596db63044b504547c62cb854 # v9.0.0
|
|
38
|
+
env:
|
|
39
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Regression Test With Pytest
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
workflow_call:
|
|
8
|
+
secrets:
|
|
9
|
+
PLATOMO_OTC_TESTDATA_ACCESS:
|
|
10
|
+
required: true
|
|
11
|
+
|
|
12
|
+
permissions: {}
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
regression-test:
|
|
16
|
+
name: Run pytest regression test
|
|
17
|
+
permissions:
|
|
18
|
+
contents: read
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
steps:
|
|
21
|
+
- name: Checkout repository
|
|
22
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
23
|
+
with:
|
|
24
|
+
persist-credentials: false
|
|
25
|
+
- name: Set up Python 3.12
|
|
26
|
+
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
27
|
+
with:
|
|
28
|
+
python-version: 3.12
|
|
29
|
+
- name: Set up uv
|
|
30
|
+
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
|
31
|
+
with:
|
|
32
|
+
enable-cache: true
|
|
33
|
+
- name: Download test data
|
|
34
|
+
run: |
|
|
35
|
+
gh release download \
|
|
36
|
+
--pattern 'OTCamera19_FR20_2023-05-24_06-00-00_11-45-00.zip' \
|
|
37
|
+
--pattern 'OTCamera19_FR20_2023-05-24_00-00-00.zip' \
|
|
38
|
+
-R platomo/OpenTrafficCam-testdata -D tests/data
|
|
39
|
+
env:
|
|
40
|
+
GH_TOKEN: ${{ secrets.PLATOMO_OTC_TESTDATA_ACCESS }}
|
|
41
|
+
- name: Unzip test data
|
|
42
|
+
run: |
|
|
43
|
+
cd tests/data
|
|
44
|
+
unzip ./\*.zip
|
|
45
|
+
rm ./*.zip
|
|
46
|
+
cd ..
|
|
47
|
+
- name: Install the project
|
|
48
|
+
run: uv sync --locked --dev
|
|
49
|
+
- name: Run regression tests
|
|
50
|
+
run: uv run pytest ./tests/regression
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Publish to PyPI
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
push:
|
|
6
|
+
tags:
|
|
7
|
+
- "v*.*.*"
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
env:
|
|
13
|
+
out_dir: "dist/"
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
test:
|
|
17
|
+
if: endsWith(github.event.base_ref, 'main')
|
|
18
|
+
uses: "./.github/workflows/test.yml"
|
|
19
|
+
regression-test:
|
|
20
|
+
if: endsWith(github.event.base_ref, 'main')
|
|
21
|
+
uses: "./.github/workflows/regression-test.yml"
|
|
22
|
+
secrets:
|
|
23
|
+
PLATOMO_OTC_TESTDATA_ACCESS: ${{ secrets.PLATOMO_OTC_TESTDATA_ACCESS }}
|
|
24
|
+
publish-to-pypi:
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
needs:
|
|
27
|
+
- test
|
|
28
|
+
- regression-test
|
|
29
|
+
environment:
|
|
30
|
+
name: pypi
|
|
31
|
+
url: https://pypi.org/p/OTAnalytics
|
|
32
|
+
permissions:
|
|
33
|
+
id-token: write # IMPORTANT: mandatory for trusted publishing
|
|
34
|
+
steps:
|
|
35
|
+
- name: Checkout code
|
|
36
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
37
|
+
with:
|
|
38
|
+
persist-credentials: false
|
|
39
|
+
- name: Set up Python
|
|
40
|
+
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
41
|
+
with:
|
|
42
|
+
python-version: "3.12"
|
|
43
|
+
- name: Install uv
|
|
44
|
+
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
|
45
|
+
with:
|
|
46
|
+
enable-cache: false
|
|
47
|
+
- name: Update Python Package Version
|
|
48
|
+
uses: platomo/update-version-py-action@6dc2a0b963fb203675c446234d858e7958bf4876 # v1.0.1
|
|
49
|
+
with:
|
|
50
|
+
version: ${{ github.ref_name }}
|
|
51
|
+
file-path: "OTAnalytics"
|
|
52
|
+
- name: Build a binary wheel and a source tarball
|
|
53
|
+
shell: bash
|
|
54
|
+
run: uv build --out-dir ${{ env.out_dir }}
|
|
55
|
+
|
|
56
|
+
- name: Store the distribution packages
|
|
57
|
+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
58
|
+
with:
|
|
59
|
+
name: python-package-distributions
|
|
60
|
+
path: ${{ env.out_dir }}
|
|
61
|
+
|
|
62
|
+
- name: Publish distribution
|
|
63
|
+
uses: pypa/gh-action-pypi-publish@7245906fb61fa33a13554f9d5fb856fe61758086 # v1.14.3
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Publish to TestPyPI
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
env:
|
|
13
|
+
out_dir: "dist/"
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
test:
|
|
17
|
+
uses: "./.github/workflows/test.yml"
|
|
18
|
+
regression-test:
|
|
19
|
+
uses: "./.github/workflows/regression-test.yml"
|
|
20
|
+
secrets:
|
|
21
|
+
PLATOMO_OTC_TESTDATA_ACCESS: ${{ secrets.PLATOMO_OTC_TESTDATA_ACCESS }}
|
|
22
|
+
publish-to-testpypi:
|
|
23
|
+
runs-on: ubuntu-latest
|
|
24
|
+
needs:
|
|
25
|
+
- test
|
|
26
|
+
- regression-test
|
|
27
|
+
environment:
|
|
28
|
+
name: testpypi
|
|
29
|
+
url: https://test.pypi.org/p/OTAnalytics
|
|
30
|
+
permissions:
|
|
31
|
+
id-token: write # IMPORTANT: mandatory for trusted publishing
|
|
32
|
+
steps:
|
|
33
|
+
- name: Checkout code
|
|
34
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
35
|
+
with:
|
|
36
|
+
persist-credentials: false
|
|
37
|
+
|
|
38
|
+
- name: Fetch all tags
|
|
39
|
+
run: git fetch --tags --unshallow
|
|
40
|
+
|
|
41
|
+
- name: Set up Python
|
|
42
|
+
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
43
|
+
with:
|
|
44
|
+
python-version: "3.12"
|
|
45
|
+
|
|
46
|
+
- name: Install uv
|
|
47
|
+
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
|
48
|
+
with:
|
|
49
|
+
enable-cache: false
|
|
50
|
+
|
|
51
|
+
- name: Get latest tag and create new version
|
|
52
|
+
id: get_version
|
|
53
|
+
run: |
|
|
54
|
+
# Get the latest tag in format v*.*.* (ignoring tags like "nightly")
|
|
55
|
+
LATEST_TAG="$(git tag -l "v*.*.*" | sort -V | tail -n 1 || echo 'v0.0.0')"
|
|
56
|
+
# Extract version without 'v' prefix
|
|
57
|
+
VERSION="${LATEST_TAG#v}"
|
|
58
|
+
# Split version into parts
|
|
59
|
+
IFS='.' read -r MAJOR MINOR PATCH <<< "$VERSION"
|
|
60
|
+
# Increment patch version
|
|
61
|
+
PATCH="$((PATCH + 1))"
|
|
62
|
+
# Create new version with incremented patch
|
|
63
|
+
INCREMENTED_VERSION="$MAJOR.$MINOR.$PATCH"
|
|
64
|
+
DATE_TIME="$(date +'%Y%m%d%H%M%S')"
|
|
65
|
+
NEW_VERSION="${INCREMENTED_VERSION}a${DATE_TIME}"
|
|
66
|
+
echo "Final version: $NEW_VERSION"
|
|
67
|
+
echo "new_version=$NEW_VERSION" >> "$GITHUB_OUTPUT"
|
|
68
|
+
|
|
69
|
+
- name: Update Python Package Version
|
|
70
|
+
uses: platomo/update-version-py-action@6dc2a0b963fb203675c446234d858e7958bf4876 # v1.0.1
|
|
71
|
+
with:
|
|
72
|
+
version: ${{ steps.get_version.outputs.new_version }}
|
|
73
|
+
file-path: "OTAnalytics"
|
|
74
|
+
- name: Build a binary wheel and a source tarball
|
|
75
|
+
shell: bash
|
|
76
|
+
run: uv build --out-dir ${{ env.out_dir }}
|
|
77
|
+
|
|
78
|
+
- name: Store the distribution packages
|
|
79
|
+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
80
|
+
with:
|
|
81
|
+
name: python-package-distributions
|
|
82
|
+
path: ${{ env.out_dir }}
|
|
83
|
+
|
|
84
|
+
- name: Publish distribution
|
|
85
|
+
uses: pypa/gh-action-pypi-publish@7245906fb61fa33a13554f9d5fb856fe61758086 # v1.14.3
|
|
86
|
+
with:
|
|
87
|
+
repository-url: ${{ vars.PYPI_REPO_URL }}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: System Test With Pytest
|
|
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: {}
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
test:
|
|
14
|
+
name: Execute system tests across various operating systems and Python versions.
|
|
15
|
+
permissions:
|
|
16
|
+
contents: read
|
|
17
|
+
strategy:
|
|
18
|
+
matrix:
|
|
19
|
+
os: [ubuntu-latest, windows-latest]
|
|
20
|
+
py: ["3.12"]
|
|
21
|
+
fail-fast: true
|
|
22
|
+
runs-on: ${{ matrix.os }}
|
|
23
|
+
steps:
|
|
24
|
+
- name: Checkout repository
|
|
25
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
26
|
+
with:
|
|
27
|
+
persist-credentials: false
|
|
28
|
+
- name: Set up Python ${{ matrix.py }}
|
|
29
|
+
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
30
|
+
with:
|
|
31
|
+
python-version: ${{ matrix.py }}
|
|
32
|
+
- name: Set up uv
|
|
33
|
+
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
|
34
|
+
with:
|
|
35
|
+
enable-cache: true
|
|
36
|
+
# Separate from the test steps so a stale uv.lock fails loudly and early.
|
|
37
|
+
- name: Install dependencies
|
|
38
|
+
run: uv sync --locked --dev
|
|
39
|
+
- name: Run Python System Tests
|
|
40
|
+
timeout-minutes: 60
|
|
41
|
+
run: uv run pytest --cov=OTAnalytics tests/system
|
|
@@ -0,0 +1,41 @@
|
|
|
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: {}
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
test:
|
|
14
|
+
name: Execute tests across various operating systems and Python versions.
|
|
15
|
+
permissions:
|
|
16
|
+
contents: read
|
|
17
|
+
strategy:
|
|
18
|
+
matrix:
|
|
19
|
+
os: [ubuntu-latest, windows-latest]
|
|
20
|
+
py: ["3.12"]
|
|
21
|
+
fail-fast: true
|
|
22
|
+
runs-on: ${{ matrix.os }}
|
|
23
|
+
steps:
|
|
24
|
+
- name: Checkout repository
|
|
25
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
26
|
+
with:
|
|
27
|
+
persist-credentials: false
|
|
28
|
+
- name: Set up Python ${{ matrix.py }}
|
|
29
|
+
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
30
|
+
with:
|
|
31
|
+
python-version: ${{ matrix.py }}
|
|
32
|
+
- name: Set up uv
|
|
33
|
+
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
|
34
|
+
with:
|
|
35
|
+
enable-cache: true
|
|
36
|
+
# Separate from the test steps so a stale uv.lock fails loudly and early.
|
|
37
|
+
- name: Install dependencies
|
|
38
|
+
run: uv sync --locked --dev
|
|
39
|
+
- name: Run Python Unit Tests
|
|
40
|
+
timeout-minutes: 60
|
|
41
|
+
run: uv run pytest --cov=OTAnalytics tests/unit
|