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.
Files changed (986) hide show
  1. otanalytics-0.7.6/.codespellrc +3 -0
  2. otanalytics-0.7.6/.github/super-linter-fix.env +6 -0
  3. otanalytics-0.7.6/.github/super-linter.env +21 -0
  4. otanalytics-0.7.6/.github/workflows/acceptance-test.yml +53 -0
  5. otanalytics-0.7.6/.github/workflows/benchmark.yml +57 -0
  6. otanalytics-0.7.6/.github/workflows/build-nightly.yml +38 -0
  7. otanalytics-0.7.6/.github/workflows/build-release.yml +40 -0
  8. otanalytics-0.7.6/.github/workflows/linter.yml +39 -0
  9. otanalytics-0.7.6/.github/workflows/regression-test.yml +50 -0
  10. otanalytics-0.7.6/.github/workflows/release-pypi.yml +63 -0
  11. otanalytics-0.7.6/.github/workflows/release-testpypi.yml +87 -0
  12. otanalytics-0.7.6/.github/workflows/system-test.yml +41 -0
  13. otanalytics-0.7.6/.github/workflows/test.yml +41 -0
  14. otanalytics-0.7.6/.gitignore +187 -0
  15. otanalytics-0.7.6/.pre-commit-config.yaml +60 -0
  16. otanalytics-0.7.6/.trivyignore +70 -0
  17. otanalytics-0.7.6/.yamllint.yaml +31 -0
  18. otanalytics-0.7.6/CONTEXT.md +96 -0
  19. otanalytics-0.7.6/OTAnalytics/adapter_ui/abstract_button_quick_save_config.py +11 -0
  20. otanalytics-0.7.6/OTAnalytics/adapter_ui/abstract_canvas.py +65 -0
  21. otanalytics-0.7.6/OTAnalytics/adapter_ui/abstract_frame_project.py +31 -0
  22. otanalytics-0.7.6/OTAnalytics/adapter_ui/abstract_frame_track_plotting.py +7 -0
  23. otanalytics-0.7.6/OTAnalytics/adapter_ui/dummy_viewmodel.py +1977 -0
  24. otanalytics-0.7.6/OTAnalytics/adapter_ui/file_export_dto.py +31 -0
  25. otanalytics-0.7.6/OTAnalytics/adapter_ui/local_file_providers.py +89 -0
  26. otanalytics-0.7.6/OTAnalytics/adapter_ui/message_type.py +9 -0
  27. otanalytics-0.7.6/OTAnalytics/adapter_ui/ui_factory.py +145 -0
  28. otanalytics-0.7.6/OTAnalytics/adapter_ui/view_model.py +523 -0
  29. otanalytics-0.7.6/OTAnalytics/application/analysis/road_user_assignment.py +340 -0
  30. otanalytics-0.7.6/OTAnalytics/application/analysis/traffic_counting.py +1199 -0
  31. otanalytics-0.7.6/OTAnalytics/application/analysis/traffic_counting_specification.py +102 -0
  32. otanalytics-0.7.6/OTAnalytics/application/analysis/traffic_statistics/day_statistics.py +401 -0
  33. otanalytics-0.7.6/OTAnalytics/application/analysis/traffic_statistics/speed_values.py +33 -0
  34. otanalytics-0.7.6/OTAnalytics/application/analysis/traffic_statistics_config.py +85 -0
  35. otanalytics-0.7.6/OTAnalytics/application/application.py +789 -0
  36. otanalytics-0.7.6/OTAnalytics/application/config.py +68 -0
  37. otanalytics-0.7.6/OTAnalytics/application/config_specification.py +76 -0
  38. otanalytics-0.7.6/OTAnalytics/application/datastore.py +326 -0
  39. otanalytics-0.7.6/OTAnalytics/application/eventlist.py +173 -0
  40. otanalytics-0.7.6/OTAnalytics/application/export_formats/event_list.py +29 -0
  41. otanalytics-0.7.6/OTAnalytics/application/export_formats/road_user_assignments.py +67 -0
  42. otanalytics-0.7.6/OTAnalytics/application/export_path_builder.py +90 -0
  43. otanalytics-0.7.6/OTAnalytics/application/files.py +19 -0
  44. otanalytics-0.7.6/OTAnalytics/application/key_prefix.py +34 -0
  45. otanalytics-0.7.6/OTAnalytics/application/orthophoto.py +292 -0
  46. otanalytics-0.7.6/OTAnalytics/application/parser/cli_parser.py +151 -0
  47. otanalytics-0.7.6/OTAnalytics/application/parser/config_parser.py +181 -0
  48. otanalytics-0.7.6/OTAnalytics/application/parser/track_parser.py +60 -0
  49. otanalytics-0.7.6/OTAnalytics/application/plotting.py +374 -0
  50. otanalytics-0.7.6/OTAnalytics/application/progress.py +195 -0
  51. otanalytics-0.7.6/OTAnalytics/application/project_location.py +43 -0
  52. otanalytics-0.7.6/OTAnalytics/application/resources/resource_manager.py +433 -0
  53. otanalytics-0.7.6/OTAnalytics/application/run_configuration.py +300 -0
  54. otanalytics-0.7.6/OTAnalytics/application/startup_config.py +54 -0
  55. otanalytics-0.7.6/OTAnalytics/application/state.py +974 -0
  56. otanalytics-0.7.6/OTAnalytics/application/ui/frame_control.py +150 -0
  57. otanalytics-0.7.6/OTAnalytics/application/upload_otconfig.py +24 -0
  58. otanalytics-0.7.6/OTAnalytics/application/use_cases/ask_for_load_window.py +47 -0
  59. otanalytics-0.7.6/OTAnalytics/application/use_cases/assignment_repository.py +90 -0
  60. otanalytics-0.7.6/OTAnalytics/application/use_cases/clear_repositories.py +58 -0
  61. otanalytics-0.7.6/OTAnalytics/application/use_cases/config.py +101 -0
  62. otanalytics-0.7.6/OTAnalytics/application/use_cases/config_has_changed.py +134 -0
  63. otanalytics-0.7.6/OTAnalytics/application/use_cases/export_events.py +72 -0
  64. otanalytics-0.7.6/OTAnalytics/application/use_cases/flow_repository.py +116 -0
  65. otanalytics-0.7.6/OTAnalytics/application/use_cases/geo_track_export.py +30 -0
  66. otanalytics-0.7.6/OTAnalytics/application/use_cases/get_current_analysis_config.py +36 -0
  67. otanalytics-0.7.6/OTAnalytics/application/use_cases/get_current_remark.py +23 -0
  68. otanalytics-0.7.6/OTAnalytics/application/use_cases/load_otconfig.py +162 -0
  69. otanalytics-0.7.6/OTAnalytics/application/use_cases/load_otflow.py +93 -0
  70. otanalytics-0.7.6/OTAnalytics/application/use_cases/load_track_files.py +252 -0
  71. otanalytics-0.7.6/OTAnalytics/application/use_cases/provide_input_files.py +35 -0
  72. otanalytics-0.7.6/OTAnalytics/application/use_cases/quick_save_configuration.py +37 -0
  73. otanalytics-0.7.6/OTAnalytics/application/use_cases/reset_application.py +41 -0
  74. otanalytics-0.7.6/OTAnalytics/application/use_cases/reset_state.py +60 -0
  75. otanalytics-0.7.6/OTAnalytics/application/use_cases/road_user_assignment_export.py +315 -0
  76. otanalytics-0.7.6/OTAnalytics/application/use_cases/section_repository.py +198 -0
  77. otanalytics-0.7.6/OTAnalytics/application/use_cases/start_new_project.py +29 -0
  78. otanalytics-0.7.6/OTAnalytics/application/use_cases/static_analysis_config.py +458 -0
  79. otanalytics-0.7.6/OTAnalytics/application/use_cases/suggest_save_path.py +166 -0
  80. otanalytics-0.7.6/OTAnalytics/application/use_cases/track_export.py +31 -0
  81. otanalytics-0.7.6/OTAnalytics/application/use_cases/track_statistics_export.py +174 -0
  82. otanalytics-0.7.6/OTAnalytics/application/use_cases/traffic_statistics_export.py +49 -0
  83. otanalytics-0.7.6/OTAnalytics/application/use_cases/update_count_plots.py +33 -0
  84. otanalytics-0.7.6/OTAnalytics/application/use_cases/video_repository.py +145 -0
  85. otanalytics-0.7.6/OTAnalytics/domain/date.py +94 -0
  86. otanalytics-0.7.6/OTAnalytics/domain/event.py +881 -0
  87. otanalytics-0.7.6/OTAnalytics/domain/filter.py +261 -0
  88. otanalytics-0.7.6/OTAnalytics/domain/flow.py +204 -0
  89. otanalytics-0.7.6/OTAnalytics/domain/geometry.py +200 -0
  90. otanalytics-0.7.6/OTAnalytics/domain/georeference.py +118 -0
  91. otanalytics-0.7.6/OTAnalytics/domain/intersect.py +155 -0
  92. otanalytics-0.7.6/OTAnalytics/domain/load_window.py +65 -0
  93. otanalytics-0.7.6/OTAnalytics/domain/orthophoto.py +47 -0
  94. otanalytics-0.7.6/OTAnalytics/domain/progress.py +161 -0
  95. otanalytics-0.7.6/OTAnalytics/domain/remark.py +12 -0
  96. otanalytics-0.7.6/OTAnalytics/domain/section.py +486 -0
  97. otanalytics-0.7.6/OTAnalytics/domain/track.py +358 -0
  98. otanalytics-0.7.6/OTAnalytics/domain/track_dataset/filtered_track_dataset.py +96 -0
  99. otanalytics-0.7.6/OTAnalytics/domain/track_dataset/track_dataset.py +753 -0
  100. otanalytics-0.7.6/OTAnalytics/domain/track_repository.py +318 -0
  101. otanalytics-0.7.6/OTAnalytics/domain/transfer_mode.py +8 -0
  102. otanalytics-0.7.6/OTAnalytics/domain/video.py +342 -0
  103. otanalytics-0.7.6/OTAnalytics/helpers/file_helpers.py +58 -0
  104. otanalytics-0.7.6/OTAnalytics/plugin_cli/cli_application.py +150 -0
  105. otanalytics-0.7.6/OTAnalytics/plugin_datastore/filter_pandas_track_store.py +322 -0
  106. otanalytics-0.7.6/OTAnalytics/plugin_datastore/filter_polars_track_dataset.py +334 -0
  107. otanalytics-0.7.6/OTAnalytics/plugin_datastore/polars_track_id_set.py +85 -0
  108. otanalytics-0.7.6/OTAnalytics/plugin_datastore/polars_track_store.py +1234 -0
  109. otanalytics-0.7.6/OTAnalytics/plugin_datastore/python_track_store.py +1107 -0
  110. otanalytics-0.7.6/OTAnalytics/plugin_datastore/track_geometry_store/polars_geometry_store.py +1656 -0
  111. otanalytics-0.7.6/OTAnalytics/plugin_datastore/track_store.py +940 -0
  112. otanalytics-0.7.6/OTAnalytics/plugin_filter/dataframe_filter.py +330 -0
  113. otanalytics-0.7.6/OTAnalytics/plugin_orthophoto/rasterio_orthophoto.py +145 -0
  114. otanalytics-0.7.6/OTAnalytics/plugin_parser/argparse_cli_parser.py +231 -0
  115. otanalytics-0.7.6/OTAnalytics/plugin_parser/convert_ottrk_to_feathers.py +144 -0
  116. otanalytics-0.7.6/OTAnalytics/plugin_parser/export.py +367 -0
  117. otanalytics-0.7.6/OTAnalytics/plugin_parser/feathers_parser.py +259 -0
  118. otanalytics-0.7.6/OTAnalytics/plugin_parser/geo_only.py +24 -0
  119. otanalytics-0.7.6/OTAnalytics/plugin_parser/georeference_parsing.py +44 -0
  120. otanalytics-0.7.6/OTAnalytics/plugin_parser/json_parser.py +71 -0
  121. otanalytics-0.7.6/OTAnalytics/plugin_parser/otconfig_parser.py +590 -0
  122. otanalytics-0.7.6/OTAnalytics/plugin_parser/ottrk_dataformat.py +80 -0
  123. otanalytics-0.7.6/OTAnalytics/plugin_parser/otvision_parser.py +1095 -0
  124. otanalytics-0.7.6/OTAnalytics/plugin_parser/pandas_parser.py +160 -0
  125. otanalytics-0.7.6/OTAnalytics/plugin_parser/road_user_assignment_csv_reader.py +71 -0
  126. otanalytics-0.7.6/OTAnalytics/plugin_parser/road_user_assignment_export.py +82 -0
  127. otanalytics-0.7.6/OTAnalytics/plugin_parser/streaming_parser.py +119 -0
  128. otanalytics-0.7.6/OTAnalytics/plugin_parser/track_export.py +82 -0
  129. otanalytics-0.7.6/OTAnalytics/plugin_parser/track_statistics_export.py +143 -0
  130. otanalytics-0.7.6/OTAnalytics/plugin_parser/traffic_statistics_csv.py +188 -0
  131. otanalytics-0.7.6/OTAnalytics/plugin_parser/traffic_statistics_export.py +254 -0
  132. otanalytics-0.7.6/OTAnalytics/plugin_parser/traffic_statistics_json.py +182 -0
  133. otanalytics-0.7.6/OTAnalytics/plugin_prototypes/eventlist_exporter/eventlist_exporter.py +462 -0
  134. otanalytics-0.7.6/OTAnalytics/plugin_prototypes/track_visualization/track_viz.py +961 -0
  135. otanalytics-0.7.6/OTAnalytics/plugin_s3/cleanup.py +58 -0
  136. otanalytics-0.7.6/OTAnalytics/plugin_s3/config/env_vars.py +76 -0
  137. otanalytics-0.7.6/OTAnalytics/plugin_s3/config/parsing.py +126 -0
  138. otanalytics-0.7.6/OTAnalytics/plugin_s3/config/s3.py +33 -0
  139. otanalytics-0.7.6/OTAnalytics/plugin_s3/download.py +37 -0
  140. otanalytics-0.7.6/OTAnalytics/plugin_s3/download_objects.py +106 -0
  141. otanalytics-0.7.6/OTAnalytics/plugin_s3/filename_timestamp.py +44 -0
  142. otanalytics-0.7.6/OTAnalytics/plugin_s3/list_objects.py +45 -0
  143. otanalytics-0.7.6/OTAnalytics/plugin_s3/orthophoto.py +72 -0
  144. otanalytics-0.7.6/OTAnalytics/plugin_s3/otconfig_upload.py +15 -0
  145. otanalytics-0.7.6/OTAnalytics/plugin_s3/project_location.py +37 -0
  146. otanalytics-0.7.6/OTAnalytics/plugin_s3/s3_file_providers.py +306 -0
  147. otanalytics-0.7.6/OTAnalytics/plugin_s3/select_objects.py +45 -0
  148. otanalytics-0.7.6/OTAnalytics/plugin_s3/store.py +47 -0
  149. otanalytics-0.7.6/OTAnalytics/plugin_s3/upload.py +46 -0
  150. otanalytics-0.7.6/OTAnalytics/plugin_track_export/csv/track_dataset_writer.py +42 -0
  151. otanalytics-0.7.6/OTAnalytics/plugin_track_export/csv/writers/domain.py +30 -0
  152. otanalytics-0.7.6/OTAnalytics/plugin_track_export/csv/writers/pandas.py +44 -0
  153. otanalytics-0.7.6/OTAnalytics/plugin_track_export/csv/writers/polars.py +43 -0
  154. otanalytics-0.7.6/OTAnalytics/plugin_track_export/geo/geo_track_writer.py +156 -0
  155. otanalytics-0.7.6/OTAnalytics/plugin_ui/application_starter.py +139 -0
  156. otanalytics-0.7.6/OTAnalytics/plugin_ui/base_application.py +1281 -0
  157. otanalytics-0.7.6/OTAnalytics/plugin_ui/cli.py +698 -0
  158. otanalytics-0.7.6/OTAnalytics/plugin_ui/ctk_application.py +58 -0
  159. otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/ctk_ui_factory.py +190 -0
  160. otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/frame_filter.py +867 -0
  161. otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/frame_project.py +478 -0
  162. otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/frame_track_plotting.py +141 -0
  163. otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/helpers.py +171 -0
  164. otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/line_section.py +704 -0
  165. otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/style.py +110 -0
  166. otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_export_counts.py +244 -0
  167. otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_export_file.py +159 -0
  168. otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_progress.py +179 -0
  169. otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_template.py +81 -0
  170. otanalytics-0.7.6/OTAnalytics/plugin_ui/gui_application.py +272 -0
  171. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_application.py +622 -0
  172. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/dialogs/confirmation_dialog.py +26 -0
  173. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/dialogs/edit_section_dialog.py +90 -0
  174. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/dialogs/export_counts_dialog.py +271 -0
  175. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/dialogs/file_chooser_dialog.py +279 -0
  176. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/dialogs/file_picker.py +263 -0
  177. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/dialogs/load_window_dialog.py +128 -0
  178. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/button_form.py +36 -0
  179. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/dialog.py +76 -0
  180. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/forms.py +957 -0
  181. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/table.py +205 -0
  182. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/progressbar.py +215 -0
  183. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/arrow.py +54 -0
  184. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/line_resources.py +18 -0
  185. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/polygon.py +23 -0
  186. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/section_resources.py +26 -0
  187. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/text.py +22 -0
  188. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/nicegui/theme/global_theme.py +39 -0
  189. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/add_track_form/visualization_offset_slider_form.py +86 -0
  190. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/canvas_and_files_form/canvas_form.py +735 -0
  191. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/canvas_and_files_form/section_geometry.py +184 -0
  192. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/configuration_bar/container.py +62 -0
  193. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/configuration_bar/project_form.py +191 -0
  194. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/configuration_bar/static_analysis_config_form.py +320 -0
  195. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/remarks_form/container.py +38 -0
  196. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form/container.py +46 -0
  197. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form/flow_form.py +225 -0
  198. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form/sections_form.py +195 -0
  199. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/svz_metadata_form/svz_metadata_form.py +282 -0
  200. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/track_statistics_form/container.py +105 -0
  201. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_filters_form/container.py +580 -0
  202. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_layers_form/layers_form.py +90 -0
  203. otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/ui_factory.py +375 -0
  204. otanalytics-0.7.6/OTAnalytics/plugin_ui/visualization/counts/counts_plotter.py +526 -0
  205. otanalytics-0.7.6/OTAnalytics/plugin_ui/visualization/visualization.py +1051 -0
  206. otanalytics-0.7.6/OTAnalytics/plugin_video_processing/video_reader.py +285 -0
  207. otanalytics-0.7.6/OTAnalytics/version.py +1 -0
  208. otanalytics-0.7.6/PKG-INFO +290 -0
  209. otanalytics-0.7.6/README.md +246 -0
  210. otanalytics-0.7.6/docs/dependency_management.md +45 -0
  211. otanalytics-0.7.6/docs/dev.md +69 -0
  212. otanalytics-0.7.6/install_dev.cmd +7 -0
  213. otanalytics-0.7.6/install_dev.sh +12 -0
  214. otanalytics-0.7.6/justfile +43 -0
  215. otanalytics-0.7.6/pyproject.toml +129 -0
  216. otanalytics-0.7.6/tests/acceptance/conftest.py +150 -0
  217. otanalytics-0.7.6/tests/acceptance/test_create_important_test_data.py +312 -0
  218. otanalytics-0.7.6/tests/acceptance/test_export_track_statistics.py +62 -0
  219. otanalytics-0.7.6/tests/acceptance/test_filters_navigation_buttons.py +454 -0
  220. otanalytics-0.7.6/tests/acceptance/test_load_from_s3.py +234 -0
  221. otanalytics-0.7.6/tests/acceptance/test_project_information.py +220 -0
  222. otanalytics-0.7.6/tests/acceptance/test_sections_and_flows.py +408 -0
  223. otanalytics-0.7.6/tests/acceptance/test_start_new_project.py +132 -0
  224. otanalytics-0.7.6/tests/benchmark/test_benchmark_otanalytics.py +581 -0
  225. otanalytics-0.7.6/tests/conftest.py +480 -0
  226. otanalytics-0.7.6/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otconfig +183 -0
  227. otanalytics-0.7.6/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otflow +150 -0
  228. otanalytics-0.7.6/tests/data/sections_created_test_file.otconfig +87 -0
  229. otanalytics-0.7.6/tests/data/track_statistics_reference.csv +2 -0
  230. otanalytics-0.7.6/tests/integration/OTAnalytics/plugin_s3/test_load_from_rustfs.py +251 -0
  231. otanalytics-0.7.6/tests/integration/OTAnalytics/plugin_ui/test_start_new_project.py +188 -0
  232. otanalytics-0.7.6/tests/regression/test_regression_otanalytics.py +287 -0
  233. otanalytics-0.7.6/tests/system/OTAnalytics/plugin_ui/test_cli.py +362 -0
  234. otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_ui/test_dummy_viewmodel_confirmation.py +174 -0
  235. otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_ui/test_dummy_viewmodel_enabled_buttons.py +162 -0
  236. otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_ui/test_dummy_viewmodel_loading.py +156 -0
  237. otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_ui/test_dummy_viewmodel_otconfig.py +290 -0
  238. otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_ui/test_dummy_viewmodel_save_otconfig.py +101 -0
  239. otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_ui/test_dummy_viewmodel_start_new_project.py +64 -0
  240. otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_ui/test_helpers.py +108 -0
  241. otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_ui/test_local_file_providers.py +146 -0
  242. otanalytics-0.7.6/tests/unit/OTAnalytics/adapter_ui/test_ui_factory_defaults.py +59 -0
  243. otanalytics-0.7.6/tests/unit/OTAnalytics/application/analysis/test_road_user_assignment.py +88 -0
  244. otanalytics-0.7.6/tests/unit/OTAnalytics/application/analysis/test_traffic_counting.py +1434 -0
  245. otanalytics-0.7.6/tests/unit/OTAnalytics/application/analysis/test_traffic_statistics_config.py +78 -0
  246. otanalytics-0.7.6/tests/unit/OTAnalytics/application/analysis/traffic_statistics/test_day_statistics.py +547 -0
  247. otanalytics-0.7.6/tests/unit/OTAnalytics/application/analysis/traffic_statistics/test_speed_values.py +24 -0
  248. otanalytics-0.7.6/tests/unit/OTAnalytics/application/parser/test_track_parser.py +156 -0
  249. otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_current_key_prefix.py +58 -0
  250. otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_datastore.py +262 -0
  251. otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_eventlist.py +394 -0
  252. otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_export_path_builder.py +83 -0
  253. otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_key_prefix.py +54 -0
  254. otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_orthophoto.py +329 -0
  255. otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_plotting.py +228 -0
  256. otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_progress.py +191 -0
  257. otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_project_location.py +57 -0
  258. otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_run_configuration.py +652 -0
  259. otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_startup_config.py +68 -0
  260. otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_state.py +691 -0
  261. otanalytics-0.7.6/tests/unit/OTAnalytics/application/test_upload_otconfig.py +30 -0
  262. otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_clear_assignments_on_changed_flows.py +35 -0
  263. otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_clear_repositories.py +47 -0
  264. otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_config.py +164 -0
  265. otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_config_has_changed.py +222 -0
  266. otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_filter_visualization.py +83 -0
  267. otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_flow_repository.py +176 -0
  268. otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_get_current_remark.py +13 -0
  269. otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_load_otconfig.py +448 -0
  270. otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_load_otflow.py +150 -0
  271. otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_load_track_files.py +882 -0
  272. otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_quick_save_configuration.py +78 -0
  273. otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_reset_application.py +43 -0
  274. otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_reset_state.py +120 -0
  275. otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_road_user_assignment_export.py +259 -0
  276. otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_start_new_project.py +21 -0
  277. otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_suggest_save_path.py +166 -0
  278. otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases/test_video_repository.py +183 -0
  279. otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_date.py +96 -0
  280. otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_event.py +814 -0
  281. otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_filter.py +119 -0
  282. otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_flow.py +142 -0
  283. otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_geometry.py +118 -0
  284. otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_georeference.py +100 -0
  285. otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_load_window.py +82 -0
  286. otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_remark.py +11 -0
  287. otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_section.py +521 -0
  288. otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_track.py +35 -0
  289. otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_track_repository.py +281 -0
  290. otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_transfer_mode.py +26 -0
  291. otanalytics-0.7.6/tests/unit/OTAnalytics/domain/test_video.py +154 -0
  292. otanalytics-0.7.6/tests/unit/OTAnalytics/domain/track_dataset/test_filtered_track_dataset.py +464 -0
  293. otanalytics-0.7.6/tests/unit/OTAnalytics/helpers/test_file_helpers.py +65 -0
  294. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_cli/test_cli_application.py +16 -0
  295. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_datastore/__init__.py +0 -0
  296. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_datastore/test_filter_polars_track_store.py +167 -0
  297. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_datastore/test_polars_track_store.py +1535 -0
  298. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_datastore/test_python_track_store.py +923 -0
  299. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_datastore/test_track_store.py +918 -0
  300. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_datastore/track_geometry_store/__init__.py +0 -0
  301. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_datastore/track_geometry_store/test_polars_geometry_store.py +1604 -0
  302. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_filter/__init__.py +0 -0
  303. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_filter/test_dataframe_filter.py +519 -0
  304. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_intersect/__init__.py +0 -0
  305. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_intersect/shapely/__init__.py +0 -0
  306. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_intersect/simple/__init__.py +0 -0
  307. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_intersect_parallelization/__init__.py +0 -0
  308. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_number_of_tracks_to_be_validated/__init__.py +0 -0
  309. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_number_of_tracks_to_be_validated/svz/__init__.py +0 -0
  310. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_orthophoto/__init__.py +0 -0
  311. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_orthophoto/test_rasterio_orthophoto.py +162 -0
  312. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/__init__.py +0 -0
  313. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/conftest.py +32 -0
  314. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_argparse_cli_parser.py +104 -0
  315. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_convert_ottrk_to_feathers.py +115 -0
  316. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_export.py +426 -0
  317. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_feathers_parser.py +873 -0
  318. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_georeference_parsing.py +63 -0
  319. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_json_parser.py +71 -0
  320. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_otconfig_key_prefix.py +185 -0
  321. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_otconfig_parser.py +791 -0
  322. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_otconfig_substitution.py +186 -0
  323. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_otvision_parser.py +877 -0
  324. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_pandas_parser.py +208 -0
  325. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_road_user_assignment_csv_reader.py +99 -0
  326. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_road_user_assignment_export.py +233 -0
  327. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_track_export.py +176 -0
  328. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_traffic_statistics_csv.py +163 -0
  329. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_traffic_statistics_export.py +503 -0
  330. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_parser/test_traffic_statistics_json.py +291 -0
  331. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_progress/__init__.py +0 -0
  332. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_prototypes/__init__.py +0 -0
  333. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_prototypes/test_eventlist_exporter.py +89 -0
  334. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_prototypes/track_visualization/__init__.py +0 -0
  335. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/__init__.py +0 -0
  336. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/config/__init__.py +0 -0
  337. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/config/test_env_vars.py +49 -0
  338. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/config/test_parsing.py +186 -0
  339. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_cleanup.py +121 -0
  340. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_download.py +58 -0
  341. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_download_objects.py +218 -0
  342. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_filename_timestamp.py +55 -0
  343. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_list_objects.py +126 -0
  344. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_orthophoto.py +83 -0
  345. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_otconfig_upload.py +36 -0
  346. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_project_location.py +72 -0
  347. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_read_video_name.py +196 -0
  348. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_s3_file_providers.py +336 -0
  349. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_select_objects.py +96 -0
  350. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_s3/test_upload.py +61 -0
  351. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_track_export/__init__.py +0 -0
  352. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_track_export/csv/__init__.py +0 -0
  353. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_track_export/csv/conftest.py +8 -0
  354. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_track_export/csv/test_domain.py +116 -0
  355. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_track_export/csv/test_pandas.py +113 -0
  356. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_track_export/csv/test_polars.py +108 -0
  357. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_track_export/csv/test_track_dataset_writer.py +91 -0
  358. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_track_export/geo/__init__.py +0 -0
  359. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_track_export/geo/test_geo_track_writer.py +271 -0
  360. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/__init__.py +0 -0
  361. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/dialogs/test_confirmation_dialog.py +42 -0
  362. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/dialogs/test_file_chooser_dialog.py +261 -0
  363. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/dialogs/test_load_window_dialog.py +200 -0
  364. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/__init__.py +0 -0
  365. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/test_table.py +82 -0
  366. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/test_arrow.py +43 -0
  367. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/test_polygon.py +22 -0
  368. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/test_text.py +23 -0
  369. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/nicegui/test_progressbar.py +276 -0
  370. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/canvas_and_files_form/test_canvas_form.py +1814 -0
  371. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/canvas_and_files_form/test_section_geometry.py +190 -0
  372. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/configuration_bar/__init__.py +0 -0
  373. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/configuration_bar/test_project_form.py +37 -0
  374. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/remarks_form/__init__.py +0 -0
  375. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/remarks_form/test_container.py +84 -0
  376. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form/__init__.py +0 -0
  377. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form/test_flow_form.py +106 -0
  378. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form/test_sections_form.py +105 -0
  379. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/track_statistics_form/__init__.py +0 -0
  380. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/track_statistics_form/test_container.py +50 -0
  381. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_filters_form/__init__.py +0 -0
  382. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_filters_form/test_container.py +511 -0
  383. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_layers_form/__init__.py +0 -0
  384. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_layers_form/test_layers_form.py +60 -0
  385. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/test_ui_factory.py +255 -0
  386. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_cli.py +1654 -0
  387. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_edit_section_dialog.py +248 -0
  388. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_export_counts_dialog.py +310 -0
  389. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_file_chooser_dialog.py +355 -0
  390. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_flow_form.py +310 -0
  391. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_nicegui_application.py +144 -0
  392. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_nicegui_preload.py +64 -0
  393. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_sections_form.py +289 -0
  394. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_svz_metadata_form.py +315 -0
  395. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/test_visualization_offset_slider_form.py +53 -0
  396. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/visualization/__init__.py +0 -0
  397. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/visualization/counts/__init__.py +0 -0
  398. otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_ui/visualization/counts/test_counts_plotter.py +629 -0
  399. otanalytics-0.7.6/tests/unit/__init__.py +0 -0
  400. otanalytics-0.7.6/tests/utils/__init__.py +0 -0
  401. otanalytics-0.7.6/tests/utils/app_environment.py +67 -0
  402. otanalytics-0.7.6/tests/utils/builders/__init__.py +0 -0
  403. otanalytics-0.7.6/tests/utils/builders/event_builder.py +141 -0
  404. otanalytics-0.7.6/tests/utils/builders/otanalytics_builders.py +148 -0
  405. otanalytics-0.7.6/tests/utils/builders/road_user_assignment.py +125 -0
  406. otanalytics-0.7.6/tests/utils/builders/run_configuration.py +64 -0
  407. otanalytics-0.7.6/tests/utils/builders/s3_config_builder.py +34 -0
  408. otanalytics-0.7.6/tests/utils/builders/s3_store_builder.py +21 -0
  409. otanalytics-0.7.6/tests/utils/builders/track_builder.py +381 -0
  410. otanalytics-0.7.6/tests/utils/nicegui_table.py +43 -0
  411. otanalytics-0.7.6/tests/utils/playwright_helpers.py +1429 -0
  412. otanalytics-0.7.6/tests/utils/progress.py +24 -0
  413. otanalytics-0.7.6/tests/utils/rustfs_container.py +62 -0
  414. otanalytics-0.7.6/uv.lock +2664 -0
  415. otanalytics-0.7.4/.flake8 +0 -7
  416. otanalytics-0.7.4/.github/workflows/acceptance-test.yml +0 -41
  417. otanalytics-0.7.4/.github/workflows/benchmark.yml +0 -55
  418. otanalytics-0.7.4/.github/workflows/build-nightly.yml +0 -33
  419. otanalytics-0.7.4/.github/workflows/build-release.yml +0 -35
  420. otanalytics-0.7.4/.github/workflows/linter.yml +0 -46
  421. otanalytics-0.7.4/.github/workflows/regression-test.yml +0 -42
  422. otanalytics-0.7.4/.github/workflows/release-pypi.yml +0 -59
  423. otanalytics-0.7.4/.github/workflows/release-testpypi.yml +0 -83
  424. otanalytics-0.7.4/.github/workflows/test.yml +0 -34
  425. otanalytics-0.7.4/.gitignore +0 -177
  426. otanalytics-0.7.4/.pre-commit-config.yaml +0 -101
  427. otanalytics-0.7.4/.yamllint.yaml +0 -34
  428. otanalytics-0.7.4/OTAnalytics/adapter_ui/abstract_button_quick_save_config.py +0 -12
  429. otanalytics-0.7.4/OTAnalytics/adapter_ui/abstract_canvas.py +0 -66
  430. otanalytics-0.7.4/OTAnalytics/adapter_ui/abstract_frame_project.py +0 -27
  431. otanalytics-0.7.4/OTAnalytics/adapter_ui/abstract_frame_track_plotting.py +0 -11
  432. otanalytics-0.7.4/OTAnalytics/adapter_ui/dummy_viewmodel.py +0 -1824
  433. otanalytics-0.7.4/OTAnalytics/adapter_ui/file_export_dto.py +0 -8
  434. otanalytics-0.7.4/OTAnalytics/adapter_ui/ui_factory.py +0 -106
  435. otanalytics-0.7.4/OTAnalytics/adapter_ui/view_model.py +0 -525
  436. otanalytics-0.7.4/OTAnalytics/application/analysis/road_user_assignment.py +0 -301
  437. otanalytics-0.7.4/OTAnalytics/application/analysis/traffic_counting.py +0 -1196
  438. otanalytics-0.7.4/OTAnalytics/application/analysis/traffic_counting_specification.py +0 -95
  439. otanalytics-0.7.4/OTAnalytics/application/application.py +0 -705
  440. otanalytics-0.7.4/OTAnalytics/application/config.py +0 -58
  441. otanalytics-0.7.4/OTAnalytics/application/config_specification.py +0 -63
  442. otanalytics-0.7.4/OTAnalytics/application/datastore.py +0 -386
  443. otanalytics-0.7.4/OTAnalytics/application/eventlist.py +0 -161
  444. otanalytics-0.7.4/OTAnalytics/application/export_formats/event_list.py +0 -27
  445. otanalytics-0.7.4/OTAnalytics/application/export_formats/road_user_assignments.py +0 -60
  446. otanalytics-0.7.4/OTAnalytics/application/parser/cli_parser.py +0 -135
  447. otanalytics-0.7.4/OTAnalytics/application/parser/config_parser.py +0 -132
  448. otanalytics-0.7.4/OTAnalytics/application/plotting.py +0 -352
  449. otanalytics-0.7.4/OTAnalytics/application/progress.py +0 -95
  450. otanalytics-0.7.4/OTAnalytics/application/resources/resource_manager.py +0 -334
  451. otanalytics-0.7.4/OTAnalytics/application/run_configuration.py +0 -255
  452. otanalytics-0.7.4/OTAnalytics/application/state.py +0 -784
  453. otanalytics-0.7.4/OTAnalytics/application/ui/frame_control.py +0 -152
  454. otanalytics-0.7.4/OTAnalytics/application/use_cases/assignment_repository.py +0 -103
  455. otanalytics-0.7.4/OTAnalytics/application/use_cases/clear_repositories.py +0 -53
  456. otanalytics-0.7.4/OTAnalytics/application/use_cases/config.py +0 -64
  457. otanalytics-0.7.4/OTAnalytics/application/use_cases/config_has_changed.py +0 -121
  458. otanalytics-0.7.4/OTAnalytics/application/use_cases/export_events.py +0 -50
  459. otanalytics-0.7.4/OTAnalytics/application/use_cases/flow_repository.py +0 -101
  460. otanalytics-0.7.4/OTAnalytics/application/use_cases/get_current_remark.py +0 -9
  461. otanalytics-0.7.4/OTAnalytics/application/use_cases/load_otconfig.py +0 -76
  462. otanalytics-0.7.4/OTAnalytics/application/use_cases/load_otflow.py +0 -94
  463. otanalytics-0.7.4/OTAnalytics/application/use_cases/load_track_files.py +0 -76
  464. otanalytics-0.7.4/OTAnalytics/application/use_cases/quick_save_configuration.py +0 -37
  465. otanalytics-0.7.4/OTAnalytics/application/use_cases/reset_application.py +0 -14
  466. otanalytics-0.7.4/OTAnalytics/application/use_cases/reset_state.py +0 -42
  467. otanalytics-0.7.4/OTAnalytics/application/use_cases/road_user_assignment_export.py +0 -267
  468. otanalytics-0.7.4/OTAnalytics/application/use_cases/section_repository.py +0 -198
  469. otanalytics-0.7.4/OTAnalytics/application/use_cases/start_new_project.py +0 -39
  470. otanalytics-0.7.4/OTAnalytics/application/use_cases/suggest_save_path.py +0 -113
  471. otanalytics-0.7.4/OTAnalytics/application/use_cases/track_export.py +0 -57
  472. otanalytics-0.7.4/OTAnalytics/application/use_cases/track_statistics_export.py +0 -140
  473. otanalytics-0.7.4/OTAnalytics/application/use_cases/update_count_plots.py +0 -35
  474. otanalytics-0.7.4/OTAnalytics/application/use_cases/video_repository.py +0 -137
  475. otanalytics-0.7.4/OTAnalytics/domain/date.py +0 -85
  476. otanalytics-0.7.4/OTAnalytics/domain/event.py +0 -855
  477. otanalytics-0.7.4/OTAnalytics/domain/filter.py +0 -256
  478. otanalytics-0.7.4/OTAnalytics/domain/flow.py +0 -236
  479. otanalytics-0.7.4/OTAnalytics/domain/geometry.py +0 -211
  480. otanalytics-0.7.4/OTAnalytics/domain/intersect.py +0 -155
  481. otanalytics-0.7.4/OTAnalytics/domain/progress.py +0 -84
  482. otanalytics-0.7.4/OTAnalytics/domain/remark.py +0 -9
  483. otanalytics-0.7.4/OTAnalytics/domain/section.py +0 -483
  484. otanalytics-0.7.4/OTAnalytics/domain/track.py +0 -346
  485. otanalytics-0.7.4/OTAnalytics/domain/track_dataset/filtered_track_dataset.py +0 -93
  486. otanalytics-0.7.4/OTAnalytics/domain/track_dataset/track_dataset.py +0 -721
  487. otanalytics-0.7.4/OTAnalytics/domain/track_repository.py +0 -315
  488. otanalytics-0.7.4/OTAnalytics/domain/video.py +0 -339
  489. otanalytics-0.7.4/OTAnalytics/helpers/file_helpers.py +0 -31
  490. otanalytics-0.7.4/OTAnalytics/plugin_cli/cli_application.py +0 -114
  491. otanalytics-0.7.4/OTAnalytics/plugin_datastore/filter_pandas_track_store.py +0 -324
  492. otanalytics-0.7.4/OTAnalytics/plugin_datastore/filter_polars_track_dataset.py +0 -325
  493. otanalytics-0.7.4/OTAnalytics/plugin_datastore/polars_track_id_set.py +0 -86
  494. otanalytics-0.7.4/OTAnalytics/plugin_datastore/polars_track_store.py +0 -1022
  495. otanalytics-0.7.4/OTAnalytics/plugin_datastore/python_track_store.py +0 -1088
  496. otanalytics-0.7.4/OTAnalytics/plugin_datastore/track_geometry_store/polars_geometry_store.py +0 -1411
  497. otanalytics-0.7.4/OTAnalytics/plugin_datastore/track_store.py +0 -903
  498. otanalytics-0.7.4/OTAnalytics/plugin_filter/dataframe_filter.py +0 -324
  499. otanalytics-0.7.4/OTAnalytics/plugin_parser/argparse_cli_parser.py +0 -201
  500. otanalytics-0.7.4/OTAnalytics/plugin_parser/convert_ottrk_to_feathers.py +0 -117
  501. otanalytics-0.7.4/OTAnalytics/plugin_parser/export.py +0 -319
  502. otanalytics-0.7.4/OTAnalytics/plugin_parser/feathers_parser.py +0 -237
  503. otanalytics-0.7.4/OTAnalytics/plugin_parser/json_parser.py +0 -70
  504. otanalytics-0.7.4/OTAnalytics/plugin_parser/otconfig_parser.py +0 -361
  505. otanalytics-0.7.4/OTAnalytics/plugin_parser/ottrk_dataformat.py +0 -63
  506. otanalytics-0.7.4/OTAnalytics/plugin_parser/otvision_parser.py +0 -1085
  507. otanalytics-0.7.4/OTAnalytics/plugin_parser/pandas_parser.py +0 -152
  508. otanalytics-0.7.4/OTAnalytics/plugin_parser/road_user_assignment_export.py +0 -78
  509. otanalytics-0.7.4/OTAnalytics/plugin_parser/streaming_parser.py +0 -122
  510. otanalytics-0.7.4/OTAnalytics/plugin_parser/track_export.py +0 -102
  511. otanalytics-0.7.4/OTAnalytics/plugin_parser/track_statistics_export.py +0 -137
  512. otanalytics-0.7.4/OTAnalytics/plugin_prototypes/eventlist_exporter/eventlist_exporter.py +0 -441
  513. otanalytics-0.7.4/OTAnalytics/plugin_prototypes/track_visualization/track_viz.py +0 -947
  514. otanalytics-0.7.4/OTAnalytics/plugin_ui/application_starter.py +0 -101
  515. otanalytics-0.7.4/OTAnalytics/plugin_ui/base_application.py +0 -1144
  516. otanalytics-0.7.4/OTAnalytics/plugin_ui/cli.py +0 -571
  517. otanalytics-0.7.4/OTAnalytics/plugin_ui/ctk_application.py +0 -59
  518. otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/ctk_ui_factory.py +0 -186
  519. otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/frame_filter.py +0 -865
  520. otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/frame_project.py +0 -476
  521. otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/frame_track_plotting.py +0 -153
  522. otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/helpers.py +0 -161
  523. otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/line_section.py +0 -704
  524. otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/style.py +0 -110
  525. otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_export_counts.py +0 -178
  526. otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_export_file.py +0 -117
  527. otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_progress.py +0 -181
  528. otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_template.py +0 -81
  529. otanalytics-0.7.4/OTAnalytics/plugin_ui/gui_application.py +0 -216
  530. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_application.py +0 -240
  531. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/dialogs/edit_section_dialog.py +0 -71
  532. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/dialogs/export_counts_dialog.py +0 -216
  533. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/dialogs/file_chooser_dialog.py +0 -155
  534. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/dialogs/file_picker.py +0 -264
  535. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/button_form.py +0 -37
  536. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/dialog.py +0 -61
  537. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/forms.py +0 -844
  538. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements/table.py +0 -172
  539. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/line_resources.py +0 -17
  540. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/section_resources.py +0 -17
  541. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui/theme/global_theme.py +0 -24
  542. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/add_track_form/visualization_offset_slider_form.py +0 -84
  543. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/canvas_and_files_form/canvas_form.py +0 -382
  544. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/configuration_bar/container.py +0 -56
  545. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/configuration_bar/project_form.py +0 -155
  546. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/remarks_form/container.py +0 -39
  547. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form/container.py +0 -43
  548. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form/flow_form.py +0 -175
  549. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form/sections_form.py +0 -183
  550. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/svz_metadata_form/svz_metadata_form.py +0 -248
  551. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/track_statistics_form/container.py +0 -92
  552. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_filters_form/container.py +0 -404
  553. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_layers_form/layers_form.py +0 -75
  554. otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/ui_factory.py +0 -269
  555. otanalytics-0.7.4/OTAnalytics/plugin_ui/visualization/counts/counts_plotter.py +0 -524
  556. otanalytics-0.7.4/OTAnalytics/plugin_ui/visualization/visualization.py +0 -1044
  557. otanalytics-0.7.4/OTAnalytics/plugin_video_processing/video_reader.py +0 -286
  558. otanalytics-0.7.4/OTAnalytics/version.py +0 -1
  559. otanalytics-0.7.4/PKG-INFO +0 -196
  560. otanalytics-0.7.4/README.md +0 -154
  561. otanalytics-0.7.4/install_dev.cmd +0 -7
  562. otanalytics-0.7.4/install_dev.sh +0 -12
  563. otanalytics-0.7.4/pyproject.toml +0 -106
  564. otanalytics-0.7.4/tests/acceptance/conftest.py +0 -138
  565. otanalytics-0.7.4/tests/acceptance/test_create_important_test_data.py +0 -313
  566. otanalytics-0.7.4/tests/acceptance/test_export_track_statistics.py +0 -61
  567. otanalytics-0.7.4/tests/acceptance/test_filters_navigation_buttons.py +0 -454
  568. otanalytics-0.7.4/tests/acceptance/test_project_information.py +0 -219
  569. otanalytics-0.7.4/tests/acceptance/test_sections_and_flows.py +0 -219
  570. otanalytics-0.7.4/tests/benchmark/test_benchmark_otanalytics.py +0 -580
  571. otanalytics-0.7.4/tests/conftest.py +0 -480
  572. otanalytics-0.7.4/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otconfig +0 -183
  573. otanalytics-0.7.4/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otflow +0 -150
  574. otanalytics-0.7.4/tests/data/sections_created_test_file.otconfig +0 -87
  575. otanalytics-0.7.4/tests/regression/test_regression_otanalytics.py +0 -288
  576. otanalytics-0.7.4/tests/unit/OTAnalytics/adapter_ui/test_helpers.py +0 -81
  577. otanalytics-0.7.4/tests/unit/OTAnalytics/application/analysis/test_road_user_assignment.py +0 -57
  578. otanalytics-0.7.4/tests/unit/OTAnalytics/application/analysis/test_traffic_counting.py +0 -1426
  579. otanalytics-0.7.4/tests/unit/OTAnalytics/application/test_datastore.py +0 -267
  580. otanalytics-0.7.4/tests/unit/OTAnalytics/application/test_eventlist.py +0 -299
  581. otanalytics-0.7.4/tests/unit/OTAnalytics/application/test_plotting.py +0 -175
  582. otanalytics-0.7.4/tests/unit/OTAnalytics/application/test_progress.py +0 -53
  583. otanalytics-0.7.4/tests/unit/OTAnalytics/application/test_run_configuration.py +0 -507
  584. otanalytics-0.7.4/tests/unit/OTAnalytics/application/test_state.py +0 -622
  585. otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_clear_repositories.py +0 -43
  586. otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_config.py +0 -54
  587. otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_config_has_changed.py +0 -212
  588. otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_filter_visualization.py +0 -84
  589. otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_flow_repository.py +0 -124
  590. otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_load_otconfig.py +0 -164
  591. otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_load_otflow.py +0 -150
  592. otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_load_track_files.py +0 -244
  593. otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_quick_save_configuration.py +0 -78
  594. otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_reset_application.py +0 -25
  595. otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_reset_state.py +0 -80
  596. otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_road_user_assignment_export.py +0 -152
  597. otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_start_new_project.py +0 -25
  598. otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_suggest_save_path.py +0 -166
  599. otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_track_export.py +0 -49
  600. otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases/test_video_repository.py +0 -175
  601. otanalytics-0.7.4/tests/unit/OTAnalytics/domain/test_date.py +0 -78
  602. otanalytics-0.7.4/tests/unit/OTAnalytics/domain/test_event.py +0 -758
  603. otanalytics-0.7.4/tests/unit/OTAnalytics/domain/test_filter.py +0 -107
  604. otanalytics-0.7.4/tests/unit/OTAnalytics/domain/test_flow.py +0 -142
  605. otanalytics-0.7.4/tests/unit/OTAnalytics/domain/test_geometry.py +0 -119
  606. otanalytics-0.7.4/tests/unit/OTAnalytics/domain/test_section.py +0 -513
  607. otanalytics-0.7.4/tests/unit/OTAnalytics/domain/test_track_repository.py +0 -273
  608. otanalytics-0.7.4/tests/unit/OTAnalytics/domain/test_video.py +0 -147
  609. otanalytics-0.7.4/tests/unit/OTAnalytics/domain/track_dataset/test_filtered_track_dataset.py +0 -456
  610. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_datastore/test_filter_polars_track_store.py +0 -117
  611. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_datastore/test_polars_track_store.py +0 -626
  612. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_datastore/test_python_track_store.py +0 -805
  613. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_datastore/test_track_store.py +0 -723
  614. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_datastore/track_geometry_store/test_polars_geometry_store.py +0 -733
  615. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_filter/test_dataframe_filter.py +0 -457
  616. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser/test_argparse_cli_parser.py +0 -74
  617. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser/test_export.py +0 -419
  618. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser/test_feathers_parser.py +0 -359
  619. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser/test_json_parser.py +0 -59
  620. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser/test_otconfig_parser.py +0 -363
  621. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser/test_otvision_parser.py +0 -822
  622. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser/test_pandas_parser.py +0 -121
  623. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser/test_road_user_assignment_export.py +0 -82
  624. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser/test_track_export.py +0 -59
  625. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_prototypes/test_eventlist_exporter.py +0 -15
  626. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/dialogs/test_file_chooser_dialog.py +0 -260
  627. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/pages/canvas_and_files_form/test_canvas_form.py +0 -1107
  628. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/test_cli.py +0 -1190
  629. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/test_edit_section_dialog.py +0 -197
  630. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/test_export_counts_dialog.py +0 -206
  631. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/test_file_chooser_dialog.py +0 -221
  632. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/test_flow_form.py +0 -169
  633. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/test_sections_form.py +0 -257
  634. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/test_svz_metadata_form.py +0 -243
  635. otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/visualization/counts/test_counts_plotter.py +0 -624
  636. otanalytics-0.7.4/tests/utils/builders/event_builder.py +0 -137
  637. otanalytics-0.7.4/tests/utils/builders/otanalytics_builders.py +0 -149
  638. otanalytics-0.7.4/tests/utils/builders/road_user_assignment.py +0 -54
  639. otanalytics-0.7.4/tests/utils/builders/run_configuration.py +0 -58
  640. otanalytics-0.7.4/tests/utils/builders/track_builder.py +0 -377
  641. otanalytics-0.7.4/tests/utils/playwright_helpers.py +0 -1367
  642. otanalytics-0.7.4/uv.lock +0 -2209
  643. {otanalytics-0.7.4 → otanalytics-0.7.6}/.editorconfig +0 -0
  644. {otanalytics-0.7.4 → otanalytics-0.7.6}/.github/dependabot.yml +0 -0
  645. {otanalytics-0.7.4 → otanalytics-0.7.6}/.junie/guidelines.md +0 -0
  646. {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/Scalene-CLI (benchmark).run.xml +0 -0
  647. {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/Scalene-CLI.run.xml +0 -0
  648. {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/Start-CLI (benchmark files).run.xml +0 -0
  649. {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/Start-CLI.run.xml +0 -0
  650. {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/Start-GUI (mit Benchmarkdaten).run.xml +0 -0
  651. {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/Start-GUI (mit Testdaten).run.xml +0 -0
  652. {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/Start-GUI.run.xml +0 -0
  653. {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/Start-WebUI (mit Testdaten).run.xml +0 -0
  654. {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/pytest-acceptance-tests.run.xml +0 -0
  655. {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/pytest-benchmark-tests.run.xml +0 -0
  656. {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/pytest-in-tests.run.xml +0 -0
  657. {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/pytest-regression-tests.run.xml +0 -0
  658. {otanalytics-0.7.4 → otanalytics-0.7.6}/.run/pytest-unit-tests.run.xml +0 -0
  659. {otanalytics-0.7.4 → otanalytics-0.7.6}/.shellcheckrc +0 -0
  660. {otanalytics-0.7.4 → otanalytics-0.7.6}/.vscode/launch.json +0 -0
  661. {otanalytics-0.7.4 → otanalytics-0.7.6}/.vscode/settings.json +0 -0
  662. {otanalytics-0.7.4 → otanalytics-0.7.6}/LICENSE +0 -0
  663. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/__init__.py +0 -0
  664. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/__main__.py +0 -0
  665. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_intersect/__init__.py +0 -0
  666. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/__init__.py +0 -0
  667. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/abstract_frame.py +0 -0
  668. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/abstract_frame_canvas.py +0 -0
  669. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/abstract_frame_filter.py +0 -0
  670. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/abstract_frame_offset.py +0 -0
  671. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/abstract_frame_remark.py +0 -0
  672. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/abstract_frame_track_statistics.py +0 -0
  673. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/abstract_main_window.py +0 -0
  674. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/abstract_progressbar_popup.py +0 -0
  675. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/abstract_treeview_interface.py +0 -0
  676. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/cancel_export_counts.py +0 -0
  677. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/cancel_export_file.py +0 -0
  678. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/default_values.py +0 -0
  679. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/dto.py +0 -0
  680. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/file_selection_cancelled.py +0 -0
  681. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/flow_adapter.py +0 -0
  682. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/flow_dto.py +0 -0
  683. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/helpers.py +0 -0
  684. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/info_box.py +0 -0
  685. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/message_box.py +0 -0
  686. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/text_resources.py +0 -0
  687. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_ui/ui_texts.py +0 -0
  688. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_visualization/__init__.py +0 -0
  689. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/adapter_visualization/color_provider.py +0 -0
  690. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/__init__.py +0 -0
  691. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/analysis/__init__.py +0 -0
  692. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/analysis/intersect.py +0 -0
  693. {otanalytics-0.7.4/OTAnalytics/application/export_formats → otanalytics-0.7.6/OTAnalytics/application/analysis/traffic_statistics}/__init__.py +0 -0
  694. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/exception.py +0 -0
  695. {otanalytics-0.7.4/OTAnalytics/application/parser → otanalytics-0.7.6/OTAnalytics/application/export_formats}/__init__.py +0 -0
  696. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/export_formats/export_mode.py +0 -0
  697. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/export_formats/track_statistics.py +0 -0
  698. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/geometry.py +0 -0
  699. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/logger.py +0 -0
  700. {otanalytics-0.7.4/OTAnalytics/application/resources → otanalytics-0.7.6/OTAnalytics/application/parser}/__init__.py +0 -0
  701. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/parser/deserializer.py +0 -0
  702. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/parser/flow_parser.py +0 -0
  703. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/playback.py +0 -0
  704. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/project.py +0 -0
  705. {otanalytics-0.7.4/OTAnalytics/application/ui → otanalytics-0.7.6/OTAnalytics/application/resources}/__init__.py +0 -0
  706. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/track_filter.py +0 -0
  707. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/track_input_source.py +0 -0
  708. {otanalytics-0.7.4/OTAnalytics/application/use_cases → otanalytics-0.7.6/OTAnalytics/application/ui}/__init__.py +0 -0
  709. {otanalytics-0.7.4/OTAnalytics/application/use_cases/editor → otanalytics-0.7.6/OTAnalytics/application/use_cases}/__init__.py +0 -0
  710. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/add_new_remark.py +0 -0
  711. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/apply_cli_cuts.py +0 -0
  712. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/create_events.py +0 -0
  713. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/create_intersection_events.py +0 -0
  714. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/create_road_user_assignments.py +0 -0
  715. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/cut_tracks_with_sections.py +0 -0
  716. {otanalytics-0.7.4/OTAnalytics/domain → otanalytics-0.7.6/OTAnalytics/application/use_cases/editor}/__init__.py +0 -0
  717. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/editor/section_editor.py +0 -0
  718. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/event_repository.py +0 -0
  719. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/filter_visualization.py +0 -0
  720. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/flow_statistics.py +0 -0
  721. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/generate_flows.py +0 -0
  722. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/get_current_project.py +0 -0
  723. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/highlight_intersections.py +0 -0
  724. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/inside_cutting_section.py +0 -0
  725. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/intersection_repository.py +0 -0
  726. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/number_of_tracks_to_be_validated.py +0 -0
  727. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/preload_input_files.py +0 -0
  728. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/reset_project_config.py +0 -0
  729. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/revert_cuts.py +0 -0
  730. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/save_otflow.py +0 -0
  731. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/track_repository.py +0 -0
  732. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/track_statistics.py +0 -0
  733. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/application/use_cases/update_project.py +0 -0
  734. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/assets/OpenTrafficCam_800.png +0 -0
  735. {otanalytics-0.7.4/OTAnalytics/domain/track_dataset → otanalytics-0.7.6/OTAnalytics/domain}/__init__.py +0 -0
  736. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/domain/common.py +0 -0
  737. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/domain/files.py +0 -0
  738. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/domain/observer.py +0 -0
  739. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/domain/otc_classes.py +0 -0
  740. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/domain/tls8plus1_classes.py +0 -0
  741. {otanalytics-0.7.4/OTAnalytics/helpers → otanalytics-0.7.6/OTAnalytics/domain/track_dataset}/__init__.py +0 -0
  742. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/domain/track_id_provider.py +0 -0
  743. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/domain/types.py +0 -0
  744. {otanalytics-0.7.4/OTAnalytics/plugin_cli → otanalytics-0.7.6/OTAnalytics/helpers}/__init__.py +0 -0
  745. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/helpers/time_profiling.py +0 -0
  746. {otanalytics-0.7.4/OTAnalytics/plugin_datastore → otanalytics-0.7.6/OTAnalytics/plugin_cli}/__init__.py +0 -0
  747. {otanalytics-0.7.4/OTAnalytics/plugin_datastore/track_geometry_store → otanalytics-0.7.6/OTAnalytics/plugin_datastore}/__init__.py +0 -0
  748. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_datastore/get_current_frame_track_segments.py +0 -0
  749. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_datastore/pandas_track_dataset_factory.py +0 -0
  750. {otanalytics-0.7.4/OTAnalytics/plugin_filter → otanalytics-0.7.6/OTAnalytics/plugin_datastore/track_geometry_store}/__init__.py +0 -0
  751. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_datastore/track_geometry_store/shapely_store.py +0 -0
  752. {otanalytics-0.7.4/OTAnalytics/plugin_intersect → otanalytics-0.7.6/OTAnalytics/plugin_filter}/__init__.py +0 -0
  753. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_filter/pandas_track_id.py +0 -0
  754. {otanalytics-0.7.4/OTAnalytics/plugin_intersect/shapely → otanalytics-0.7.6/OTAnalytics/plugin_intersect}/__init__.py +0 -0
  755. {otanalytics-0.7.4/OTAnalytics/plugin_intersect/simple → otanalytics-0.7.6/OTAnalytics/plugin_intersect/shapely}/__init__.py +0 -0
  756. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_intersect/shapely/mapping.py +0 -0
  757. {otanalytics-0.7.4/OTAnalytics/plugin_intersect_parallelization → otanalytics-0.7.6/OTAnalytics/plugin_intersect/simple}/__init__.py +0 -0
  758. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_intersect/simple/cut_tracks_with_sections.py +0 -0
  759. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_intersect/simple_intersect.py +0 -0
  760. {otanalytics-0.7.4/OTAnalytics/plugin_number_of_tracks_to_be_validated → otanalytics-0.7.6/OTAnalytics/plugin_intersect_parallelization}/__init__.py +0 -0
  761. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_intersect_parallelization/multiprocessing.py +0 -0
  762. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_intersect_parallelization/sequential.py +0 -0
  763. {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
  764. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_number_of_tracks_to_be_validated/calculation_strategy.py +0 -0
  765. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_number_of_tracks_to_be_validated/metric_rates_builder.py +0 -0
  766. {otanalytics-0.7.4/OTAnalytics/plugin_parser → otanalytics-0.7.6/OTAnalytics/plugin_number_of_tracks_to_be_validated/svz}/__init__.py +0 -0
  767. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_number_of_tracks_to_be_validated/svz/metric_rates.py +0 -0
  768. {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
  769. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_number_of_tracks_to_be_validated/tracks_as_dataframe_provider.py +0 -0
  770. {otanalytics-0.7.4/OTAnalytics/plugin_progress → otanalytics-0.7.6/OTAnalytics/plugin_orthophoto}/__init__.py +0 -0
  771. {otanalytics-0.7.4/OTAnalytics/plugin_prototypes → otanalytics-0.7.6/OTAnalytics/plugin_parser}/__init__.py +0 -0
  772. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_parser/dataformat_versions.py +0 -0
  773. {otanalytics-0.7.4/OTAnalytics/plugin_prototypes/eventlist_exporter → otanalytics-0.7.6/OTAnalytics/plugin_progress}/__init__.py +0 -0
  774. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_progress/lazy_tqdm_progressbar.py +0 -0
  775. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_progress/multiprocessing_progress.py +0 -0
  776. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_progress/tqdm_progressbar.py +0 -0
  777. {otanalytics-0.7.4/OTAnalytics/plugin_prototypes/track_visualization → otanalytics-0.7.6/OTAnalytics/plugin_prototypes}/__init__.py +0 -0
  778. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_prototypes/event_visualization.py +0 -0
  779. {otanalytics-0.7.4/OTAnalytics/plugin_track_input_source → otanalytics-0.7.6/OTAnalytics/plugin_prototypes/eventlist_exporter}/__init__.py +0 -0
  780. {otanalytics-0.7.4/OTAnalytics/plugin_ui → otanalytics-0.7.6/OTAnalytics/plugin_prototypes/track_visualization}/__init__.py +0 -0
  781. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_prototypes/track_visualization/cv2_image.py +0 -0
  782. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_prototypes/track_visualization/numpy_image.py +0 -0
  783. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_prototypes/track_visualization/pil_image.py +0 -0
  784. {otanalytics-0.7.4/OTAnalytics/plugin_ui/customtkinter_gui → otanalytics-0.7.6/OTAnalytics/plugin_s3}/__init__.py +0 -0
  785. {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui → otanalytics-0.7.6/OTAnalytics/plugin_s3/config}/__init__.py +0 -0
  786. {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/dialogs → otanalytics-0.7.6/OTAnalytics/plugin_track_export}/__init__.py +0 -0
  787. {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/forms → otanalytics-0.7.6/OTAnalytics/plugin_track_export/csv}/__init__.py +0 -0
  788. {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui → otanalytics-0.7.6/OTAnalytics/plugin_track_export/csv/writers}/__init__.py +0 -0
  789. {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui/elements → otanalytics-0.7.6/OTAnalytics/plugin_track_export/geo}/__init__.py +0 -0
  790. {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/nicegui/theme → otanalytics-0.7.6/OTAnalytics/plugin_track_input_source}/__init__.py +0 -0
  791. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_track_input_source/single_batch.py +0 -0
  792. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_track_input_source/template.py +0 -0
  793. {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/page_builders → otanalytics-0.7.6/OTAnalytics/plugin_ui}/__init__.py +0 -0
  794. {otanalytics-0.7.4/OTAnalytics/plugin_ui/nicegui_gui/pages → otanalytics-0.7.6/OTAnalytics/plugin_ui/customtkinter_gui}/__init__.py +0 -0
  795. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/abstract_ctk_canvas.py +0 -0
  796. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/abstract_ctk_frame.py +0 -0
  797. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/button_quick_save_config.py +0 -0
  798. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/canvas_observer.py +0 -0
  799. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/constants.py +0 -0
  800. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/custom_containers.py +0 -0
  801. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_analysis.py +0 -0
  802. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_bbox_offset.py +0 -0
  803. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_canvas.py +0 -0
  804. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_configuration.py +0 -0
  805. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_date_filter_control.py +0 -0
  806. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_files.py +0 -0
  807. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_flows.py +0 -0
  808. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_remarks.py +0 -0
  809. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_sections.py +0 -0
  810. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_track_statistics.py +0 -0
  811. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_tracks.py +0 -0
  812. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/frame_videos.py +0 -0
  813. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/gui.py +0 -0
  814. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/messagebox.py +0 -0
  815. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/scrollable_xy_frame.py +0 -0
  816. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/state.py +0 -0
  817. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_flows.py +0 -0
  818. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/toplevel_sections.py +0 -0
  819. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/treeview_template.py +0 -0
  820. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/customtkinter_gui/utility_widgets.py +0 -0
  821. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/intersection_repository.py +0 -0
  822. {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
  823. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/config.py +0 -0
  824. {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
  825. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/dialogs/edit_flow_dialog.py +0 -0
  826. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/endpoints.py +0 -0
  827. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/file_utils.py +0 -0
  828. {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
  829. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/forms/offset_slider_form.py +0 -0
  830. {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
  831. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/constants.py +0 -0
  832. {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
  833. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/nicegui_webserver.py +0 -0
  834. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/page_builder.py +0 -0
  835. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/circle.py +0 -0
  836. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/circle_resources.py +0 -0
  837. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/line.py +0 -0
  838. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/polyline.py +0 -0
  839. {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
  840. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/theme/color.py +0 -0
  841. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/theme/nicegui_layout_components.py +0 -0
  842. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/nicegui/validation.py +0 -0
  843. {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
  844. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/page_builders/main_page_builder.py +0 -0
  845. {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
  846. {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
  847. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/add_track_form/add_tracks_form.py +0 -0
  848. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/add_track_form/container.py +0 -0
  849. {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
  850. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/add_video_form/container.py +0 -0
  851. {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
  852. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/analysis_form/container.py +0 -0
  853. {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
  854. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/canvas_and_files_form/container.py +0 -0
  855. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/canvas_and_files_form/files_form.py +0 -0
  856. {otanalytics-0.7.4/OTAnalytics/plugin_ui/visualization → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/configuration_bar}/__init__.py +0 -0
  857. {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
  858. {otanalytics-0.7.4/tests → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/sections_and_flow_form}/__init__.py +0 -0
  859. {otanalytics-0.7.4/tests/acceptance → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/svz_metadata_form}/__init__.py +0 -0
  860. {otanalytics-0.7.4/tests/benchmark → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/track_statistics_form}/__init__.py +0 -0
  861. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_filters.py +0 -0
  862. {otanalytics-0.7.4/tests/regression → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_filters_form}/__init__.py +0 -0
  863. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_layers.py +0 -0
  864. {otanalytics-0.7.4/tests/unit/OTAnalytics → otanalytics-0.7.6/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_layers_form}/__init__.py +0 -0
  865. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/visualization_layers_form/container.py +0 -0
  866. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/pages/workspace.py +0 -0
  867. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/nicegui_gui/test_constants.py +0 -0
  868. {otanalytics-0.7.4/tests/unit/OTAnalytics/adapter_intersect → otanalytics-0.7.6/OTAnalytics/plugin_ui/utils}/__init__.py +0 -0
  869. {otanalytics-0.7.4 → otanalytics-0.7.6}/OTAnalytics/plugin_ui/utils/asyncio_helper.py +0 -0
  870. {otanalytics-0.7.4/tests/unit/OTAnalytics/application → otanalytics-0.7.6/OTAnalytics/plugin_ui/visualization}/__init__.py +0 -0
  871. {otanalytics-0.7.4/tests/unit/OTAnalytics/application/analysis → otanalytics-0.7.6/OTAnalytics/plugin_ui/visualization/counts}/__init__.py +0 -0
  872. {otanalytics-0.7.4 → otanalytics-0.7.6}/clean-up-repository.sh +0 -0
  873. {otanalytics-0.7.4 → otanalytics-0.7.6}/config.yml +0 -0
  874. {otanalytics-0.7.4 → otanalytics-0.7.6}/convert_ottrk_to_feather.py +0 -0
  875. {otanalytics-0.7.4 → otanalytics-0.7.6}/install.cmd +0 -0
  876. {otanalytics-0.7.4 → otanalytics-0.7.6}/install.sh +0 -0
  877. {otanalytics-0.7.4 → otanalytics-0.7.6}/requirements.txt +0 -0
  878. {otanalytics-0.7.4 → otanalytics-0.7.6}/scripts/check_clean_architecture.py +0 -0
  879. {otanalytics-0.7.4 → otanalytics-0.7.6}/start_gui.cmd +0 -0
  880. {otanalytics-0.7.4 → otanalytics-0.7.6}/start_gui.sh +0 -0
  881. {otanalytics-0.7.4/tests/unit/OTAnalytics/application/resources → otanalytics-0.7.6/tests}/__init__.py +0 -0
  882. {otanalytics-0.7.4/tests/unit/OTAnalytics/application/ui → otanalytics-0.7.6/tests/acceptance}/__init__.py +0 -0
  883. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/acceptance/test_tracks_add_and_display.py +0 -0
  884. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/acceptance/test_video_import_and_display.py +0 -0
  885. {otanalytics-0.7.4/tests/unit/OTAnalytics/application/use_cases → otanalytics-0.7.6/tests/benchmark}/__init__.py +0 -0
  886. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/Sample_FR20_2020-01-01_00-00-00.ottrk +0 -0
  887. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4 +0 -0
  888. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
  889. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mp4 +0 -0
  890. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
  891. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/all_tracks.png +0 -0
  892. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/highlight_tracks_assigned_to_flows.png +0 -0
  893. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/highlight_tracks_intersecting_sections.png +0 -0
  894. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/highlight_tracks_not_assigned_to_flows.png +0 -0
  895. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/highlight_tracks_not_intersecting_sections.png +0 -0
  896. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/offset_before.png +0 -0
  897. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/start_end_all.png +0 -0
  898. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/start_end_assigned_to_flows.png +0 -0
  899. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/start_end_intersecting_sections.png +0 -0
  900. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/start_end_not_assigned_to_flows.png +0 -0
  901. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/acceptance/start_end_not_intersecting_sections.png +0 -0
  902. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/cyclists_2025-12-19_10-18-43.otconfig +0 -0
  903. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/section.json.bz2.otflow +0 -0
  904. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/test_name.otconfig +0 -0
  905. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/data/trucks_2025-12-19_10-19-22.otconfig +0 -0
  906. {otanalytics-0.7.4/tests/unit/OTAnalytics/domain → otanalytics-0.7.6/tests/integration/OTAnalytics}/__init__.py +0 -0
  907. {otanalytics-0.7.4/tests/unit/OTAnalytics/domain/track_dataset → otanalytics-0.7.6/tests/integration/OTAnalytics/plugin_s3}/__init__.py +0 -0
  908. {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_datastore → otanalytics-0.7.6/tests/integration/OTAnalytics/plugin_ui}/__init__.py +0 -0
  909. {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_datastore/track_geometry_store → otanalytics-0.7.6/tests/integration}/__init__.py +0 -0
  910. {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_filter → otanalytics-0.7.6/tests/regression}/__init__.py +0 -0
  911. {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_intersect → otanalytics-0.7.6/tests/system/OTAnalytics}/__init__.py +0 -0
  912. {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_intersect/shapely → otanalytics-0.7.6/tests/system/OTAnalytics/plugin_ui}/__init__.py +0 -0
  913. {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_intersect/simple → otanalytics-0.7.6/tests/system}/__init__.py +0 -0
  914. {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_intersect_parallelization → otanalytics-0.7.6/tests/unit/OTAnalytics}/__init__.py +0 -0
  915. {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
  916. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/adapter_intersect/test_mapping.py +0 -0
  917. {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
  918. {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_parser → otanalytics-0.7.6/tests/unit/OTAnalytics/application/analysis}/__init__.py +0 -0
  919. {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_progress → otanalytics-0.7.6/tests/unit/OTAnalytics/application/analysis/traffic_statistics}/__init__.py +0 -0
  920. {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_prototypes → otanalytics-0.7.6/tests/unit/OTAnalytics/application/parser}/__init__.py +0 -0
  921. {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_prototypes/track_visualization → otanalytics-0.7.6/tests/unit/OTAnalytics/application/resources}/__init__.py +0 -0
  922. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/resources/test_resource_manager.py +0 -0
  923. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/test_helpers.py +0 -0
  924. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/test_project.py +0 -0
  925. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/test_track_filter.py +0 -0
  926. {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui → otanalytics-0.7.6/tests/unit/OTAnalytics/application/ui}/__init__.py +0 -0
  927. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/ui/test_frame_control.py +0 -0
  928. {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/visualization → otanalytics-0.7.6/tests/unit/OTAnalytics/application/use_cases}/__init__.py +0 -0
  929. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_apply_cli_cuts.py +0 -0
  930. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_create_events.py +0 -0
  931. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_create_intersection_events.py +0 -0
  932. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_event_repository.py +0 -0
  933. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_flows_statistics.py +0 -0
  934. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_generate_flows.py +0 -0
  935. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_get_current_project.py +0 -0
  936. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_get_road_user_assignments.py +0 -0
  937. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_highlight_intersections.py +0 -0
  938. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_inside_cutting_section.py +0 -0
  939. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_intersection_repository.py +0 -0
  940. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_preload_input_files.py +0 -0
  941. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_reset_project_config.py +0 -0
  942. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_revert_cuts.py +0 -0
  943. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_save_otflow.py +0 -0
  944. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_section_repository.py +0 -0
  945. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_track_repository.py +0 -0
  946. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_track_statistics.py +0 -0
  947. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_track_statistics_export.py +0 -0
  948. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_update_count_plots.py +0 -0
  949. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/application/use_cases/test_update_project.py +0 -0
  950. {otanalytics-0.7.4/tests/unit/OTAnalytics/plugin_ui/visualization/counts → otanalytics-0.7.6/tests/unit/OTAnalytics/domain}/__init__.py +0 -0
  951. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/domain/test_files.py +0 -0
  952. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/domain/test_observer.py +0 -0
  953. {otanalytics-0.7.4/tests/unit → otanalytics-0.7.6/tests/unit/OTAnalytics/domain/track_dataset}/__init__.py +0 -0
  954. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/domain/track_dataset/conftest.py +0 -0
  955. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/domain/track_dataset/test_track_dataset.py +0 -0
  956. {otanalytics-0.7.4/tests/utils → otanalytics-0.7.6/tests/unit/OTAnalytics/helpers}/__init__.py +0 -0
  957. {otanalytics-0.7.4/tests/utils/builders → otanalytics-0.7.6/tests/unit/OTAnalytics/plugin_cli}/__init__.py +0 -0
  958. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_datastore/test_filter_pandas_track_store.py +0 -0
  959. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_datastore/track_geometry_store/test_shapely_store.py +0 -0
  960. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_intersect/simple/test_cut_tracks_with_sections.py +0 -0
  961. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_intersect/test_intersect.py +0 -0
  962. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_intersect_parallelization/test_multiprocessing.py +0 -0
  963. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_intersect_parallelization/test_sequential.py +0 -0
  964. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_number_of_tracks_to_be_validated/conftest.py +0 -0
  965. {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
  966. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_number_of_tracks_to_be_validated/test_calculation_strategy.py +0 -0
  967. {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
  968. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_parser/test_streaming_parser.py +0 -0
  969. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_progress/test_multiprocessing_progress.py +0 -0
  970. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_prototypes/track_visualization/test_track_viz.py +0 -0
  971. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_ui/conftest.py +0 -0
  972. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/dialogs/test_file_extension_filtering.py +0 -0
  973. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/dialogs/test_file_picker.py +0 -0
  974. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/test_circle.py +0 -0
  975. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/test_line.py +0 -0
  976. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_ui/nicegui_gui/nicegui/svg/test_polyline.py +0 -0
  977. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_ui/test_edit_flow_dialog.py +0 -0
  978. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_ui/test_intersection_repository.py +0 -0
  979. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/unit/OTAnalytics/plugin_video_processing/test_video_reader.py +0 -0
  980. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/utils/assertions.py +0 -0
  981. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/utils/builders/constants.py +0 -0
  982. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/utils/builders/ottrk_file_input_source.py +0 -0
  983. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/utils/builders/track_dataset_provider.py +0 -0
  984. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/utils/builders/track_segment_builder.py +0 -0
  985. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/utils/state.py +0 -0
  986. {otanalytics-0.7.4 → otanalytics-0.7.6}/tests/utils/ui_helpers.py +0 -0
@@ -0,0 +1,3 @@
1
+ [codespell]
2
+ # Koordinate: German UI label. nwe: tkinter sticky value.
3
+ ignore-words-list = koordinate,nwe
@@ -0,0 +1,6 @@
1
+ # Fixes we want to apply automatically.
2
+ # Only for local mode.
3
+ FIX_GITHUB_ACTIONS_ZIZMOR=true
4
+ FIX_PYTHON_RUFF=true
5
+ FIX_PYTHON_RUFF_FORMAT=true
6
+ FIX_YAML_PRETTIER=true
@@ -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