boris-behav-obs 8.27.2__tar.gz → 8.27.3__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 (129) hide show
  1. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/PKG-INFO +1 -1
  2. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/preferences_ui.py +2 -2
  3. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/project.py +4 -9
  4. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/project_import_export.py +22 -16
  5. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/version.py +2 -2
  6. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris_behav_obs.egg-info/PKG-INFO +1 -1
  7. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/pyproject.toml +2 -2
  8. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/LICENSE.TXT +0 -0
  9. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/MANIFEST.in +0 -0
  10. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/README.TXT +0 -0
  11. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/README.rst +0 -0
  12. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/__init__.py +0 -0
  13. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/__main__.py +0 -0
  14. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/about.py +0 -0
  15. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/add_modifier.py +0 -0
  16. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/add_modifier_ui.py +0 -0
  17. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/advanced_event_filtering.py +0 -0
  18. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/behav_coding_map_creator.py +0 -0
  19. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/behavior_binary_table.py +0 -0
  20. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/behaviors_coding_map.py +0 -0
  21. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/boris_cli.py +0 -0
  22. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/cmd_arguments.py +0 -0
  23. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/coding_pad.py +0 -0
  24. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/config.py +0 -0
  25. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/config_file.py +0 -0
  26. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/connections.py +0 -0
  27. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/converters.py +0 -0
  28. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/converters_ui.py +0 -0
  29. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/cooccurence.py +0 -0
  30. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/core.py +0 -0
  31. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/core_qrc.py +0 -0
  32. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/core_ui.py +0 -0
  33. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/db_functions.py +0 -0
  34. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/dev.py +0 -0
  35. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/dialog.py +0 -0
  36. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/duration_widget.py +0 -0
  37. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/edit_event.py +0 -0
  38. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/edit_event_ui.py +0 -0
  39. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/event_operations.py +0 -0
  40. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/events_cursor.py +0 -0
  41. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/events_snapshots.py +0 -0
  42. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/exclusion_matrix.py +0 -0
  43. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/export_events.py +0 -0
  44. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/export_observation.py +0 -0
  45. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/external_processes.py +0 -0
  46. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/geometric_measurement.py +0 -0
  47. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/gui_utilities.py +0 -0
  48. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/image_overlay.py +0 -0
  49. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/import_observations.py +0 -0
  50. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/irr.py +0 -0
  51. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/latency.py +0 -0
  52. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/map_creator.py +0 -0
  53. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/measurement_widget.py +0 -0
  54. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/media_file.py +0 -0
  55. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/menu_options.py +0 -0
  56. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/modifiers_coding_map.py +0 -0
  57. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/mpv.py +0 -0
  58. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/mpv2.py +0 -0
  59. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/observation.py +0 -0
  60. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/observation_operations.py +0 -0
  61. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/observation_ui.py +0 -0
  62. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/observations_list.py +0 -0
  63. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/otx_parser.py +0 -0
  64. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/param_panel.py +0 -0
  65. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/param_panel_ui.py +0 -0
  66. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/player_dock_widget.py +0 -0
  67. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/plot_data_module.py +0 -0
  68. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/plot_events.py +0 -0
  69. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/plot_events_rt.py +0 -0
  70. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/plot_spectrogram_rt.py +0 -0
  71. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/plot_waveform_rt.py +0 -0
  72. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/portion/__init__.py +0 -0
  73. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/portion/const.py +0 -0
  74. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/portion/dict.py +0 -0
  75. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/portion/func.py +0 -0
  76. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/portion/interval.py +0 -0
  77. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/portion/io.py +0 -0
  78. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/preferences.py +0 -0
  79. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/project_functions.py +0 -0
  80. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/project_ui.py +0 -0
  81. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qdarkstyle/__init__.py +0 -0
  82. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qdarkstyle/__main__.py +0 -0
  83. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qdarkstyle/colorsystem.py +0 -0
  84. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qdarkstyle/dark/__init__.py +0 -0
  85. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qdarkstyle/dark/darkstyle_rc.py +0 -0
  86. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qdarkstyle/dark/palette.py +0 -0
  87. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qdarkstyle/example/__init__.py +0 -0
  88. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qdarkstyle/example/__main__.py +0 -0
  89. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qdarkstyle/example/ui/__init__.py +0 -0
  90. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qdarkstyle/light/__init__.py +0 -0
  91. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qdarkstyle/light/lightstyle_rc.py +0 -0
  92. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qdarkstyle/light/palette.py +0 -0
  93. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qdarkstyle/palette.py +0 -0
  94. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qdarkstyle/utils/__init__.py +0 -0
  95. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qdarkstyle/utils/__main__.py +0 -0
  96. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qdarkstyle/utils/images.py +0 -0
  97. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qdarkstyle/utils/scss.py +0 -0
  98. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qrc_boris.py +0 -0
  99. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/qrc_boris5.py +0 -0
  100. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/select_modifiers.py +0 -0
  101. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/select_observations.py +0 -0
  102. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/select_subj_behav.py +0 -0
  103. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/state_events.py +0 -0
  104. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/subjects_pad.py +0 -0
  105. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/synthetic_time_budget.py +0 -0
  106. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/time_budget_functions.py +0 -0
  107. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/time_budget_widget.py +0 -0
  108. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/transitions.py +0 -0
  109. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/utilities.py +0 -0
  110. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/video_equalizer.py +0 -0
  111. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/video_equalizer_ui.py +0 -0
  112. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/video_operations.py +0 -0
  113. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/vlc_local.py +0 -0
  114. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris/write_event.py +0 -0
  115. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris_behav_obs.egg-info/SOURCES.txt +0 -0
  116. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris_behav_obs.egg-info/dependency_links.txt +0 -0
  117. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris_behav_obs.egg-info/entry_points.txt +0 -0
  118. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris_behav_obs.egg-info/requires.txt +0 -0
  119. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/boris_behav_obs.egg-info/top_level.txt +0 -0
  120. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/setup.cfg +0 -0
  121. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/tests/test_db_functions.py +0 -0
  122. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/tests/test_export_observation.py +0 -0
  123. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/tests/test_irr.py +0 -0
  124. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/tests/test_observation_gui.py +0 -0
  125. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/tests/test_otx_parser.py +0 -0
  126. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/tests/test_preferences_gui.py +0 -0
  127. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/tests/test_project_functions.py +0 -0
  128. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/tests/test_time_budget.py +0 -0
  129. {boris_behav_obs-8.27.2 → boris_behav_obs-8.27.3}/tests/test_utilities.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: boris-behav-obs
3
- Version: 8.27.2
3
+ Version: 8.27.3
4
4
  Summary: BORIS - Behavioral Observation Research Interactive Software
5
5
  Author-email: Olivier Friard <olivier.friard@unito.it>
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
- # Form implementation generated from reading ui file 'preferences.ui'
3
+ # Form implementation generated from reading ui file 'boris/preferences.ui'
4
4
  #
5
5
  # Created by: PyQt5 UI code generator 5.15.6
6
6
  #
@@ -331,7 +331,7 @@ class Ui_prefDialog(object):
331
331
  self.pb_reset_category_colors.setText(_translate("prefDialog", "Reset colors to default"))
332
332
  self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_colors), _translate("prefDialog", "Plot colors"))
333
333
  self.label_9.setText(_translate("prefDialog", "Toolbar icons size"))
334
- self.cb_darkmode.setText(_translate("prefDialog", "Dark mode"))
334
+ self.cb_darkmode.setText(_translate("prefDialog", "Dark mode (should be necessary to relaunch BORIS)"))
335
335
  self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_interface), _translate("prefDialog", "Interface"))
336
336
  self.pb_refresh.setText(_translate("prefDialog", "Refresh"))
337
337
  self.pbCancel.setText(_translate("prefDialog", "Cancel"))
@@ -578,7 +578,7 @@ class projectDialog(QDialog, Ui_dlgProject):
578
578
  # convert modifier shortcuts
579
579
  if self.twBehaviors.item(row, cfg.behavioursFields[cfg.MODIFIERS]).text():
580
580
  modifiers_dict = (
581
- eval(self.twBehaviors.item(row, cfg.behavioursFields[cfg.MODIFIERS]).text())
581
+ json.loads(self.twBehaviors.item(row, cfg.behavioursFields[cfg.MODIFIERS]).text())
582
582
  if self.twBehaviors.item(row, cfg.behavioursFields[cfg.MODIFIERS]).text()
583
583
  else {}
584
584
  )
@@ -593,7 +593,7 @@ class projectDialog(QDialog, Ui_dlgProject):
593
593
  except Exception:
594
594
  logging.warning("error during conversion of modifier short cut to lower case")
595
595
 
596
- self.twBehaviors.item(row, cfg.behavioursFields[cfg.MODIFIERS]).setText(str(modifiers_dict))
596
+ self.twBehaviors.item(row, cfg.behavioursFields[cfg.MODIFIERS]).setText(json.dumps(modifiers_dict))
597
597
 
598
598
  def convert_subjects_keys_to_lower_case(self):
599
599
  """
@@ -796,7 +796,7 @@ class projectDialog(QDialog, Ui_dlgProject):
796
796
  else:
797
797
  QMessageBox.information(self, cfg.programName, "Change the behavior type on first column to select a coding map")
798
798
 
799
- # check if double click on category
799
+ # check if double click on behavior type
800
800
  if column == cfg.behavioursFields["type"]:
801
801
  self.behavior_type_doubleclicked(row)
802
802
 
@@ -808,6 +808,7 @@ class projectDialog(QDialog, Ui_dlgProject):
808
808
  if column == cfg.behavioursFields[cfg.BEHAVIOR_CATEGORY]:
809
809
  self.category_doubleclicked(row)
810
810
 
811
+ # check if double click on modifiers
811
812
  if column == cfg.behavioursFields[cfg.MODIFIERS]:
812
813
  # check if behavior has coding map
813
814
  if (
@@ -1735,12 +1736,6 @@ class projectDialog(QDialog, Ui_dlgProject):
1735
1736
  QMessageBox.critical(self, cfg.programName, "Error removing leading/trailing spaces in modifiers")
1736
1737
 
1737
1738
  else:
1738
- """
1739
- if row["modifiers"]:
1740
- row["modifiers"] = eval(row["modifiers"])
1741
- else:
1742
- row["modifiers"] = {}
1743
- """
1744
1739
  row["modifiers"] = json.loads(row["modifiers"]) if row["modifiers"] else {}
1745
1740
  else:
1746
1741
  row[field] = ""
@@ -133,7 +133,7 @@ def export_ethogram(self) -> None:
133
133
  # modifiers
134
134
  if self.twBehaviors.item(r, cfg.behavioursFields[cfg.MODIFIERS]).text():
135
135
  # modifiers a string
136
- modifiers_dict = eval(self.twBehaviors.item(r, cfg.behavioursFields[cfg.MODIFIERS]).text())
136
+ modifiers_dict = json.loads(self.twBehaviors.item(r, cfg.behavioursFields[cfg.MODIFIERS]).text())
137
137
  modifiers_list = []
138
138
  for key in modifiers_dict:
139
139
  values = ",".join(modifiers_dict[key]["values"])
@@ -350,19 +350,22 @@ def import_ethogram_from_dict(self, project: dict):
350
350
  item.setBackground(QColor(230, 230, 230))
351
351
 
352
352
  else:
353
- if field == cfg.MODIFIERS and isinstance(project[cfg.ETHOGRAM][i][field], str):
354
- modif_set_dict = {}
355
- if project[cfg.ETHOGRAM][i][field]:
356
- modif_set_list = project[cfg.ETHOGRAM][i][field].split("|")
357
- for modif_set in modif_set_list:
358
- modif_set_dict[str(len(modif_set_dict))] = {
359
- "name": "",
360
- "type": cfg.SINGLE_SELECTION,
361
- "values": modif_set.split(","),
362
- }
363
- project[cfg.ETHOGRAM][i][field] = dict(modif_set_dict)
364
-
365
- item.setText(str(project[cfg.ETHOGRAM][i][field]))
353
+ if field == cfg.MODIFIERS:
354
+ if isinstance(project[cfg.ETHOGRAM][i][field], str):
355
+ modif_set_dict = {}
356
+ if project[cfg.ETHOGRAM][i][field]:
357
+ modif_set_list = project[cfg.ETHOGRAM][i][field].split("|")
358
+ for modif_set in modif_set_list:
359
+ modif_set_dict[str(len(modif_set_dict))] = {
360
+ "name": "",
361
+ "type": cfg.SINGLE_SELECTION,
362
+ "values": modif_set.split(","),
363
+ }
364
+ project[cfg.ETHOGRAM][i][field] = dict(modif_set_dict)
365
+ else:
366
+ item.setText(json.dumps(project[cfg.ETHOGRAM][i][field]))
367
+ else:
368
+ item.setText(project[cfg.ETHOGRAM][i][field])
366
369
 
367
370
  if field not in cfg.ETHOGRAM_EDITABLE_FIELDS:
368
371
  item.setFlags(Qt.ItemIsEnabled)
@@ -460,8 +463,11 @@ def load_dataframe_into_behaviors_tablewidget(self, df: pd.DataFrame) -> int:
460
463
 
461
464
 
462
465
  def import_behaviors_from_project(self):
466
+ """
467
+ import ethogram from a BORIS project file
468
+ """
463
469
  fn = QFileDialog().getOpenFileName(
464
- self, "Import behaviors from project file", "", ("Project files (*.boris *.boris.gz);;" "All files (*)")
470
+ self, "Import behaviors from BORIS project file", "", ("Project files (*.boris *.boris.gz);;" "All files (*)")
465
471
  )
466
472
  file_name = fn[0] if type(fn) is tuple else fn
467
473
 
@@ -474,7 +480,7 @@ def import_behaviors_from_project(self):
474
480
 
475
481
  def import_behaviors_from_text_file(self):
476
482
  """
477
- Import behaviors from text file (CSV or TSV)
483
+ Import ethogram from text file (CSV or TSV)
478
484
  """
479
485
 
480
486
  if self.twBehaviors.rowCount():
@@ -20,5 +20,5 @@ This file is part of BORIS.
20
20
 
21
21
  """
22
22
 
23
- __version__ = "8.27.2"
24
- __version_date__ = "2024-07-03"
23
+ __version__ = "8.27.3"
24
+ __version_date__ = "2024-08-19"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: boris-behav-obs
3
- Version: 8.27.2
3
+ Version: 8.27.3
4
4
  Summary: BORIS - Behavioral Observation Research Interactive Software
5
5
  Author-email: Olivier Friard <olivier.friard@unito.it>
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "boris-behav-obs"
3
- version = "8.27.2"
3
+ version = "8.27.3"
4
4
  description = "BORIS - Behavioral Observation Research Interactive Software"
5
5
  authors = [{ name="Olivier Friard", email="olivier.friard@unito.it" }]
6
6
  readme = "README.rst"
@@ -58,7 +58,7 @@ line-length = 140
58
58
  exclude = ["*_ui.py", "mpv*"]
59
59
 
60
60
  [tool.bumpver]
61
- current_version = "8.27.2"
61
+ current_version = "8.27.3"
62
62
  version_pattern = "MAJOR.MINOR.PATCH"
63
63
 
64
64