boris-behav-obs 9.1__tar.gz → 9.1.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 (119) hide show
  1. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/PKG-INFO +1 -1
  2. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/connections.py +3 -1
  3. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/dialog.py +9 -5
  4. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/edit_event.py +3 -8
  5. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/event_operations.py +17 -9
  6. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/version.py +2 -2
  7. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris_behav_obs.egg-info/PKG-INFO +1 -1
  8. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/pyproject.toml +2 -2
  9. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/LICENSE.TXT +0 -0
  10. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/MANIFEST.in +0 -0
  11. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/README.TXT +0 -0
  12. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/README.md +0 -0
  13. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/__init__.py +0 -0
  14. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/__main__.py +0 -0
  15. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/about.py +0 -0
  16. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/add_modifier.py +0 -0
  17. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/add_modifier_ui.py +0 -0
  18. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/advanced_event_filtering.py +0 -0
  19. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/analysis_plugins/__init__.py +0 -0
  20. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/analysis_plugins/number_of_occurences.py +0 -0
  21. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/analysis_plugins/number_of_occurences_by_independent_variable.py +0 -0
  22. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/analysis_plugins/time_budget.py +0 -0
  23. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/behav_coding_map_creator.py +0 -0
  24. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/behavior_binary_table.py +0 -0
  25. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/behaviors_coding_map.py +0 -0
  26. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/boris_cli.py +0 -0
  27. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/cmd_arguments.py +0 -0
  28. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/coding_pad.py +0 -0
  29. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/config.py +0 -0
  30. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/config_file.py +0 -0
  31. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/converters.py +0 -0
  32. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/converters_ui.py +0 -0
  33. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/cooccurence.py +0 -0
  34. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/core.py +0 -0
  35. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/core_qrc.py +0 -0
  36. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/core_ui.py +0 -0
  37. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/db_functions.py +0 -0
  38. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/dev.py +0 -0
  39. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/duration_widget.py +0 -0
  40. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/edit_event_ui.py +0 -0
  41. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/events_cursor.py +0 -0
  42. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/events_snapshots.py +0 -0
  43. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/exclusion_matrix.py +0 -0
  44. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/export_events.py +0 -0
  45. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/export_observation.py +0 -0
  46. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/external_processes.py +0 -0
  47. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/geometric_measurement.py +0 -0
  48. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/gui_utilities.py +0 -0
  49. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/image_overlay.py +0 -0
  50. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/import_observations.py +0 -0
  51. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/irr.py +0 -0
  52. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/latency.py +0 -0
  53. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/map_creator.py +0 -0
  54. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/measurement_widget.py +0 -0
  55. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/media_file.py +0 -0
  56. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/menu_options.py +0 -0
  57. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/modifiers_coding_map.py +0 -0
  58. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/mpv-1.0.3.py +0 -0
  59. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/mpv.py +0 -0
  60. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/mpv2.py +0 -0
  61. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/observation.py +0 -0
  62. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/observation_operations.py +0 -0
  63. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/observation_ui.py +0 -0
  64. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/observations_list.py +0 -0
  65. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/otx_parser.py +0 -0
  66. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/param_panel.py +0 -0
  67. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/param_panel_ui.py +0 -0
  68. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/player_dock_widget.py +0 -0
  69. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/plot_data_module.py +0 -0
  70. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/plot_events.py +0 -0
  71. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/plot_events_rt.py +0 -0
  72. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/plot_spectrogram_rt.py +0 -0
  73. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/plot_waveform_rt.py +0 -0
  74. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/plugins.py +0 -0
  75. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/portion/__init__.py +0 -0
  76. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/portion/const.py +0 -0
  77. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/portion/dict.py +0 -0
  78. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/portion/func.py +0 -0
  79. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/portion/interval.py +0 -0
  80. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/portion/io.py +0 -0
  81. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/preferences.py +0 -0
  82. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/preferences_ui.py +0 -0
  83. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/project.py +0 -0
  84. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/project_functions.py +0 -0
  85. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/project_import_export.py +0 -0
  86. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/project_ui.py +0 -0
  87. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/qrc_boris.py +0 -0
  88. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/qrc_boris5.py +0 -0
  89. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/select_modifiers.py +0 -0
  90. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/select_observations.py +0 -0
  91. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/select_subj_behav.py +0 -0
  92. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/state_events.py +0 -0
  93. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/subjects_pad.py +0 -0
  94. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/synthetic_time_budget.py +0 -0
  95. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/time_budget_functions.py +0 -0
  96. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/time_budget_widget.py +0 -0
  97. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/transitions.py +0 -0
  98. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/utilities.py +0 -0
  99. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/video_equalizer.py +0 -0
  100. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/video_equalizer_ui.py +0 -0
  101. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/video_operations.py +0 -0
  102. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/view_df.py +0 -0
  103. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/view_df_ui.py +0 -0
  104. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris/write_event.py +0 -0
  105. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris_behav_obs.egg-info/SOURCES.txt +0 -0
  106. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris_behav_obs.egg-info/dependency_links.txt +0 -0
  107. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris_behav_obs.egg-info/entry_points.txt +0 -0
  108. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris_behav_obs.egg-info/requires.txt +0 -0
  109. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/boris_behav_obs.egg-info/top_level.txt +0 -0
  110. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/setup.cfg +0 -0
  111. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/tests/test_db_functions.py +0 -0
  112. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/tests/test_export_observation.py +0 -0
  113. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/tests/test_irr.py +0 -0
  114. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/tests/test_observation_gui.py +0 -0
  115. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/tests/test_otx_parser.py +0 -0
  116. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/tests/test_preferences_gui.py +0 -0
  117. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/tests/test_project_functions.py +0 -0
  118. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/tests/test_time_budget.py +0 -0
  119. {boris_behav_obs-9.1 → boris_behav_obs-9.1.1}/tests/test_utilities.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: boris-behav-obs
3
- Version: 9.1
3
+ Version: 9.1.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
@@ -160,7 +160,9 @@ def connections(self):
160
160
  self.actionAll_transitions.triggered.connect(lambda: transitions.transitions_matrix(self, "frequency"))
161
161
  self.actionNumber_of_transitions.triggered.connect(lambda: transitions.transitions_matrix(self, "number"))
162
162
 
163
- self.actionFrequencies_of_transitions_after_behaviors.triggered.connect(lambda: self.transitions_matrix("frequencies_after_behaviors"))
163
+ self.actionFrequencies_of_transitions_after_behaviors.triggered.connect(
164
+ lambda: transitions.transitions_matrix(self, "frequencies_after_behaviors")
165
+ )
164
166
 
165
167
  # menu playback
166
168
  self.actionJumpTo.triggered.connect(self.jump_to)
@@ -20,15 +20,16 @@ This file is part of BORIS.
20
20
 
21
21
  """
22
22
 
23
+ from decimal import Decimal as dec
24
+ from typing import Union
25
+ import datetime as dt
23
26
  import logging
24
- import sys
27
+ import math
25
28
  import pathlib as pl
26
- import traceback
27
29
  import platform
28
- import datetime as dt
29
30
  import subprocess
30
- from decimal import Decimal as dec
31
- from typing import Union
31
+ import sys
32
+ import traceback
32
33
 
33
34
  from PySide6.QtCore import Qt, Signal, qVersion, QRect, QTime, QDateTime, QSize
34
35
  from PySide6.QtWidgets import (
@@ -409,6 +410,9 @@ class get_time_widget(QWidget):
409
410
  set time on time widget
410
411
  """
411
412
 
413
+ if math.isnan(new_time):
414
+ return
415
+
412
416
  self.pb_sign.setText("-" if new_time < 0 else "+")
413
417
 
414
418
  # seconds
@@ -21,6 +21,7 @@ This file is part of BORIS.
21
21
  """
22
22
 
23
23
  from decimal import Decimal as dec
24
+ import math
24
25
 
25
26
  from PySide6.QtWidgets import (
26
27
  QDialog,
@@ -67,14 +68,7 @@ class DlgEditEvent(QDialog, Ui_Form):
67
68
  for w in (self.lb_frame_idx, self.sb_frame_idx, self.cb_set_frame_idx_na):
68
69
  w.setVisible(False)
69
70
 
70
- if (observation_type in (cfg.LIVE, cfg.MEDIA)) or (observation_type == cfg.IMAGES and self.time_value != cfg.NA):
71
- # self.time_widget = duration_widget.Duration_widget(self.time_value)
72
- # if time_format == cfg.S:
73
- # self.time_widget.set_format_s()
74
- # if time_format == cfg.HHMMSS:
75
- # self.time_widget.set_format_hhmmss()
76
-
77
- # future time widget
71
+ if (observation_type in (cfg.LIVE, cfg.MEDIA)) or (observation_type == cfg.IMAGES and not math.isnan(self.time_value)):
78
72
  self.time_widget = dialog.get_time_widget(self.time_value)
79
73
 
80
74
  if time_format == cfg.S:
@@ -87,6 +81,7 @@ class DlgEditEvent(QDialog, Ui_Form):
87
81
  self.horizontalLayout_2.insertWidget(0, self.time_widget)
88
82
 
89
83
  if observation_type == cfg.IMAGES:
84
+ self.time_widget = dialog.get_time_widget(self.time_value)
90
85
  # hide frame index widgets
91
86
  for w in (self.lb_frame_idx, self.sb_frame_idx, self.cb_set_frame_idx_na, self.pb_set_to_current_time):
92
87
  w.setVisible(False)
@@ -78,10 +78,13 @@ def add_event(self):
78
78
  )
79
79
  editWindow.setWindowTitle("Add a new event")
80
80
 
81
- sortedSubjects = [""] + sorted([self.pj[cfg.SUBJECTS][x][cfg.SUBJECT_NAME] for x in self.pj[cfg.SUBJECTS]])
81
+ sortedSubjects = [cfg.NO_FOCAL_SUBJECT] + sorted([self.pj[cfg.SUBJECTS][x][cfg.SUBJECT_NAME] for x in self.pj[cfg.SUBJECTS]])
82
+
83
+ print(f"{sortedSubjects=}")
82
84
 
83
85
  editWindow.cobSubject.addItems(sortedSubjects)
84
- editWindow.cobSubject.setCurrentIndex(editWindow.cobSubject.findText(self.currentSubject, Qt.MatchFixedString))
86
+ if self.currentSubject:
87
+ editWindow.cobSubject.setCurrentIndex(editWindow.cobSubject.findText(self.currentSubject, Qt.MatchFixedString))
85
88
 
86
89
  sortedCodes = sorted([self.pj[cfg.ETHOGRAM][x][cfg.BEHAVIOR_CODE] for x in self.pj[cfg.ETHOGRAM]])
87
90
 
@@ -103,7 +106,9 @@ def add_event(self):
103
106
  if self.pj[cfg.ETHOGRAM][idx][cfg.BEHAVIOR_CODE] == editWindow.cobCode.currentText():
104
107
  event = self.full_event(idx)
105
108
 
106
- event[cfg.SUBJECT] = editWindow.cobSubject.currentText()
109
+ event[cfg.SUBJECT] = (
110
+ "" if editWindow.cobSubject.currentText() == cfg.NO_FOCAL_SUBJECT else editWindow.cobSubject.currentText()
111
+ )
107
112
  if editWindow.leComment.toPlainText():
108
113
  event[cfg.COMMENT] = editWindow.leComment.toPlainText()
109
114
 
@@ -152,7 +157,9 @@ def add_event(self):
152
157
  if self.pj[cfg.ETHOGRAM][idx][cfg.BEHAVIOR_CODE] == editWindow.cobCode.currentText():
153
158
  event = self.full_event(idx)
154
159
 
155
- event[cfg.SUBJECT] = editWindow.cobSubject.currentText()
160
+ event[cfg.SUBJECT] = (
161
+ "" if editWindow.cobSubject.currentText() == cfg.NO_FOCAL_SUBJECT else editWindow.cobSubject.currentText()
162
+ )
156
163
  if editWindow.leComment.toPlainText():
157
164
  event[cfg.COMMENT] = editWindow.leComment.toPlainText()
158
165
 
@@ -684,10 +691,9 @@ def edit_event(self):
684
691
  if self.pj[cfg.ETHOGRAM][key][cfg.BEHAVIOR_CODE] == edit_window.cobCode.currentText():
685
692
  event = self.full_event(key)
686
693
  # subject
687
- if edit_window.cobSubject.currentText() == cfg.NO_FOCAL_SUBJECT:
688
- event[cfg.SUBJECT] = ""
689
- else:
690
- event[cfg.SUBJECT] = edit_window.cobSubject.currentText()
694
+ event[cfg.SUBJECT] = (
695
+ "" if edit_window.cobSubject.currentText() == cfg.NO_FOCAL_SUBJECT else edit_window.cobSubject.currentText()
696
+ )
691
697
 
692
698
  event[cfg.COMMENT] = edit_window.leComment.toPlainText()
693
699
 
@@ -746,7 +752,9 @@ def edit_event(self):
746
752
  else:
747
753
  event[cfg.TIME] = edit_window.time_widget.get_time()
748
754
 
749
- event[cfg.SUBJECT] = edit_window.cobSubject.currentText()
755
+ event[cfg.SUBJECT] = (
756
+ "" if edit_window.cobSubject.currentText() == cfg.NO_FOCAL_SUBJECT else edit_window.cobSubject.currentText()
757
+ )
750
758
  event[cfg.COMMENT] = edit_window.leComment.toPlainText()
751
759
  event["row"] = pj_event_idx
752
760
  event["original_modifiers"] = self.pj[cfg.OBSERVATIONS][self.observationId][cfg.EVENTS][pj_event_idx][
@@ -20,5 +20,5 @@ This file is part of BORIS.
20
20
 
21
21
  """
22
22
 
23
- __version__ = "9.1"
24
- __version_date__ = "2025-03-10"
23
+ __version__ = "9.1.1"
24
+ __version_date__ = "2025-03-12"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: boris-behav-obs
3
- Version: 9.1
3
+ Version: 9.1.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 = "9.1"
3
+ version = "9.1.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"
@@ -55,7 +55,7 @@ line-length = 140
55
55
  exclude = ["*_ui.py", "mpv*"]
56
56
 
57
57
  [tool.bumpver]
58
- current_version = "9.1"
58
+ current_version = "9.1.1"
59
59
  version_pattern = "MAJOR.MINOR.PATCH"
60
60
 
61
61
 
File without changes
File without changes