boris-behav-obs 8.26__tar.gz → 8.26.1__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.26 → boris_behav_obs-8.26.1}/PKG-INFO +1 -1
  2. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/select_modifiers.py +32 -8
  3. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/version.py +2 -2
  4. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris_behav_obs.egg-info/PKG-INFO +1 -1
  5. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/pyproject.toml +2 -2
  6. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/LICENSE.TXT +0 -0
  7. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/MANIFEST.in +0 -0
  8. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/README.TXT +0 -0
  9. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/README.rst +0 -0
  10. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/__init__.py +0 -0
  11. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/__main__.py +0 -0
  12. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/about.py +0 -0
  13. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/add_modifier.py +0 -0
  14. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/add_modifier_ui.py +0 -0
  15. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/advanced_event_filtering.py +0 -0
  16. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/behav_coding_map_creator.py +0 -0
  17. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/behavior_binary_table.py +0 -0
  18. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/behaviors_coding_map.py +0 -0
  19. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/boris_cli.py +0 -0
  20. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/cmd_arguments.py +0 -0
  21. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/coding_pad.py +0 -0
  22. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/config.py +0 -0
  23. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/config_file.py +0 -0
  24. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/connections.py +0 -0
  25. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/converters.py +0 -0
  26. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/converters_ui.py +0 -0
  27. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/cooccurence.py +0 -0
  28. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/core.py +0 -0
  29. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/core_qrc.py +0 -0
  30. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/core_ui.py +0 -0
  31. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/db_functions.py +0 -0
  32. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/dev.py +0 -0
  33. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/dialog.py +0 -0
  34. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/duration_widget.py +0 -0
  35. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/edit_event.py +0 -0
  36. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/edit_event_ui.py +0 -0
  37. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/event_operations.py +0 -0
  38. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/events_cursor.py +0 -0
  39. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/events_snapshots.py +0 -0
  40. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/exclusion_matrix.py +0 -0
  41. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/export_events.py +0 -0
  42. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/export_observation.py +0 -0
  43. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/external_processes.py +0 -0
  44. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/geometric_measurement.py +0 -0
  45. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/gui_utilities.py +0 -0
  46. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/image_overlay.py +0 -0
  47. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/import_observations.py +0 -0
  48. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/irr.py +0 -0
  49. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/latency.py +0 -0
  50. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/map_creator.py +0 -0
  51. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/measurement_widget.py +0 -0
  52. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/media_file.py +0 -0
  53. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/menu_options.py +0 -0
  54. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/modifiers_coding_map.py +0 -0
  55. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/mpv.py +0 -0
  56. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/mpv2.py +0 -0
  57. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/observation.py +0 -0
  58. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/observation_operations.py +0 -0
  59. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/observation_ui.py +0 -0
  60. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/observations_list.py +0 -0
  61. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/otx_parser.py +0 -0
  62. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/param_panel.py +0 -0
  63. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/param_panel_ui.py +0 -0
  64. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/player_dock_widget.py +0 -0
  65. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/plot_data_module.py +0 -0
  66. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/plot_events.py +0 -0
  67. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/plot_events_rt.py +0 -0
  68. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/plot_spectrogram_rt.py +0 -0
  69. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/plot_waveform_rt.py +0 -0
  70. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/portion/__init__.py +0 -0
  71. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/portion/const.py +0 -0
  72. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/portion/dict.py +0 -0
  73. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/portion/func.py +0 -0
  74. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/portion/interval.py +0 -0
  75. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/portion/io.py +0 -0
  76. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/preferences.py +0 -0
  77. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/preferences_ui.py +0 -0
  78. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/project.py +0 -0
  79. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/project_functions.py +0 -0
  80. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/project_import_export.py +0 -0
  81. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/project_ui.py +0 -0
  82. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qdarkstyle/__init__.py +0 -0
  83. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qdarkstyle/__main__.py +0 -0
  84. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qdarkstyle/colorsystem.py +0 -0
  85. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qdarkstyle/dark/__init__.py +0 -0
  86. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qdarkstyle/dark/darkstyle_rc.py +0 -0
  87. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qdarkstyle/dark/palette.py +0 -0
  88. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qdarkstyle/example/__init__.py +0 -0
  89. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qdarkstyle/example/__main__.py +0 -0
  90. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qdarkstyle/example/ui/__init__.py +0 -0
  91. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qdarkstyle/light/__init__.py +0 -0
  92. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qdarkstyle/light/lightstyle_rc.py +0 -0
  93. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qdarkstyle/light/palette.py +0 -0
  94. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qdarkstyle/palette.py +0 -0
  95. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qdarkstyle/utils/__init__.py +0 -0
  96. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qdarkstyle/utils/__main__.py +0 -0
  97. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qdarkstyle/utils/images.py +0 -0
  98. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qdarkstyle/utils/scss.py +0 -0
  99. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qrc_boris.py +0 -0
  100. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/qrc_boris5.py +0 -0
  101. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/select_observations.py +0 -0
  102. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/select_subj_behav.py +0 -0
  103. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/state_events.py +0 -0
  104. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/subjects_pad.py +0 -0
  105. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/synthetic_time_budget.py +0 -0
  106. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/time_budget_functions.py +0 -0
  107. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/time_budget_widget.py +0 -0
  108. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/transitions.py +0 -0
  109. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/utilities.py +0 -0
  110. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/video_equalizer.py +0 -0
  111. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/video_equalizer_ui.py +0 -0
  112. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/video_operations.py +0 -0
  113. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/vlc_local.py +0 -0
  114. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris/write_event.py +0 -0
  115. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris_behav_obs.egg-info/SOURCES.txt +0 -0
  116. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris_behav_obs.egg-info/dependency_links.txt +0 -0
  117. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris_behav_obs.egg-info/entry_points.txt +0 -0
  118. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris_behav_obs.egg-info/requires.txt +0 -0
  119. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/boris_behav_obs.egg-info/top_level.txt +0 -0
  120. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/setup.cfg +0 -0
  121. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/tests/test_db_functions.py +0 -0
  122. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/tests/test_export_observation.py +0 -0
  123. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/tests/test_irr.py +0 -0
  124. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/tests/test_observation_gui.py +0 -0
  125. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/tests/test_otx_parser.py +0 -0
  126. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/tests/test_preferences_gui.py +0 -0
  127. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/tests/test_project_functions.py +0 -0
  128. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/tests/test_time_budget.py +0 -0
  129. {boris_behav_obs-8.26 → boris_behav_obs-8.26.1}/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.26
3
+ Version: 8.26.1
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
@@ -43,6 +43,10 @@ from . import utilities as util
43
43
 
44
44
 
45
45
  class ModifiersList(QDialog):
46
+ """
47
+ class for selection the modifier(s)
48
+ """
49
+
46
50
  def __init__(self, code: str, modifiers_dict: dict, currentModifier: str):
47
51
  super().__init__()
48
52
  self.setWindowTitle(cfg.programName)
@@ -60,11 +64,11 @@ class ModifiersList(QDialog):
60
64
  self.modifiersSetNumber = 0
61
65
 
62
66
  for idx in util.sorted_keys(modifiers_dict):
63
- if self.modifiers_dict[idx]["type"] not in [
67
+ if self.modifiers_dict[idx]["type"] not in (
64
68
  cfg.SINGLE_SELECTION,
65
69
  cfg.MULTI_SELECTION,
66
70
  cfg.NUMERIC_MODIFIER,
67
- ]:
71
+ ):
68
72
  continue
69
73
 
70
74
  V2layout = QVBoxLayout()
@@ -75,10 +79,13 @@ class ModifiersList(QDialog):
75
79
  lb.setText(f"Modifier <b>{self.modifiers_dict[idx]['name']}</b>")
76
80
  V2layout.addWidget(lb)
77
81
 
78
- if self.modifiers_dict[idx]["type"] in [
82
+ lb = QLabel(f"<small>{self.modifiers_dict[idx]['description']}</small>")
83
+ V2layout.addWidget(lb)
84
+
85
+ if self.modifiers_dict[idx]["type"] in (
79
86
  cfg.SINGLE_SELECTION,
80
87
  cfg.MULTI_SELECTION,
81
- ]:
88
+ ):
82
89
  lw = QListWidget()
83
90
  self.modifiers_dict[idx]["widget"] = lw
84
91
  lw.setObjectName(f"lw_modifiers_({self.modifiers_dict[idx]['type']})")
@@ -114,6 +121,7 @@ class ModifiersList(QDialog):
114
121
  if self.modifiers_dict[idx]["type"] in [cfg.NUMERIC_MODIFIER]:
115
122
  le = QLineEdit()
116
123
  self.modifiers_dict[idx]["widget"] = le
124
+ le.setObjectName(f"le_modifiers_({self.modifiers_dict[idx]['type']})")
117
125
 
118
126
  if currentModifierList != [""] and currentModifierList[int(idx)] != "None":
119
127
  le.setText(currentModifierList[int(idx)])
@@ -160,10 +168,14 @@ class ModifiersList(QDialog):
160
168
 
161
169
  # accept and close dialog if enter pressed
162
170
  if ek == Qt.Key_Enter or ek == Qt.Key_Return: # enter or enter from numeric pad
163
- self.accept()
171
+ if not self.pbOK_clicked():
172
+ return False
164
173
  return True
165
174
 
175
+ modifiersSetIndex = 0
166
176
  for widget in self.children():
177
+ if "_modifiers" in widget.objectName():
178
+ modifiersSetIndex = modifiersSetIndex + 1
167
179
  if "lw_modifiers" in widget.objectName():
168
180
  if self.modifiersSetNumber == 1:
169
181
  # check if modifiers have code
@@ -172,7 +184,7 @@ class ModifiersList(QDialog):
172
184
  break
173
185
  else:
174
186
  # modifiers have no associated code: the modifier starting with hit key will be selected
175
- if ek not in [Qt.Key_Down, Qt.Key_Up]:
187
+ if ek not in (Qt.Key_Down, Qt.Key_Up):
176
188
  if ek == Qt.Key_Space and f"({cfg.MULTI_SELECTION})" in widget.objectName(): # checking using SPACE bar
177
189
  if widget.item(widget.currentRow()).checkState() == Qt.Checked:
178
190
  widget.item(widget.currentRow()).setCheckState(Qt.Unchecked)
@@ -198,6 +210,7 @@ class ModifiersList(QDialog):
198
210
  return
199
211
 
200
212
  for index in range(widget.count()):
213
+ # check function kesy (F1, F2...)
201
214
  if ek in cfg.function_keys:
202
215
  if f"({cfg.function_keys[ek]})" in widget.item(index).text().upper():
203
216
  if f"({cfg.SINGLE_SELECTION})" in widget.objectName():
@@ -206,6 +219,10 @@ class ModifiersList(QDialog):
206
219
  if self.modifiersSetNumber == 1:
207
220
  self.accept()
208
221
  return True
222
+ # else move to next set of mofifiers
223
+ elif modifiersSetIndex != self.modifiersSetNumber:
224
+ widget.parent().focusNextChild()
225
+ return True
209
226
 
210
227
  if f"({cfg.MULTI_SELECTION})" in widget.objectName():
211
228
  if widget.item(index).checkState() == Qt.Checked:
@@ -220,6 +237,10 @@ class ModifiersList(QDialog):
220
237
  if self.modifiersSetNumber == 1:
221
238
  self.accept()
222
239
  return True
240
+ # else move to next set of mofifiers
241
+ elif modifiersSetIndex != self.modifiersSetNumber:
242
+ widget.parent().focusNextChild()
243
+ return True
223
244
 
224
245
  if f"({cfg.MULTI_SELECTION})" in widget.objectName():
225
246
  if widget.item(index).checkState() == Qt.Checked:
@@ -271,6 +292,9 @@ class ModifiersList(QDialog):
271
292
  return self.modifiers_dict
272
293
 
273
294
  def pbOK_clicked(self):
295
+ """
296
+ OK button is clicked
297
+ """
274
298
  for idx in util.sorted_keys(self.modifiers_dict):
275
299
  if self.modifiers_dict[idx]["type"] == cfg.NUMERIC_MODIFIER:
276
300
  if self.modifiers_dict[idx]["widget"].text():
@@ -280,8 +304,8 @@ class ModifiersList(QDialog):
280
304
  QMessageBox.warning(
281
305
  self,
282
306
  cfg.programName,
283
- "<b>{}</b> is not a numeric value".format(self.modifiers_dict[idx]["widget"].text()),
307
+ f"<b>{self.modifiers_dict[idx]['widget'].text()}</b> is not a numeric value",
284
308
  )
285
- return
309
+ return False
286
310
 
287
311
  self.accept()
@@ -20,5 +20,5 @@ This file is part of BORIS.
20
20
 
21
21
  """
22
22
 
23
- __version__ = "8.26"
24
- __version_date__ = "2024-06-04"
23
+ __version__ = "8.26.1"
24
+ __version_date__ = "2024-06-06"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: boris-behav-obs
3
- Version: 8.26
3
+ Version: 8.26.1
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.26"
3
+ version = "8.26.1"
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.26"
61
+ current_version = "8.26.1"
62
62
  version_pattern = "MAJOR.MINOR.PATCH"
63
63
 
64
64