boris-behav-obs 9.0.7__py2.py3-none-any.whl → 9.1__py2.py3-none-any.whl
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.
- boris/advanced_event_filtering.py +9 -4
- boris/analysis_plugins/number_of_occurences.py +1 -2
- boris/analysis_plugins/time_budget.py +1 -3
- boris/behavior_binary_table.py +12 -0
- boris/config.py +5 -4
- boris/config_file.py +8 -8
- boris/cooccurence.py +9 -1
- boris/core.py +178 -62
- boris/event_operations.py +3 -5
- boris/events_snapshots.py +5 -5
- boris/export_events.py +29 -13
- boris/export_observation.py +17 -2
- boris/observation_operations.py +37 -1
- boris/param_panel.py +12 -0
- boris/param_panel_ui.py +6 -0
- boris/plot_events.py +13 -6
- boris/project_functions.py +22 -12
- boris/project_import_export.py +9 -9
- boris/select_observations.py +1 -3
- boris/select_subj_behav.py +12 -1
- boris/synthetic_time_budget.py +8 -0
- boris/time_budget_functions.py +20 -15
- boris/time_budget_widget.py +18 -7
- boris/utilities.py +4 -4
- boris/version.py +2 -2
- boris/write_event.py +2 -1
- {boris_behav_obs-9.0.7.dist-info → boris_behav_obs-9.1.dist-info}/METADATA +1 -1
- {boris_behav_obs-9.0.7.dist-info → boris_behav_obs-9.1.dist-info}/RECORD +32 -32
- {boris_behav_obs-9.0.7.dist-info → boris_behav_obs-9.1.dist-info}/WHEEL +1 -1
- {boris_behav_obs-9.0.7.dist-info → boris_behav_obs-9.1.dist-info}/LICENSE.TXT +0 -0
- {boris_behav_obs-9.0.7.dist-info → boris_behav_obs-9.1.dist-info}/entry_points.txt +0 -0
- {boris_behav_obs-9.0.7.dist-info → boris_behav_obs-9.1.dist-info}/top_level.txt +0 -0
boris/select_subj_behav.py
CHANGED
|
@@ -38,6 +38,8 @@ def choose_obs_subj_behav_category(
|
|
|
38
38
|
selected_observations: list,
|
|
39
39
|
start_coding: Optional[dec] = dec("NaN"), # Union[..., None]
|
|
40
40
|
end_coding: Optional[dec] = dec("NaN"),
|
|
41
|
+
start_interval: Optional[dec] = dec("NaN"),
|
|
42
|
+
end_interval: Optional[dec] = dec("NaN"),
|
|
41
43
|
maxTime: Optional[dec] = None,
|
|
42
44
|
show_include_modifiers: bool = True,
|
|
43
45
|
show_exclude_non_coded_behaviors: bool = True,
|
|
@@ -66,7 +68,7 @@ def choose_obs_subj_behav_category(
|
|
|
66
68
|
"selected behaviors": selectedBehaviors,
|
|
67
69
|
"include modifiers": True/False,
|
|
68
70
|
"exclude behaviors": True/False,
|
|
69
|
-
"time": TIME_FULL_OBS / TIME_EVENTS / TIME_ARBITRARY_INTERVAL
|
|
71
|
+
"time": TIME_FULL_OBS / TIME_EVENTS / TIME_ARBITRARY_INTERVAL / TIME_OBS_INTERVAL
|
|
70
72
|
"start time": startTime,
|
|
71
73
|
"end time": endTime
|
|
72
74
|
}
|
|
@@ -97,6 +99,8 @@ def choose_obs_subj_behav_category(
|
|
|
97
99
|
paramPanelWindow.media_duration = maxTime
|
|
98
100
|
paramPanelWindow.start_coding = start_coding
|
|
99
101
|
paramPanelWindow.end_coding = end_coding
|
|
102
|
+
paramPanelWindow.start_interval = start_interval
|
|
103
|
+
paramPanelWindow.end_interval = end_interval
|
|
100
104
|
|
|
101
105
|
if self.timeFormat == cfg.S:
|
|
102
106
|
paramPanelWindow.start_time.rb_seconds.setChecked(True)
|
|
@@ -112,6 +116,7 @@ def choose_obs_subj_behav_category(
|
|
|
112
116
|
paramPanelWindow.rb_observed_events.setEnabled(False)
|
|
113
117
|
paramPanelWindow.frm_time_interval.setVisible(False)
|
|
114
118
|
paramPanelWindow.rb_user_defined.setVisible(False)
|
|
119
|
+
paramPanelWindow.rb_obs_interval.setVisible(False)
|
|
115
120
|
paramPanelWindow.rb_media_duration.setVisible(False)
|
|
116
121
|
else:
|
|
117
122
|
paramPanelWindow.frm_time_interval.setEnabled(False)
|
|
@@ -242,6 +247,10 @@ def choose_obs_subj_behav_category(
|
|
|
242
247
|
)
|
|
243
248
|
return {cfg.SELECTED_SUBJECTS: [], cfg.SELECTED_BEHAVIORS: []}
|
|
244
249
|
|
|
250
|
+
elif paramPanelWindow.rb_obs_interval.isChecked() and not ((start_interval is None) or start_interval.is_nan()):
|
|
251
|
+
startTime = paramPanelWindow.start_time.get_time()
|
|
252
|
+
endTime = paramPanelWindow.end_time.get_time()
|
|
253
|
+
|
|
245
254
|
else:
|
|
246
255
|
startTime = None
|
|
247
256
|
endTime = None
|
|
@@ -255,6 +264,8 @@ def choose_obs_subj_behav_category(
|
|
|
255
264
|
time_param = cfg.TIME_FULL_OBS
|
|
256
265
|
if paramPanelWindow.rb_observed_events.isChecked():
|
|
257
266
|
time_param = cfg.TIME_EVENTS
|
|
267
|
+
if paramPanelWindow.rb_obs_interval.isChecked():
|
|
268
|
+
time_param = cfg.TIME_OBS_INTERVAL
|
|
258
269
|
if paramPanelWindow.rb_user_defined.isChecked():
|
|
259
270
|
time_param = cfg.TIME_ARBITRARY_INTERVAL
|
|
260
271
|
|
boris/synthetic_time_budget.py
CHANGED
|
@@ -64,11 +64,15 @@ def synthetic_time_budget(self) -> None:
|
|
|
64
64
|
|
|
65
65
|
start_coding, end_coding, _ = observation_operations.coding_time(self.pj[cfg.OBSERVATIONS], selected_observations)
|
|
66
66
|
|
|
67
|
+
start_interval, end_interval = observation_operations.time_intervals_range(self.pj[cfg.OBSERVATIONS], selected_observations)
|
|
68
|
+
|
|
67
69
|
synth_tb_param = select_subj_behav.choose_obs_subj_behav_category(
|
|
68
70
|
self,
|
|
69
71
|
selected_observations,
|
|
70
72
|
start_coding=start_coding,
|
|
71
73
|
end_coding=end_coding,
|
|
74
|
+
start_interval=start_interval,
|
|
75
|
+
end_interval=end_interval,
|
|
72
76
|
maxTime=max_media_duration_all_obs,
|
|
73
77
|
show_exclude_non_coded_behaviors=False,
|
|
74
78
|
by_category=False,
|
|
@@ -179,6 +183,8 @@ def synthetic_binned_time_budget(self) -> None:
|
|
|
179
183
|
|
|
180
184
|
start_coding, end_coding, _ = observation_operations.coding_time(self.pj[cfg.OBSERVATIONS], selected_observations)
|
|
181
185
|
|
|
186
|
+
start_interval, end_interval = observation_operations.time_intervals_range(self.pj[cfg.OBSERVATIONS], selected_observations)
|
|
187
|
+
|
|
182
188
|
# exit with message if events do not have timestamp
|
|
183
189
|
if start_coding.is_nan():
|
|
184
190
|
QMessageBox.critical(
|
|
@@ -195,6 +201,8 @@ def synthetic_binned_time_budget(self) -> None:
|
|
|
195
201
|
selected_observations,
|
|
196
202
|
start_coding=start_coding,
|
|
197
203
|
end_coding=end_coding,
|
|
204
|
+
start_interval=start_interval,
|
|
205
|
+
end_interval=end_interval,
|
|
198
206
|
maxTime=max_media_duration_all_obs,
|
|
199
207
|
show_exclude_non_coded_behaviors=False,
|
|
200
208
|
by_category=False,
|
boris/time_budget_functions.py
CHANGED
|
@@ -35,14 +35,14 @@ from . import project_functions
|
|
|
35
35
|
from . import observation_operations
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
def default_value(ethogram: dict,
|
|
38
|
+
def default_value(ethogram: dict, behavior_code: str, param):
|
|
39
39
|
"""
|
|
40
40
|
return value for duration in case of point event
|
|
41
41
|
"""
|
|
42
42
|
default_value_ = 0.0
|
|
43
|
-
|
|
43
|
+
behavior_type = project_functions.event_type(behavior_code, ethogram)
|
|
44
44
|
|
|
45
|
-
if
|
|
45
|
+
if behavior_type in cfg.POINT_EVENT_TYPES and param in (
|
|
46
46
|
"duration",
|
|
47
47
|
"duration mean",
|
|
48
48
|
"duration stdev",
|
|
@@ -50,7 +50,7 @@ def default_value(ethogram: dict, behav: str, param):
|
|
|
50
50
|
):
|
|
51
51
|
default_value_ = cfg.NA
|
|
52
52
|
|
|
53
|
-
if
|
|
53
|
+
if behavior_type in cfg.STATE_EVENT_TYPES and param in (
|
|
54
54
|
"duration mean",
|
|
55
55
|
"duration stdev",
|
|
56
56
|
):
|
|
@@ -259,6 +259,13 @@ def synthetic_time_budget_bin(pj: dict, selected_observations: list, parameters_
|
|
|
259
259
|
min_time = dec(start_time)
|
|
260
260
|
max_time = dec(end_time)
|
|
261
261
|
|
|
262
|
+
if time_interval == cfg.TIME_OBS_INTERVAL:
|
|
263
|
+
obs_interval = pj[cfg.OBSERVATIONS][obs_id][cfg.OBSERVATION_TIME_INTERVAL]
|
|
264
|
+
offset = pj[cfg.OBSERVATIONS][obs_id][cfg.TIME_OFFSET]
|
|
265
|
+
min_time = dec(obs_interval[0]) + offset
|
|
266
|
+
# Use max media duration for max time if no interval is defined (=0)
|
|
267
|
+
max_time = dec(obs_interval[1]) + offset if obs_interval[1] != 0 else dec(obs_length)
|
|
268
|
+
|
|
262
269
|
events_interval = {}
|
|
263
270
|
mem_events_interval = {}
|
|
264
271
|
|
|
@@ -324,7 +331,7 @@ def synthetic_time_budget_bin(pj: dict, selected_observations: list, parameters_
|
|
|
324
331
|
behaviors[subject][behav]["number"] = nocc
|
|
325
332
|
|
|
326
333
|
behav_type = project_functions.event_type(behav[0], pj[cfg.ETHOGRAM])
|
|
327
|
-
if behav_type
|
|
334
|
+
if behav_type in cfg.STATE_EVENT_TYPES:
|
|
328
335
|
dur = interval_len(interval_intersec)
|
|
329
336
|
behaviors[subject][behav]["duration"] = f"{dur:.3f}"
|
|
330
337
|
behaviors[subject][behav]["duration mean"] = f"{interval_mean(interval_intersec):.3f}"
|
|
@@ -336,7 +343,7 @@ def synthetic_time_budget_bin(pj: dict, selected_observations: list, parameters_
|
|
|
336
343
|
proportion = dur / ((time_bin_end - time_bin_start) - time_to_subtract)
|
|
337
344
|
behaviors[subject][behav]["proportion of time"] = f"{proportion:.3f}"
|
|
338
345
|
|
|
339
|
-
if behav_type
|
|
346
|
+
if behav_type in cfg.POINT_EVENT_TYPES:
|
|
340
347
|
behaviors[subject][behav]["duration"] = cfg.NA
|
|
341
348
|
behaviors[subject][behav]["duration mean"] = cfg.NA
|
|
342
349
|
behaviors[subject][behav]["duration stdev"] = cfg.NA
|
|
@@ -696,7 +703,7 @@ def time_budget_analysis(
|
|
|
696
703
|
|
|
697
704
|
if not distinct_modifiers:
|
|
698
705
|
if not parameters[cfg.EXCLUDE_BEHAVIORS]:
|
|
699
|
-
if
|
|
706
|
+
if project_functions.event_type(behavior, ethogram) in cfg.STATE_EVENT_TYPES:
|
|
700
707
|
# check if observation from pictures
|
|
701
708
|
if parameters["start time"] == dec("0.000") and parameters["end time"] == dec("0.000"):
|
|
702
709
|
duration = cfg.NA
|
|
@@ -732,10 +739,8 @@ def time_budget_analysis(
|
|
|
732
739
|
)
|
|
733
740
|
continue
|
|
734
741
|
|
|
735
|
-
if
|
|
742
|
+
if project_functions.event_type(behavior, ethogram) in cfg.POINT_EVENT_TYPES:
|
|
736
743
|
for modifier in distinct_modifiers:
|
|
737
|
-
print(f"{modifier=}")
|
|
738
|
-
|
|
739
744
|
cursor.execute(
|
|
740
745
|
(
|
|
741
746
|
"SELECT occurence, observation FROM events "
|
|
@@ -806,7 +811,7 @@ def time_budget_analysis(
|
|
|
806
811
|
}
|
|
807
812
|
)
|
|
808
813
|
|
|
809
|
-
if
|
|
814
|
+
if project_functions.event_type(behavior, ethogram) in cfg.STATE_EVENT_TYPES:
|
|
810
815
|
for modifier in distinct_modifiers:
|
|
811
816
|
cursor.execute(
|
|
812
817
|
(
|
|
@@ -920,9 +925,9 @@ def time_budget_analysis(
|
|
|
920
925
|
)
|
|
921
926
|
|
|
922
927
|
else: # no modifiers
|
|
923
|
-
if
|
|
928
|
+
if project_functions.event_type(behavior, ethogram) in cfg.POINT_EVENT_TYPES:
|
|
924
929
|
cursor.execute(
|
|
925
|
-
("SELECT occurence, observation FROM events
|
|
930
|
+
("SELECT occurence, observation FROM events WHERE subject = ? AND code = ? ORDER BY observation, occurence"),
|
|
926
931
|
(subject, behavior),
|
|
927
932
|
)
|
|
928
933
|
|
|
@@ -985,7 +990,7 @@ def time_budget_analysis(
|
|
|
985
990
|
}
|
|
986
991
|
)
|
|
987
992
|
|
|
988
|
-
if
|
|
993
|
+
if project_functions.event_type(behavior, ethogram) in cfg.STATE_EVENT_TYPES:
|
|
989
994
|
cursor.execute(
|
|
990
995
|
("SELECT occurence, observation FROM events WHERE subject = ? AND code = ? ORDER BY observation, occurence"),
|
|
991
996
|
(subject, behavior),
|
|
@@ -1116,7 +1121,7 @@ def time_budget_analysis(
|
|
|
1116
1121
|
if category not in categories[subject]:
|
|
1117
1122
|
categories[subject][category] = {"duration": 0, "number": 0}
|
|
1118
1123
|
|
|
1119
|
-
if
|
|
1124
|
+
if project_functions.event_type(behav["behavior"], ethogram) in cfg.STATE_EVENT_TYPES:
|
|
1120
1125
|
if behav["duration"] not in ("-", cfg.NA) and categories[subject][category]["duration"] not in (
|
|
1121
1126
|
"-",
|
|
1122
1127
|
cfg.NA,
|
boris/time_budget_widget.py
CHANGED
|
@@ -429,11 +429,15 @@ def time_budget(self, mode: str, mode2: str = "list"):
|
|
|
429
429
|
|
|
430
430
|
start_coding, end_coding, _ = observation_operations.coding_time(self.pj[cfg.OBSERVATIONS], selected_observations)
|
|
431
431
|
|
|
432
|
+
start_interval, end_interval = observation_operations.time_intervals_range(self.pj[cfg.OBSERVATIONS], selected_observations)
|
|
433
|
+
|
|
432
434
|
parameters: dict = select_subj_behav.choose_obs_subj_behav_category(
|
|
433
435
|
self,
|
|
434
436
|
selected_observations,
|
|
435
437
|
start_coding=start_coding,
|
|
436
438
|
end_coding=end_coding,
|
|
439
|
+
start_interval=start_interval,
|
|
440
|
+
end_interval=end_interval,
|
|
437
441
|
maxTime=max_media_duration_all_obs,
|
|
438
442
|
by_category=(mode == "by_category"),
|
|
439
443
|
n_observations=len(selected_observations),
|
|
@@ -452,9 +456,9 @@ def time_budget(self, mode: str, mode2: str = "list"):
|
|
|
452
456
|
if start_coding is not None and not start_coding.is_nan():
|
|
453
457
|
cancel_pressed, parameters[cfg.EXCLUDED_BEHAVIORS] = self.filter_behaviors(
|
|
454
458
|
title="Select behaviors to exclude from the total time",
|
|
455
|
-
text=("The duration of the selected behaviors will
|
|
459
|
+
text=("The duration of the selected behaviors will be subtracted from the total time"),
|
|
456
460
|
table="",
|
|
457
|
-
behavior_type=
|
|
461
|
+
behavior_type=cfg.STATE_EVENT_TYPES,
|
|
458
462
|
)
|
|
459
463
|
if cancel_pressed:
|
|
460
464
|
return
|
|
@@ -497,6 +501,13 @@ def time_budget(self, mode: str, mode2: str = "list"):
|
|
|
497
501
|
except Exception:
|
|
498
502
|
max_time = float(obs_length)
|
|
499
503
|
|
|
504
|
+
if parameters[cfg.TIME_INTERVAL] == cfg.TIME_OBS_INTERVAL:
|
|
505
|
+
obs_interval = self.pj[cfg.OBSERVATIONS][obsId][cfg.OBSERVATION_TIME_INTERVAL]
|
|
506
|
+
offset = float(self.pj[cfg.OBSERVATIONS][obsId][cfg.TIME_OFFSET])
|
|
507
|
+
min_time = float(obs_interval[0]) + offset
|
|
508
|
+
# Use max media duration for max time if no interval is defined (=0)
|
|
509
|
+
max_time = float(obs_interval[1]) + offset if obs_interval[1] != 0 else float(obs_length)
|
|
510
|
+
|
|
500
511
|
if parameters[cfg.TIME_INTERVAL] == cfg.TIME_EVENTS: # events duration
|
|
501
512
|
try:
|
|
502
513
|
min_time = float(self.pj[cfg.OBSERVATIONS][obsId][cfg.EVENTS][0][0]) # first event
|
|
@@ -516,7 +527,7 @@ def time_budget(self, mode: str, mode2: str = "list"):
|
|
|
516
527
|
for subj in parameters[cfg.SELECTED_SUBJECTS]:
|
|
517
528
|
for behav in parameters[cfg.SELECTED_BEHAVIORS]:
|
|
518
529
|
# if cfg.POINT in self.eventType(behav).upper():
|
|
519
|
-
if
|
|
530
|
+
if project_functions.event_type(behav, self.pj[cfg.ETHOGRAM]) in cfg.POINT_EVENT_TYPES:
|
|
520
531
|
continue
|
|
521
532
|
|
|
522
533
|
# extract modifiers
|
|
@@ -564,7 +575,7 @@ def time_budget(self, mode: str, mode2: str = "list"):
|
|
|
564
575
|
% 2
|
|
565
576
|
):
|
|
566
577
|
cursor.execute(
|
|
567
|
-
("INSERT INTO events (observation, subject, code, type, modifiers, occurence)
|
|
578
|
+
("INSERT INTO events (observation, subject, code, type, modifiers, occurence) VALUES (?,?,?,?,?,?)"),
|
|
568
579
|
(obsId, subj, behav, "STATE", modifier[0], max_time),
|
|
569
580
|
)
|
|
570
581
|
try:
|
|
@@ -853,7 +864,7 @@ def time_budget(self, mode: str, mode2: str = "list"):
|
|
|
853
864
|
# check intervals
|
|
854
865
|
for subj in parameters[cfg.SELECTED_SUBJECTS]:
|
|
855
866
|
for behav in parameters[cfg.SELECTED_BEHAVIORS]:
|
|
856
|
-
if
|
|
867
|
+
if project_functions.event_type(behav, self.pj[cfg.ETHOGRAM]) in cfg.POINT_EVENT_TYPES:
|
|
857
868
|
continue
|
|
858
869
|
|
|
859
870
|
cursor.execute(
|
|
@@ -877,7 +888,7 @@ def time_budget(self, mode: str, mode2: str = "list"):
|
|
|
877
888
|
% 2
|
|
878
889
|
):
|
|
879
890
|
cursor.execute(
|
|
880
|
-
("INSERT INTO events (observation, subject, code, type, modifiers, occurence)
|
|
891
|
+
("INSERT INTO events (observation, subject, code, type, modifiers, occurence) VALUES (?,?,?,?,?,?)"),
|
|
881
892
|
(obsId, subj, behav, "STATE", modifier[0], min_time),
|
|
882
893
|
)
|
|
883
894
|
if (
|
|
@@ -893,7 +904,7 @@ def time_budget(self, mode: str, mode2: str = "list"):
|
|
|
893
904
|
% 2
|
|
894
905
|
):
|
|
895
906
|
cursor.execute(
|
|
896
|
-
("INSERT INTO events (observation, subject, code, type, modifiers, occurence)
|
|
907
|
+
("INSERT INTO events (observation, subject, code, type, modifiers, occurence) VALUES (?,?,?,?,?,?)"),
|
|
897
908
|
(obsId, subj, behav, cfg.STATE, modifier[0], max_time),
|
|
898
909
|
)
|
|
899
910
|
try:
|
boris/utilities.py
CHANGED
|
@@ -522,7 +522,7 @@ def behav_category_user_color(behavioral_categories: dict, name: str) -> Union[s
|
|
|
522
522
|
|
|
523
523
|
def state_behavior_codes(ethogram: dict) -> list:
|
|
524
524
|
"""
|
|
525
|
-
behavior codes defined as STATE event
|
|
525
|
+
returns a list of behavior codes defined as STATE event
|
|
526
526
|
|
|
527
527
|
Args:
|
|
528
528
|
ethogram (dict): ethogram dictionary
|
|
@@ -531,12 +531,12 @@ def state_behavior_codes(ethogram: dict) -> list:
|
|
|
531
531
|
list: list of behavior codes defined as STATE event
|
|
532
532
|
|
|
533
533
|
"""
|
|
534
|
-
return [ethogram[x][cfg.BEHAVIOR_CODE] for x in ethogram if ethogram[x][cfg.TYPE] in
|
|
534
|
+
return [ethogram[x][cfg.BEHAVIOR_CODE] for x in ethogram if ethogram[x][cfg.TYPE] in cfg.STATE_EVENT_TYPES]
|
|
535
535
|
|
|
536
536
|
|
|
537
537
|
def point_behavior_codes(ethogram: dict) -> list:
|
|
538
538
|
"""
|
|
539
|
-
behavior codes defined as POINT event
|
|
539
|
+
returns a list of behavior codes defined as POINT event
|
|
540
540
|
|
|
541
541
|
Args:
|
|
542
542
|
ethogram (dict): ethogram dictionary
|
|
@@ -545,7 +545,7 @@ def point_behavior_codes(ethogram: dict) -> list:
|
|
|
545
545
|
list: list of behavior codes defined as POINT event
|
|
546
546
|
|
|
547
547
|
"""
|
|
548
|
-
return [ethogram[x][cfg.BEHAVIOR_CODE] for x in ethogram if
|
|
548
|
+
return [ethogram[x][cfg.BEHAVIOR_CODE] for x in ethogram if ethogram[x][cfg.TYPE] in (cfg.POINT_EVENT, cfg.POINT_EVENT_WITH_CODING_MAP)]
|
|
549
549
|
|
|
550
550
|
|
|
551
551
|
def group_events(pj: dict, obs_id: str, include_modifiers: bool = False) -> dict:
|
boris/version.py
CHANGED
boris/write_event.py
CHANGED
|
@@ -381,7 +381,8 @@ def write_event(self, event: dict, mem_time: dec) -> int:
|
|
|
381
381
|
behavior_to_stop = [
|
|
382
382
|
self.pj[cfg.ETHOGRAM][x]
|
|
383
383
|
for x in self.pj[cfg.ETHOGRAM]
|
|
384
|
-
if self.pj[cfg.ETHOGRAM][x][cfg.BEHAVIOR_CODE] == cs
|
|
384
|
+
if self.pj[cfg.ETHOGRAM][x][cfg.BEHAVIOR_CODE] == cs
|
|
385
|
+
and self.pj[cfg.ETHOGRAM][x]["type"] in (cfg.STATE_EVENT, cfg.STATE_EVENT_WITH_CODING_MAP)
|
|
385
386
|
]
|
|
386
387
|
if behavior_to_stop:
|
|
387
388
|
behavior_to_stop = behavior_to_stop[0]
|
|
@@ -3,20 +3,20 @@ boris/__main__.py,sha256=ANjTbXgXDoz2nB1tCtOIllfIVotCa602iebACX7rXaE,764
|
|
|
3
3
|
boris/about.py,sha256=KEUz6nryrg8FceVyFsf8sMz-xWd2cGwIUfuVydHxqC4,5366
|
|
4
4
|
boris/add_modifier.py,sha256=DWqxkKDBm21QH_kPvhpnltwLtFvPxne0VmZ1SY26hj8,26340
|
|
5
5
|
boris/add_modifier_ui.py,sha256=Y7TLO5uS6zW7zpjXmjA4V_VIp_bFDNtjOTbJ9Q6m-mQ,11601
|
|
6
|
-
boris/advanced_event_filtering.py,sha256=
|
|
6
|
+
boris/advanced_event_filtering.py,sha256=DyPHEj2QsTpkkYjBD0iMXqFYCkrMjMcmp1MOuSITtGk,15411
|
|
7
7
|
boris/behav_coding_map_creator.py,sha256=PSEYMLvOwt0HR7H4kQZl6dli3q89wezWMv-Ri3EZWWc,37443
|
|
8
|
-
boris/behavior_binary_table.py,sha256=
|
|
8
|
+
boris/behavior_binary_table.py,sha256=SsaPrXyGXwWYPJ_4R0BlfqeV-q1n0vGNDo0HB3ZmQi8,12426
|
|
9
9
|
boris/behaviors_coding_map.py,sha256=Pat6U2JHxH8epWH42ZlwzZJ0Rmgl-BKQ5KARjp3GbNg,7291
|
|
10
10
|
boris/boris_cli.py,sha256=n0OiVvZM1gM6E7yKaff9wlgmpAGK4TK052VRi8AabJo,13196
|
|
11
11
|
boris/cmd_arguments.py,sha256=oWb-FvhKLbKJhATlTHy9muWu8XnnUfOZ-3Fmz2M8Yzc,1848
|
|
12
12
|
boris/coding_pad.py,sha256=fBKdp7DDyupySJosIYtqNd8s2E-GruzCgVhDFsoVWKE,10986
|
|
13
|
-
boris/config.py,sha256=
|
|
14
|
-
boris/config_file.py,sha256=
|
|
13
|
+
boris/config.py,sha256=cy4MSVFMHYaEHpHdncljuiaMSTpV6rFNm1OyVYF28Bc,17295
|
|
14
|
+
boris/config_file.py,sha256=1-2ZmTvKET57rwrLR1dXblt0AxMpGB1LAiHxu-Sy8es,13543
|
|
15
15
|
boris/connections.py,sha256=7vTfpZjn225uvEx2VQdV1RgCDP1znW0XAMy8Zu-CSpg,19294
|
|
16
16
|
boris/converters.py,sha256=c1Jps-URoglY5ILQHz-pCCf6-4DFUHZLtqr_ofsrFg0,11722
|
|
17
17
|
boris/converters_ui.py,sha256=uu7LOBV_fKv2DBdOqsqPwjGsjgONr5ODBoscAA-EP48,9900
|
|
18
|
-
boris/cooccurence.py,sha256=
|
|
19
|
-
boris/core.py,sha256=
|
|
18
|
+
boris/cooccurence.py,sha256=NV3lPhzKptyYh_pSjx1a_FqwaKstqIwj46GpNcyJ4aY,10236
|
|
19
|
+
boris/core.py,sha256=ncIjy9W5jDKkdmytTNGwq2qscZVlZ0tMd9bOOro_9dg,237708
|
|
20
20
|
boris/core_qrc.py,sha256=T3ki5e2Pj0I0QBGz63MPUgZzl8F_VHZwSq074mRNBDU,650669
|
|
21
21
|
boris/core_ui.py,sha256=SeC26uveDCjrCBLsRPuQ6FaapKfON_HIRcQStEDLhl4,76384
|
|
22
22
|
boris/db_functions.py,sha256=Uw9wWH_Pe-qNzpV1k21YG_jKsoOmfY_iiK_7ARZHGDc,13352
|
|
@@ -25,12 +25,12 @@ boris/dialog.py,sha256=eWoB_uIZLdg1ugmpqW1Fphk3M4AD9vBZoY4wjgdzMgI,32794
|
|
|
25
25
|
boris/duration_widget.py,sha256=GjZgCAMGOcsNjoPiRImEVe6yMkH2vuNoh44ulpd5nlg,6924
|
|
26
26
|
boris/edit_event.py,sha256=hyy43CD5BCBa4iJbzbLQZKiFBVnox7JI0FNP0k-5aSk,7891
|
|
27
27
|
boris/edit_event_ui.py,sha256=vhglQrhkF9tt0HVlkXnkG7symW0eOFA7nhbk6l_qn3k,7772
|
|
28
|
-
boris/event_operations.py,sha256=
|
|
28
|
+
boris/event_operations.py,sha256=fBUJ6iDQDzWEOmFs5c6GREYWWOWDd8p6VySxgPmMyk0,37807
|
|
29
29
|
boris/events_cursor.py,sha256=VPY_ygD0fxE5lp25mcd2l00XQXurCR6hprffF4tKRbU,2078
|
|
30
|
-
boris/events_snapshots.py,sha256=
|
|
30
|
+
boris/events_snapshots.py,sha256=PjWzQvUGQtIcEc_7FDsRphf7fAhhTccQgYc2eQSA65g,27621
|
|
31
31
|
boris/exclusion_matrix.py,sha256=ff88xD6aqc8bpIuj9ZCz9ju_HeqqgibQwoaJrIOJ6RI,5272
|
|
32
|
-
boris/export_events.py,sha256
|
|
33
|
-
boris/export_observation.py,sha256=
|
|
32
|
+
boris/export_events.py,sha256=YoqE0vHXeDMAk28e6rewI3TODdfMr8YbJsNnJqiXv0Y,39720
|
|
33
|
+
boris/export_observation.py,sha256=uPJH_5MXqGm4JSeaSlTikh1i6OKSyLIaZFzS9wp-9qk,50729
|
|
34
34
|
boris/external_processes.py,sha256=vpmhA4Lj2GblBIrDD0YjesB8HPOgx4K9gSWVhTop4Cg,11927
|
|
35
35
|
boris/geometric_measurement.py,sha256=4pI-AYpBSFlJBqS-f8dnkgLtj_Z2E5kwwAdh6WwZ4kk,35049
|
|
36
36
|
boris/gui_utilities.py,sha256=402qypJ44JkcZ1PDeV79j8Z9faQ473TzEkjjO-scBz0,4170
|
|
@@ -47,15 +47,15 @@ boris/mpv-1.0.3.py,sha256=EXRtzQqFjOn4wMC6482Ilq3fNQ9N1GRP1VxwLzdeaBY,88077
|
|
|
47
47
|
boris/mpv.py,sha256=EfzIHjPbgewG4w3smEtqEUPZoVwYmMQkL4Q8ZyW-a58,76410
|
|
48
48
|
boris/mpv2.py,sha256=IUI4t4r9GYX7G5OXTjd3RhMMOkDdfal_15buBgksLsk,92152
|
|
49
49
|
boris/observation.py,sha256=oop08nflDLZAgDbIB8GOiVdTgLhppJ_ODH0Z24cyqvE,57176
|
|
50
|
-
boris/observation_operations.py,sha256=
|
|
50
|
+
boris/observation_operations.py,sha256=w295Vlj6qparn7xcdh1tkwgXXx2QTnq9J6KUJGh1zvg,105533
|
|
51
51
|
boris/observation_ui.py,sha256=DAnU94QBNvkLuHT6AxTwqSk_D_n6VUhSl8PexZv_dUk,33309
|
|
52
52
|
boris/observations_list.py,sha256=NqwECGHtHYmKhSe-qCfqPmJ24SSfzlXvIXS2i3op_zE,10591
|
|
53
53
|
boris/otx_parser.py,sha256=70QvilzFHXbjAHR88YH0aEXJ3xxheLS5fZGgHFHGpNE,16367
|
|
54
|
-
boris/param_panel.py,sha256=
|
|
55
|
-
boris/param_panel_ui.py,sha256=
|
|
54
|
+
boris/param_panel.py,sha256=Sna2SlJt1CSUEE_bNX2X6ibFjs2Um0-ZjtQf5-JlJTc,8693
|
|
55
|
+
boris/param_panel_ui.py,sha256=4emQDFmuL4_R7bKxosLjdUb-VSPWkDm7suy38F5EKcA,13260
|
|
56
56
|
boris/player_dock_widget.py,sha256=VBuuGoAb2D027oFnMBlIQPiSQcEdedhoQltNFSJq8mw,5982
|
|
57
57
|
boris/plot_data_module.py,sha256=6QbLKfyGp4TYRyHnB9G45y5XrpeXLytcorltEAWfYak,16562
|
|
58
|
-
boris/plot_events.py,sha256=
|
|
58
|
+
boris/plot_events.py,sha256=hA_Yt-ZaxbAOKjN7gYHiaEx5TPR-7HIWGJXXg4cq6lw,24048
|
|
59
59
|
boris/plot_events_rt.py,sha256=xig__Uea3mQqO5raMBVB3pm3vuQkjAbJpwSS7AwIob8,8327
|
|
60
60
|
boris/plot_spectrogram_rt.py,sha256=JV8N7T8133wGVhlPxmgOb426u1g1p21-LbTqgaeddkk,8361
|
|
61
61
|
boris/plot_waveform_rt.py,sha256=05JN_6HCq674ROore_6PNw93GQNZJQDlDxp2ODAFkkA,7474
|
|
@@ -63,41 +63,41 @@ boris/plugins.py,sha256=2RyrS3fdJ2lA8FhG_qymDCfaFyzK3TaRy2ll3yHjlz4,2817
|
|
|
63
63
|
boris/preferences.py,sha256=qPfd9Tyg7u30kXwVqMOgkdy2RXri9bItRa5U2-ZVQmg,16847
|
|
64
64
|
boris/preferences_ui.py,sha256=D2bFLb3E0m6IwSeqKoItRDiqvPmJGoeXLHF2K02n1Zo,26293
|
|
65
65
|
boris/project.py,sha256=hAeAb5pD0u_l0bezU9ePvbTOYQKfxrFGvYB2NAqSDHg,84377
|
|
66
|
-
boris/project_functions.py,sha256=
|
|
67
|
-
boris/project_import_export.py,sha256=
|
|
66
|
+
boris/project_functions.py,sha256=Bu-HD58uYL__v2ih5OhQnVF22_lPrnvX3LCw4wheC1I,79251
|
|
67
|
+
boris/project_import_export.py,sha256=1FdsYFzZ_jrhPRaH7xEkcPnh-hQXN4HFz1PhsIsSoL8,38361
|
|
68
68
|
boris/project_ui.py,sha256=yB-ewhHt8S8DTTRIk-dNK2tPMNU24lNji9fDW_Xazu8,38805
|
|
69
69
|
boris/qrc_boris.py,sha256=aH-qUirYY1CGxmTK1SFCPvuZfazIHX4DdUKF1gxZeYM,675008
|
|
70
70
|
boris/qrc_boris5.py,sha256=prnOw7VGXWXRuVCYp_yIrmWhrlG1F9rx-3BQvkPenjY,161608
|
|
71
71
|
boris/select_modifiers.py,sha256=42uG9F75pfPoPJ-blp-vFgmpBpVJtL42FlIxpNpq9z4,13319
|
|
72
|
-
boris/select_observations.py,sha256=
|
|
73
|
-
boris/select_subj_behav.py,sha256=
|
|
72
|
+
boris/select_observations.py,sha256=HM0suMes1YxVwQ-Xakw7ROaxbN0EyeSiZFZNrTQIHAA,7886
|
|
73
|
+
boris/select_subj_behav.py,sha256=5ln2e83nVEcMW1TTeOE5K1gqd4lSvh7LeiSfhloZPrU,11537
|
|
74
74
|
boris/state_events.py,sha256=R5CcT_cldnxqhQkvX_V1AMNxH0Nc6jLzMZYiWkeJwAE,7770
|
|
75
75
|
boris/subjects_pad.py,sha256=lSRRGfLfD10_YpGua8RGVdKhoXlsXawGhNibPkRhuzM,3541
|
|
76
|
-
boris/synthetic_time_budget.py,sha256=
|
|
77
|
-
boris/time_budget_functions.py,sha256=
|
|
78
|
-
boris/time_budget_widget.py,sha256=
|
|
76
|
+
boris/synthetic_time_budget.py,sha256=NwJt6TO6XZwxF2s7ETvqiDEqrz9ad30g1sQ0bVBsN9o,10364
|
|
77
|
+
boris/time_budget_functions.py,sha256=1-7_G84SDs7rp1EWr5zHInzRVDUkUdIfm_AX0516ceQ,52539
|
|
78
|
+
boris/time_budget_widget.py,sha256=_yYzLa6aJRWHRataek_ciXMEKGW75HA9y0auhAJwzbA,43137
|
|
79
79
|
boris/transitions.py,sha256=_aZJfJWv3EBrtmQ7qsdTCayQo6uWU7BXqtQQgflEhr4,12250
|
|
80
|
-
boris/utilities.py,sha256=
|
|
81
|
-
boris/version.py,sha256=
|
|
80
|
+
boris/utilities.py,sha256=zwWpH-lozAUj_8K6Gf2Hl-BSW0aRdWo37HGXTWQ86qk,52782
|
|
81
|
+
boris/version.py,sha256=THqtGUZSfLFKLiLfI-2xEu03rbzE6mBB5VhDN5OfQDI,785
|
|
82
82
|
boris/video_equalizer.py,sha256=FartoGghFK-T53zklP70rPKYqTuzL8qdvfGlsOF2wwc,5854
|
|
83
83
|
boris/video_equalizer_ui.py,sha256=1CG3s79eM4JAbaCx3i1ILZXLceb41_gGXlOLNfpBgnw,10142
|
|
84
84
|
boris/video_operations.py,sha256=mh3iR__Sm2KnV44L_sW2pOo3AgLwlM7wiTnnqQiAVs4,9381
|
|
85
85
|
boris/view_df.py,sha256=AKScLASX2Uatw7rqPbsnio83eVT4GZYCFhL091eMvlY,3370
|
|
86
86
|
boris/view_df_ui.py,sha256=CaMeRH_vQ00CTDDFQn73ZZaS-r8BSTWpL-dMCFqzJ_Q,2775
|
|
87
|
-
boris/write_event.py,sha256=
|
|
87
|
+
boris/write_event.py,sha256=jKZWzvDvQ-wwFvTLjA-zUjtXQCWwVC49Y5g-1UctpYw,23821
|
|
88
88
|
boris/analysis_plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
89
|
-
boris/analysis_plugins/number_of_occurences.py,sha256=
|
|
89
|
+
boris/analysis_plugins/number_of_occurences.py,sha256=U0NuU8leQixwDWlH26FsQmZl-wrvWKxNH_CWAWb8us4,1972
|
|
90
90
|
boris/analysis_plugins/number_of_occurences_by_independent_variable.py,sha256=fkyOuc1AiOSnrz7L6Ocd742XmDHhhQEtgi2KSiTOG4c,2252
|
|
91
|
-
boris/analysis_plugins/time_budget.py,sha256=
|
|
91
|
+
boris/analysis_plugins/time_budget.py,sha256=_eNv_9oxwa-L6pZVyATc8YNnsmUj_3Px2F0F3Y603p0,3547
|
|
92
92
|
boris/portion/__init__.py,sha256=ZBUG4I7YWhRkeWdP-JEpxhxldJlUYQkeaJseTjdhtJE,602
|
|
93
93
|
boris/portion/const.py,sha256=hEp26BKcEg1Js4DfZsBHmDtJJts83Tl1HWQ0CNJNwEc,1588
|
|
94
94
|
boris/portion/dict.py,sha256=SyHxc7PfDw2ufNLFQycwJtzmRfL48rDp4UrM2KN7IWc,11282
|
|
95
95
|
boris/portion/func.py,sha256=3TkQtFKLfsqntwd27HSGHceFhnXHmT-EbNMqktElC5Q,2174
|
|
96
96
|
boris/portion/interval.py,sha256=bAdUiJjGeUAPgsBAImwNeviiwfQq5odfhFZccAWzOTA,20299
|
|
97
97
|
boris/portion/io.py,sha256=ppNeRpiLNrocF1yzGeuEUIhYMf2LfsR-cji3d0nmvUs,6371
|
|
98
|
-
boris_behav_obs-9.
|
|
99
|
-
boris_behav_obs-9.
|
|
100
|
-
boris_behav_obs-9.
|
|
101
|
-
boris_behav_obs-9.
|
|
102
|
-
boris_behav_obs-9.
|
|
103
|
-
boris_behav_obs-9.
|
|
98
|
+
boris_behav_obs-9.1.dist-info/LICENSE.TXT,sha256=WJ7YI-moTFb-uVrFjnzzhGJrnL9P2iqQe8NuED3hutI,35141
|
|
99
|
+
boris_behav_obs-9.1.dist-info/METADATA,sha256=tqgWzQYwRvW8MvMXoXxIeaDdGe7_A6ZpX72_4P0TpRs,42100
|
|
100
|
+
boris_behav_obs-9.1.dist-info/WHEEL,sha256=SrDKpSbFN1G94qcmBqS9nyHcDMp9cUS9OC06hC0G3G0,109
|
|
101
|
+
boris_behav_obs-9.1.dist-info/entry_points.txt,sha256=-Vl37ZFjZYK5wTSDf5LAzd2cVLON1Pfy1xkx490Wxak,47
|
|
102
|
+
boris_behav_obs-9.1.dist-info/top_level.txt,sha256=fJSgm62S7WesiwTorGbOO4nNN0yzgZ3klgfGi3Px4qI,6
|
|
103
|
+
boris_behav_obs-9.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|