boris-behav-obs 8.27.10__py2.py3-none-any.whl → 9.0.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.
Files changed (105) hide show
  1. boris/about.py +7 -5
  2. boris/add_modifier.py +35 -35
  3. boris/add_modifier_ui.py +229 -129
  4. boris/advanced_event_filtering.py +3 -3
  5. boris/analysis_plugins/__init__.py +0 -0
  6. boris/analysis_plugins/number_of_occurences.py +60 -0
  7. boris/analysis_plugins/number_of_occurences_by_independent_variable.py +72 -0
  8. boris/analysis_plugins/time_budget.py +95 -0
  9. boris/behav_coding_map_creator.py +103 -108
  10. boris/behavior_binary_table.py +1 -1
  11. boris/behaviors_coding_map.py +8 -8
  12. boris/coding_pad.py +6 -6
  13. boris/config.py +6 -0
  14. boris/config_file.py +1 -1
  15. boris/connections.py +4 -2
  16. boris/converters.py +2 -3
  17. boris/converters_ui.py +187 -110
  18. boris/cooccurence.py +2 -2
  19. boris/core.py +340 -94
  20. boris/core_qrc.py +16088 -13246
  21. boris/core_ui.py +922 -812
  22. boris/dialog.py +14 -13
  23. boris/duration_widget.py +5 -5
  24. boris/edit_event.py +1 -1
  25. boris/edit_event_ui.py +162 -88
  26. boris/event_operations.py +4 -25
  27. boris/events_cursor.py +17 -9
  28. boris/events_snapshots.py +5 -5
  29. boris/exclusion_matrix.py +1 -1
  30. boris/export_events.py +38 -28
  31. boris/export_observation.py +1 -1
  32. boris/external_processes.py +3 -5
  33. boris/geometric_measurement.py +49 -26
  34. boris/gui_utilities.py +31 -30
  35. boris/import_observations.py +2 -4
  36. boris/irr.py +1 -1
  37. boris/latency.py +1 -1
  38. boris/map_creator.py +77 -89
  39. boris/measurement_widget.py +4 -4
  40. boris/media_file.py +2 -4
  41. boris/menu_options.py +1 -3
  42. boris/modifiers_coding_map.py +4 -4
  43. boris/mpv2.py +0 -2
  44. boris/observation.py +124 -29
  45. boris/observation_operations.py +18 -40
  46. boris/observation_ui.py +566 -374
  47. boris/observations_list.py +6 -6
  48. boris/param_panel.py +2 -2
  49. boris/param_panel_ui.py +246 -141
  50. boris/player_dock_widget.py +16 -21
  51. boris/plot_data_module.py +6 -6
  52. boris/plot_events_rt.py +7 -8
  53. boris/plot_spectrogram_rt.py +7 -8
  54. boris/plot_waveform_rt.py +6 -7
  55. boris/plugins.py +79 -0
  56. boris/preferences.py +127 -17
  57. boris/preferences_ui.py +464 -240
  58. boris/project.py +69 -72
  59. boris/project_functions.py +233 -31
  60. boris/project_import_export.py +59 -67
  61. boris/project_ui.py +672 -440
  62. boris/qrc_boris.py +6 -3
  63. boris/qrc_boris5.py +6 -3
  64. boris/select_modifiers.py +2 -2
  65. boris/select_observations.py +2 -2
  66. boris/select_subj_behav.py +3 -3
  67. boris/state_events.py +1 -1
  68. boris/subjects_pad.py +5 -5
  69. boris/synthetic_time_budget.py +2 -2
  70. boris/time_budget_functions.py +15 -0
  71. boris/time_budget_widget.py +4 -4
  72. boris/transitions.py +34 -25
  73. boris/utilities.py +95 -2
  74. boris/version.py +2 -2
  75. boris/video_equalizer.py +4 -4
  76. boris/video_equalizer_ui.py +199 -130
  77. boris/video_operations.py +1 -1
  78. boris/view_df.py +106 -0
  79. boris/view_df_ui.py +75 -0
  80. boris/write_event.py +9 -1
  81. {boris_behav_obs-8.27.10.dist-info → boris_behav_obs-9.0.1.dist-info}/METADATA +5 -5
  82. boris_behav_obs-9.0.1.dist-info/RECORD +103 -0
  83. {boris_behav_obs-8.27.10.dist-info → boris_behav_obs-9.0.1.dist-info}/WHEEL +1 -1
  84. boris/qdarkstyle/__init__.py +0 -479
  85. boris/qdarkstyle/__main__.py +0 -66
  86. boris/qdarkstyle/colorsystem.py +0 -38
  87. boris/qdarkstyle/dark/__init__.py +0 -1
  88. boris/qdarkstyle/dark/darkstyle_rc.py +0 -11379
  89. boris/qdarkstyle/dark/palette.py +0 -38
  90. boris/qdarkstyle/example/__init__.py +0 -4
  91. boris/qdarkstyle/example/__main__.py +0 -386
  92. boris/qdarkstyle/example/ui/__init__.py +0 -4
  93. boris/qdarkstyle/light/__init__.py +0 -1
  94. boris/qdarkstyle/light/lightstyle_rc.py +0 -11305
  95. boris/qdarkstyle/light/palette.py +0 -37
  96. boris/qdarkstyle/palette.py +0 -102
  97. boris/qdarkstyle/utils/__init__.py +0 -73
  98. boris/qdarkstyle/utils/__main__.py +0 -96
  99. boris/qdarkstyle/utils/images.py +0 -449
  100. boris/qdarkstyle/utils/scss.py +0 -318
  101. boris/vlc_local.py +0 -83
  102. boris_behav_obs-8.27.10.dist-info/RECORD +0 -114
  103. {boris_behav_obs-8.27.10.dist-info → boris_behav_obs-9.0.1.dist-info}/LICENSE.TXT +0 -0
  104. {boris_behav_obs-8.27.10.dist-info → boris_behav_obs-9.0.1.dist-info}/entry_points.txt +0 -0
  105. {boris_behav_obs-8.27.10.dist-info → boris_behav_obs-9.0.1.dist-info}/top_level.txt +0 -0
@@ -1,318 +0,0 @@
1
- #!/usr/bin/env python3
2
- # -*- coding: utf-8 -*-
3
- """Utilities for compiling SASS files."""
4
-
5
- # Standard library imports
6
- import keyword
7
- import logging
8
- import os
9
- import re
10
- import shutil
11
- import sys
12
-
13
- # Third party imports
14
- import qtsass
15
-
16
- # Local imports
17
- from qdarkstyle import (MAIN_SCSS_FILE, PACKAGE_PATH, QSS_FILE_SUFFIX, QSS_PATH,
18
- VARIABLES_SCSS_FILE)
19
- from qdarkstyle.palette import Palette
20
- from qdarkstyle.utils.images import create_images, create_palette_image
21
-
22
- # Constants
23
- HEADER_SCSS = '''// ---------------------------------------------------------------------------
24
- //
25
- // WARNING! File created programmatically. All changes made in this file will be lost!
26
- //
27
- // Created by the qtsass compiler v{}
28
- //
29
- // The definitions are in the "qdarkstyle.palette" module
30
- //
31
- //----------------------------------------------------------------------------
32
- '''
33
-
34
- HEADER_QSS = '''/* ---------------------------------------------------------------------------
35
-
36
- WARNING! File created programmatically. All changes made in this file will be lost!
37
-
38
- Created by the qtsass compiler v{}
39
-
40
- The definitions are in the "qdarkstyle.qss._styles.scss" module
41
-
42
- --------------------------------------------------------------------------- */
43
- '''
44
-
45
- _logger = logging.getLogger(__name__)
46
-
47
-
48
- def _dict_to_scss(data):
49
- """Create a scss variables string from a dict."""
50
- lines = []
51
- template = "${}: {};"
52
- for key, value in data.items():
53
- line = template.format(key, value)
54
- lines.append(line)
55
-
56
- return '\n'.join(lines)
57
-
58
-
59
- def _scss_to_dict(string):
60
- """Parse variables and return a dict."""
61
- data = {}
62
- lines = string.split('\n')
63
-
64
- for line in lines:
65
- line = line.strip()
66
-
67
- if line and line.startswith('$'):
68
- key, value = line.split(':')
69
- key = key[1:].strip()
70
- key = key.replace('-', '_')
71
- value = value.split(';')[0].strip()
72
-
73
- data[key] = value
74
-
75
- return data
76
-
77
-
78
- def _create_scss_variables(variables_scss_filepath, palette,
79
- header=HEADER_SCSS):
80
- """Create a scss variables file."""
81
-
82
- scss = _dict_to_scss(palette.to_dict())
83
- data = header.format(qtsass.__version__) + scss + '\n'
84
-
85
- _logger.info("Generating SCSS variables file ...")
86
- _logger.info(f"File path: {variables_scss_filepath}")
87
-
88
- with open(variables_scss_filepath, 'w') as f:
89
- f.write(data)
90
-
91
-
92
- def _create_qss(main_scss_path, qss_filepath, header=HEADER_QSS):
93
- """Create a styles.qss file from qtsass."""
94
-
95
- data = ''
96
-
97
- _logger.info("Generating QSS file ...")
98
- _logger.info(f"SCSS path: {main_scss_path}")
99
- _logger.info(f"QSS path: {qss_filepath}")
100
-
101
- qtsass.compile_filename(main_scss_path, qss_filepath,
102
- output_style='expanded')
103
-
104
- with open(qss_filepath, 'r') as f:
105
- data = f.read()
106
-
107
- data = header.format(qtsass.__version__) + data
108
-
109
- with open(qss_filepath, 'w') as f:
110
- f.write(data)
111
-
112
- return data
113
-
114
-
115
- def create_qss(palette, base_path=''):
116
- """Create variables files and run qtsass compilation.
117
-
118
- This function will use the structure that must contain::
119
-
120
- base_path
121
- [palette.ID]
122
- main.scss
123
- qss
124
- _style.scss
125
-
126
- The structure after the execution will contain::
127
-
128
- base_path
129
- [palette.ID]
130
- _variables.scss
131
- [palette.ID]style.qss
132
- main.scss
133
- qss
134
- _style.scss
135
-
136
- Args:
137
- palette (Palette): Palette class.
138
- base_path (str): Base path for the palette directory, required for
139
- custom palettes. Defaults to '' that uses `[PACKAGE_PATH]`.
140
-
141
- Returns:
142
- str: Stylesheet in string format.
143
- """
144
-
145
- if palette.ID is None:
146
- print("A QDarkStyle palette requires an ID!")
147
- sys.exit(1)
148
-
149
- palette_path = os.path.join(PACKAGE_PATH, palette.ID)
150
-
151
- if base_path:
152
- palette_path = os.path.join(base_path, palette.ID)
153
-
154
- _logger.info(f"Creating QSS for palette: '{palette.ID} ...")
155
- _logger.info(f"Palette path: {palette_path}")
156
-
157
- variables_scss_filepath = os.path.join(palette_path, VARIABLES_SCSS_FILE)
158
- main_scss_filepath = os.path.join(palette_path, MAIN_SCSS_FILE)
159
- qss_filepath = os.path.join(palette_path, palette.ID + QSS_FILE_SUFFIX)
160
-
161
- _create_scss_variables(variables_scss_filepath, palette)
162
-
163
- stylesheet = _create_qss(main_scss_filepath, qss_filepath)
164
-
165
- return stylesheet
166
-
167
-
168
- def create_custom_qss(
169
- id,
170
- path,
171
- color_backgroung=[], # 6 elements
172
- color_text=[], # 4 elements
173
- color_accent=[], # 4 elemetns
174
- border=[], # 3 elements
175
- border_selection=[], # 3 elements
176
- opacity_tooltip=None,
177
- size_border_radius=None,
178
- w_status_bar_background_color=None,
179
- path_resources=None
180
- ):
181
- """
182
- Create a custom palette based on the parameters defined.
183
-
184
- The `id` must be a valid Python identifier and will be stored
185
- as a lowercased folder (even if the identifier had uppercase letters).
186
-
187
- This function returns the custom stylesheet pointing to resources stored
188
- at path_resources/[id].
189
- """
190
-
191
- stylesheet = ''
192
-
193
- # Check if name/id is valid
194
- if id.isidentifier():
195
- name = id if id[0].isupper() else id.capitalize()
196
- else:
197
- raise Exception('The custom palette name must be a valid Python '
198
- 'identifier!')
199
-
200
- # Copy resources folder
201
- rc_loc = os.path.basename(RC_PATH)
202
- qss_loc = os.path.basename(QSS_PATH)
203
- theme_root_path = os.path.join(path, name.lower())
204
- theme_rc_path = os.path.join(theme_root_path, rc_loc)
205
-
206
- if os.path.isdir(theme_root_path):
207
- shutil.rmtree(theme_root_path)
208
-
209
- shutil.copytree(RC_PATH, theme_rc_path)
210
-
211
- # Copy QSS folder and contents
212
- theme_qss_path = os.path.join(theme_root_path, qss_loc)
213
-
214
- if os.path.isdir(theme_qss_path):
215
- os.removedirs(theme_qss_path)
216
-
217
- shutil.copytree(QSS_PATH, theme_qss_path)
218
-
219
- # Create custom palette
220
- # ATTENTION: here we need to iterate over
221
- # args of this function to fill the values
222
- # of the Palette class member with correct values
223
- # they still using the old values below
224
- custom_palette = type(name, (Palette, ), {})
225
- custom_palette.COLOR_BACKGROUND_LIGHT = color_background_light
226
- custom_palette.COLOR_BACKGROUND_NORMAL = color_background_normal
227
- custom_palette.COLOR_BACKGROUND_DARK = color_background_dark
228
- custom_palette.COLOR_FOREGROUND_LIGHT = color_foreground_light
229
- custom_palette.COLOR_FOREGROUND_NORMAL = color_foreground_normal
230
- custom_palette.COLOR_FOREGROUND_DARK = color_foreground_dark
231
- custom_palette.COLOR_SELECTION_LIGHT = color_selection_light
232
- custom_palette.COLOR_SELECTION_NORMAL = color_selection_normal
233
- custom_palette.COLOR_SELECTION_DARK = color_selection_dark
234
- custom_palette.SIZE_BORDER_RADIUS = border_radius
235
- custom_palette.PATH_RESOURCES = "'{}'".format(theme_root_path)
236
-
237
- # Process images and save them to the custom platte rc folder
238
- create_images(rc_path=theme_rc_path, palette=custom_palette)
239
- create_palette_image(path=theme_root_path, palette=custom_palette)
240
-
241
- # Compile SCSS
242
- variables_scss_filepath = os.path.join(theme_qss_path, VARIABLES_SCSS_FILE)
243
- theme_main_scss_filepath = os.path.join(theme_qss_path, MAIN_SCSS_FILE)
244
- theme_qss_filepath = os.path.join(theme_root_path, palette.ID + QSS_FILE_SUFFIX)
245
-
246
- stylesheet = create_qss(
247
- qss_filepath=theme_qss_filepath,
248
- main_scss_filepath=theme_main_scss_filepath,
249
- variables_scss_filepath=variables_scss_filepath,
250
- palette=custom_palette,
251
- )
252
-
253
- # Update colors in text
254
- with open(theme_main_scss_filepath, 'r') as fh:
255
- data = fh.read()
256
-
257
- for key, color in Palette.color_palette().items():
258
- custom_color = custom_palette.color_palette()[key].upper()
259
- data = data.replace(color, custom_color)
260
- stylesheet = stylesheet.replace(color, custom_color)
261
-
262
- with open(theme_main_scss_filepath, 'w') as fh:
263
- fh.write(data)
264
-
265
- with open(theme_qss_filepath, 'w') as fh:
266
- fh.write(stylesheet)
267
-
268
- return stylesheet
269
-
270
-
271
- def create_custom_qss_from_palette(name, path, palette):
272
- """
273
- Create a custom palette based on a palette class.
274
- """
275
- kwargs = {
276
- 'name': name,
277
- 'path': path,
278
- 'border_radius': palette.SIZE_BORDER_RADIUS,
279
- }
280
- kwargs.update(palette.color_palette())
281
- stylesheet = create_custom_qss(**kwargs)
282
-
283
- return stylesheet
284
-
285
-
286
- def create_custom_qss_from_dict(name, path, palette_dict):
287
- """
288
- Create a custom palette based on a palette dictionary.
289
- """
290
- kwargs = {
291
- 'name': name,
292
- 'path': path,
293
- 'border_radius': palette_dict.get('SIZE_BORDER_RADIUS', '4px'),
294
- }
295
- kwargs.update(palette_dict)
296
- stylesheet = create_custom_qss(**kwargs)
297
-
298
- return stylesheet
299
-
300
-
301
- if __name__ == '__main__':
302
- # Example of a custom palette
303
- # TODO: change to not use a specific path
304
- # TODO: may move to other place, e.g., example.py
305
- qss = create_custom_qss(
306
- 'MyAwesomePalette',
307
- '/Users/gpena-castellanos/Desktop',
308
- '#ff0000',
309
- '#cc0000',
310
- '#aa0000',
311
- '#00ff00',
312
- '#00cc00',
313
- '#00aa00',
314
- '#0000ff',
315
- '#0000cc',
316
- '#0000aa',
317
- '0px',
318
- )
boris/vlc_local.py DELETED
@@ -1,83 +0,0 @@
1
- """
2
- BORIS
3
- Behavioral Observation Research Interactive Software
4
- Copyright 2012-2024 Olivier Friard
5
-
6
- This file is part of BORIS.
7
-
8
- BORIS is free software; you can redistribute it and/or modify
9
- it under the terms of the GNU General Public License as published by
10
- the Free Software Foundation; either version 3 of the License, or
11
- any later version.
12
-
13
- BORIS is distributed in the hope that it will be useful,
14
- but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- GNU General Public License for more details.
17
-
18
- You should have received a copy of the GNU General Public License
19
- along with this program; if not see <http://www.gnu.org/licenses/>.
20
-
21
- """
22
-
23
- # check if library in same dir than vlc.py
24
-
25
- import pathlib
26
- import sys
27
- import ctypes
28
- import os
29
-
30
-
31
- def find_local_libvlc():
32
- dll = None
33
- plugin_path = ""
34
-
35
- if sys.platform.startswith("linux"):
36
- # for Linux VLC must be installed
37
- return dll, plugin_path
38
-
39
- vlc_dll_path = pathlib.Path("")
40
-
41
- if sys.platform.startswith("win"):
42
- if sys.argv[0] == "-m":
43
- vlc_dll_path = pathlib.Path(os.getcwd()) / "Lib" / "site-packages" / "boris" / "misc" / "libvlc.dll"
44
-
45
- if sys.argv[0].endswith("start_boris.py"):
46
- vlc_dll_path = pathlib.Path(sys.argv[0]).resolve().parent / "boris" / "misc" / "libvlc.dll"
47
-
48
- if sys.argv[0].endswith("__main__.py"):
49
- vlc_dll_path = pathlib.Path(sys.argv[0]).resolve().parent / "misc" / "libvlc.dll"
50
-
51
- if not vlc_dll_path.is_file():
52
- print("The VLC dll path was not found!")
53
- return dll, plugin_path
54
-
55
- dll = ctypes.CDLL(str(vlc_dll_path))
56
- plugin_path = str(pathlib.Path(sys.argv[0]).resolve().parent / "misc" / "plugins")
57
-
58
- if sys.platform.startswith("darwin"):
59
- libvlccore_path = pathlib.Path("")
60
- if sys.argv[0].endswith("start_boris.py"):
61
- libvlccore_path = pathlib.Path(sys.argv[0]).resolve().parent / "boris" / "misc" / "VLC" / "lib" / "libvlccore.dylib"
62
- vlc_dll_path = pathlib.Path(sys.argv[0]).resolve().parent / "boris" / "misc" / "VLC" / "lib" / "libvlc.dylib"
63
- plugin_path = pathlib.Path(sys.argv[0]).resolve().parent / "boris" / "misc" / "VLC" / "plugins"
64
-
65
- if sys.argv[0].endswith("__main__.py"):
66
- libvlccore_path = pathlib.Path(sys.argv[0]).resolve().parent / "misc" / "VLC" / "lib" / "libvlccore.dylib"
67
- vlc_dll_path = pathlib.Path(sys.argv[0]).resolve().parent / "misc" / "VLC" / "lib" / "libvlc.dylib"
68
- plugin_path = pathlib.Path(sys.argv[0]).resolve().parent / "misc" / "VLC" / "plugins"
69
-
70
- if vlc_dll_path.is_file():
71
- if libvlccore_path.is_file():
72
- ctypes.CDLL(str(libvlccore_path))
73
- else:
74
- print(f"libvlc core not found: {vlc_dll_path}")
75
- dll = ctypes.CDLL(str(vlc_dll_path))
76
-
77
- return dll, str(plugin_path)
78
-
79
- return dll, plugin_path
80
-
81
-
82
- if __name__ == "__main__":
83
- print(find_local_libvlc())
@@ -1,114 +0,0 @@
1
- boris/__init__.py,sha256=vEqzYsbV0DwIWYPXIv3OXrBBFW71dpYRSL63Dedv4xE,773
2
- boris/__main__.py,sha256=_cKab_aODdiWYjyf6mWu57D-84izlVDPAm13QxH-cCg,764
3
- boris/about.py,sha256=vQVg7Y-DePzzMGp7-88p27D62GHcFJhLCyVl4D2rpwc,5369
4
- boris/add_modifier.py,sha256=dtP1xZCwO0QlUJVir0JP2ShL5WrOvH26vQfwGwu683Q,26465
5
- boris/add_modifier_ui.py,sha256=ZKXDcpavvzF5X8gkTuza1WYsw3x9TB-qQjrhn1fka5c,10537
6
- boris/advanced_event_filtering.py,sha256=5_F4LIfp9v-N5mQb6F5PJRZpdxk26XCWKzLAi-sEG8Y,15178
7
- boris/behav_coding_map_creator.py,sha256=FNU5fUjvXQhTn-fmFQpksgIUzE0ZkAxgpPCXRpSGsAM,37860
8
- boris/behavior_binary_table.py,sha256=2kI7Rb67kfywCPtfsD7qGCyBsI0m4-iztp06hx_UbC4,11675
9
- boris/behaviors_coding_map.py,sha256=Q_-k8DsYtXgUBzOYUdoGl41EgLdVAvGyuir98CUDY5Q,7309
10
- boris/boris_cli.py,sha256=CeUr_QKKySu9v-Gw5fkeQPjA3y_dGv7_Y4tCY41OeoA,13196
11
- boris/cmd_arguments.py,sha256=dNMEvMgTRMadC1Oz5IXw4JEBJw8Tq4yCo4yuRCnNfXc,1848
12
- boris/coding_pad.py,sha256=XVbg3Q7S4O6Rgxc5ZCzx4jv7eaDvbw_K2T_nQWtsvdU,10996
13
- boris/config.py,sha256=jFf6mJcLFku1eoRFuNLvGfsiovOkp_Zz9vamBLiP4gM,16786
14
- boris/config_file.py,sha256=jTOhrX0tfxc3oHV7R85QX828xhezCsawXg6nvy5QIbE,13519
15
- boris/connections.py,sha256=RIQsaooiz6pzc2jJMHw9CQSyX39TgbM5JAwifCu5eWQ,19280
16
- boris/converters.py,sha256=FymqUxLEVLQwsUv6EVF7MRPowN1e87aVT2d3XjZJgAM,11771
17
- boris/converters_ui.py,sha256=firMWVgS3c492FF-YFv3FehOBLsbBHKaLEaVcoVctgc,8745
18
- boris/cooccurence.py,sha256=hywQTYonRM8Ynj7ONRvq4iNcDCwxrgPnjbG-hkN2koc,9822
19
- boris/core.py,sha256=i51MSYdGt0FaappHyfh6P6DJWEs5YRJzC_nJE7ZU8MQ,224214
20
- boris/core_qrc.py,sha256=5YMpr7ckI4TbXaeSyCMhNJBAlrGPeLes62RedU3EbWs,865287
21
- boris/core_ui.py,sha256=Z_6Ehp93fRVnPGyKRtgX2GcXRXb8QZojXipHSpJ_f3M,69854
22
- boris/db_functions.py,sha256=4BTRXxAeXYOFsBpnHhtdZ5HC7MaNjWLdkcM-kmlY0ng,13352
23
- boris/dev.py,sha256=9pUElbjl9g17rFUJXX5aVSu55_iIKIuDxNdrB0DI_d0,3671
24
- boris/dialog.py,sha256=LPoVwflYkCWYLXazWz_ByHz3-tqey47tnxndYbsKSdM,41275
25
- boris/duration_widget.py,sha256=FHnDDg6RBtORCZDG9gkpjxP9ivZ3Rb4uYWCdEkBl-a4,6930
26
- boris/edit_event.py,sha256=cvZ4j2rcck8q5Rd6n5d6JGQ0wZMduVQls2UDylCuQqY,7578
27
- boris/edit_event_ui.py,sha256=X98eKSS0urd0eGce-q2_gkPx79GvO1XbJUEjxGCMUCI,6984
28
- boris/event_operations.py,sha256=u5Fex4ex_kjSuZtS6uzyyAcJS7y__2qhMSO9CvOE6qQ,38929
29
- boris/events_cursor.py,sha256=Jfu7yV1MG7HikNmMQmOVJ7ntmEZzDZn5HHp3va8llwM,1983
30
- boris/events_snapshots.py,sha256=IkuTLIMo1dCQNegnp6d2v9Qra1z_yv6G3bXNkVkRKvk,27575
31
- boris/exclusion_matrix.py,sha256=xaEFLy2Zv5SWryMz1D0cEpywsAuZxZuBaaGYLaBGhng,5270
32
- boris/export_events.py,sha256=Uu2y9KvxVSvi6dmH0zYoMr1vO1VW9KqpyNOmL_ocXH0,38038
33
- boris/export_observation.py,sha256=vO5hwrhrZUw5744PLtoGsWlurEemNpJsampD-ZhYmxw,49827
34
- boris/external_processes.py,sha256=069iEVOfDI-7zUYPH7WlYBEnKqTR18mjj8dReBkUACE,11965
35
- boris/geometric_measurement.py,sha256=UNoKyFAKWJKKgc7L7-Vtoqzg30R6dQnlZMUxN3zMMl8,34542
36
- boris/gui_utilities.py,sha256=IhIz53CHSRvO-qjN5XrzpgAChf_LBcUWlE3iFMBeROw,3774
37
- boris/image_overlay.py,sha256=bxEHEr5p6nH_sgXRSGEWlJZJF7R07ItgHNM4_3kXTJA,2527
38
- boris/import_observations.py,sha256=FrXG_oOyPYWIX1XHHWvC9eg13FHsZPzhLGjCMSQFHT8,8838
39
- boris/irr.py,sha256=pFUFT_ISMloblWpLr-eZQhbeRzsIIjZfRIzM-_Z2MNo,22470
40
- boris/latency.py,sha256=tkWOFObBL43wUeZz-GThVZFviyuyx79FdaKudW07V-w,9737
41
- boris/map_creator.py,sha256=IJzvT2a9LoWk_Qx-Enc4jTsYh0ixpbrLNUFCLwB9idA,29437
42
- boris/measurement_widget.py,sha256=NI2d9qftFTtnUzy-aOtKhx3w63-mqDIJ4rz1l_8_Zos,4486
43
- boris/media_file.py,sha256=ofOoGyrqEcm6HZQxnyObdmcLlKS0TrcPQNPNf8EG1BM,4766
44
- boris/menu_options.py,sha256=izzYx-Rc7powf8PqhAXD3XMPYvBoVZqOYbS1jaW4sII,7094
45
- boris/modifiers_coding_map.py,sha256=XBTubBHw6Sayw5jUNaWR_jVIw6ttaJcbhbmUSF6_lx4,4566
46
- boris/mpv-1.0.3.py,sha256=EXRtzQqFjOn4wMC6482Ilq3fNQ9N1GRP1VxwLzdeaBY,88077
47
- boris/mpv.py,sha256=EfzIHjPbgewG4w3smEtqEUPZoVwYmMQkL4Q8ZyW-a58,76410
48
- boris/mpv2.py,sha256=WZaPHXNSMdPZKuQ2ZZiWu_1KViNsnsxg7imSx-yKaXU,92190
49
- boris/observation.py,sha256=CoEk8Zre2QsGF4u4AUXLCfzy5fyuPX9eopTR_kfA9zU,52911
50
- boris/observation_operations.py,sha256=eW5DPoU_21EQEWUUmOvqe6flgHxgTcFkGaJjfS6yWJo,100276
51
- boris/observation_ui.py,sha256=dfk7pS2DlaiEgMjouH0-_t6kPgMwovQbloHtc3ZoCmY,30278
52
- boris/observations_list.py,sha256=rMuEVa3QccA89vjARcEVtSlLnr5s0sfihUlcwciV3OM,10600
53
- boris/otx_parser.py,sha256=Ul5GokK46azx60P6-pk8wbSPUqUR9O4WLV42z3rE40s,16367
54
- boris/param_panel.py,sha256=VhiM3QbGoDApNAqVNScKJZO6iDzeW28WNzW4XvWnY1o,7868
55
- boris/param_panel_ui.py,sha256=bA5_rkMKdlSgOQnYK7CSXyVXQxWyzwQ4tsxj327y18k,12115
56
- boris/player_dock_widget.py,sha256=PJHBvpoyrXjrp39EwVS3C8Rw9cNaXsAoPqlQ_wduJI0,5735
57
- boris/plot_data_module.py,sha256=OazYAPHker30s1oYYKkSa0IXSj-DbB1-Qgcau0x-Il8,16582
58
- boris/plot_events.py,sha256=HAKrdS3qf0A_PG1pGo0FRyk62femDxfxGss3w8CrlUw,23541
59
- boris/plot_events_rt.py,sha256=UfO1NKSqBR7j-vnfG8CKuOcdg5o8QQI_0eYdcz29Ufc,8358
60
- boris/plot_spectrogram_rt.py,sha256=yc8ifg9HCl-v_upMHkH_rmIZLhWBYkWBOhtKftvRvh0,8394
61
- boris/plot_waveform_rt.py,sha256=kNk6NVjM3wT3MpAw5zE9ktH94Pkd2AJ4ppv6uM6BVBc,7502
62
- boris/preferences.py,sha256=ySGmCSjqj4rpKksdWNNP2EQEJKVYHCwp3qXyRZG9i8A,11551
63
- boris/preferences_ui.py,sha256=fz0jHW7Nqw2P68FLBqheaGrQsZATNz8d8J00TVMX_Ig,21981
64
- boris/project.py,sha256=crarDFfAB3lv7BJaVz3yXsS0k9fNiuKUBLTfjaHRzwQ,84361
65
- boris/project_functions.py,sha256=ebUi4nRWALUdRGdsc3ral8-4gS4ppNcjh3ohUEPND9g,71887
66
- boris/project_import_export.py,sha256=E2Jv4CQQpFxGspLZdAIxBcB-aCM7SlfobR5ZlC2QqHk,38463
67
- boris/project_ui.py,sha256=TRJlsqq4XbIl8k2f20BKr2PtKa0QNjFNr6UnMieZYqU,35915
68
- boris/qrc_boris.py,sha256=4U2cD_fIBTtsTPhirOl9I3kTArOhXWYvfuO_A0M9N0I,675001
69
- boris/qrc_boris5.py,sha256=6bwT8OVtIr84nVIYp2ldUL7XL6WJi9zgJow6kgRxuIQ,161601
70
- boris/select_modifiers.py,sha256=HhwmgWnRTyxY3j7-ogk5lOTSGTIW1dnzFgnan5u_pGU,13315
71
- boris/select_observations.py,sha256=7lqSFWEBbW8watQaJe7xJCYdJ_p7VymBEeiRtdzxllI,7940
72
- boris/select_subj_behav.py,sha256=Lv5S74fQHt5EJERtrKyvaBOqg0UiBKfrTDyRRRSSrxg,10924
73
- boris/state_events.py,sha256=AcZmD0pIJ4AszTQe9conWlh8gJhwdBjZiGm1KOXt804,7768
74
- boris/subjects_pad.py,sha256=d-vI0qBcXfonN_BvYI19ZBWgY0Ywekc2DSWLFHIjz0o,3553
75
- boris/synthetic_time_budget.py,sha256=ou_bmWxYMzoHexhmlH0e_FZ5vnOVvwS6Zc1VTQI0YtM,9952
76
- boris/time_budget_functions.py,sha256=KFmYP-7sWxIrQo--pZ9rgXHkFUUhCBxJqod4aE_VVo4,51438
77
- boris/time_budget_widget.py,sha256=u-Ek26rYrw3ukn526kZnAwlCI3N7D3vrj5Qy9CV2-7M,42456
78
- boris/transitions.py,sha256=_Gonpm-xRxcd1NUfVg4DqkSAan2yHsQBW1v3puVusI8,11996
79
- boris/utilities.py,sha256=EDZ1RwtEJVvrIVpv2kVufk0sdBrK9BFbHKWSUfpyfVk,49409
80
- boris/version.py,sha256=eUtWJP1rTXuwNUtMj53BgOBaf_cu2HS8JNWv-MdQpWs,789
81
- boris/video_equalizer.py,sha256=QpVgmdqX_E4HnMa2f_Qo_fKJTl9nBoTQd_ykv9RWlIQ,5862
82
- boris/video_equalizer_ui.py,sha256=A2_Sz9AAVnJygTRUeK_YXxf-WWQpxSSlFw0MjkxiwSg,9762
83
- boris/video_operations.py,sha256=96jR-3snNn9VeEURRD6rCwvOL2sSHXoqlP_gYFwgO8A,9379
84
- boris/vlc_local.py,sha256=M4yQ8pGW-sY9zMJXDlWg5fzfcwLep1pFQjqwyREHlKo,3053
85
- boris/write_event.py,sha256=Lsv7Jxoi4b4qVqjsxwiB2yago_TQ9BtwjjG7OejQEhI,23528
86
- boris/portion/__init__.py,sha256=ZBUG4I7YWhRkeWdP-JEpxhxldJlUYQkeaJseTjdhtJE,602
87
- boris/portion/const.py,sha256=hEp26BKcEg1Js4DfZsBHmDtJJts83Tl1HWQ0CNJNwEc,1588
88
- boris/portion/dict.py,sha256=SyHxc7PfDw2ufNLFQycwJtzmRfL48rDp4UrM2KN7IWc,11282
89
- boris/portion/func.py,sha256=3TkQtFKLfsqntwd27HSGHceFhnXHmT-EbNMqktElC5Q,2174
90
- boris/portion/interval.py,sha256=bAdUiJjGeUAPgsBAImwNeviiwfQq5odfhFZccAWzOTA,20299
91
- boris/portion/io.py,sha256=ppNeRpiLNrocF1yzGeuEUIhYMf2LfsR-cji3d0nmvUs,6371
92
- boris/qdarkstyle/__init__.py,sha256=rryKBcN7fiJ6f5gvyBX3U7oFB_0tgYky7l6TyHb8ILU,13711
93
- boris/qdarkstyle/__main__.py,sha256=pHl0SFboLoYnTIXacA5q4d5fnwsItfaiYlB90YdobvI,2233
94
- boris/qdarkstyle/colorsystem.py,sha256=WQpywbAxe9s7YTBf_PQu7uEc8Cb2Zp2ttlZ18ZjmaRU,763
95
- boris/qdarkstyle/palette.py,sha256=oiywrUIzi8BQtteKiDVoTEHjvk-xrDe_3aIV664Vv6Y,2522
96
- boris/qdarkstyle/dark/__init__.py,sha256=iwhKnzeBJLKxpRVjvzwiRE63_zNpIBfaKLITauVph-0,24
97
- boris/qdarkstyle/dark/darkstyle_rc.py,sha256=ZSCJxSkw9uFFKSzCXG0AqTkfeSWL_oz9qHzeKN-IKok,687933
98
- boris/qdarkstyle/dark/palette.py,sha256=Dv1QpSEbLfq9ez4SbQLo5azE9YQjYm6FWu12-kioYl4,839
99
- boris/qdarkstyle/example/__init__.py,sha256=jePesnI3oO18PXUmlGyycJikAIBhUMqwhkk17BEMi9I,100
100
- boris/qdarkstyle/example/__main__.py,sha256=5SY9eJyHZTEChikmhYR9C3nSzhSaU21R_9C-YM4CDB0,14014
101
- boris/qdarkstyle/example/ui/__init__.py,sha256=HHnYwmvqDKn48yrhr4ke-uvfnLJxJSlasQByyPiqk6o,92
102
- boris/qdarkstyle/light/__init__.py,sha256=iwhKnzeBJLKxpRVjvzwiRE63_zNpIBfaKLITauVph-0,24
103
- boris/qdarkstyle/light/lightstyle_rc.py,sha256=nmMyPo_QABCWWi7X_HZB1Plu7UmTsX_Cx-xqsa5ihwU,683699
104
- boris/qdarkstyle/light/palette.py,sha256=ovb6v49exgB2FRHHLx4ILTwKn-CYsk1oSTcM8_MO1rw,827
105
- boris/qdarkstyle/utils/__init__.py,sha256=Nlma8-zbHoJc5n2NVT7OvwxPG5765JnsmMeGzrTqxBU,2545
106
- boris/qdarkstyle/utils/__main__.py,sha256=J1biUyDzfutKU1n9NdH9WnD0gFHaF-OJA4Q-n6Q2ehs,3309
107
- boris/qdarkstyle/utils/images.py,sha256=af-BJllzWgVoVz6QMvhFcKqvF3mo44AThaBjuAuHtNE,14444
108
- boris/qdarkstyle/utils/scss.py,sha256=n7WNo6pPRft8-dU7_gfjB_jA-JZAy50-S792RwR7Ri0,9366
109
- boris_behav_obs-8.27.10.dist-info/LICENSE.TXT,sha256=WJ7YI-moTFb-uVrFjnzzhGJrnL9P2iqQe8NuED3hutI,35141
110
- boris_behav_obs-8.27.10.dist-info/METADATA,sha256=SSyOK4irbBgTQPd-JmSArawOtbutC9-8LKfZ-Gq6-FA,42050
111
- boris_behav_obs-8.27.10.dist-info/WHEEL,sha256=AHX6tWk3qWuce7vKLrj7lnulVHEdWoltgauo8bgCXgU,109
112
- boris_behav_obs-8.27.10.dist-info/entry_points.txt,sha256=-Vl37ZFjZYK5wTSDf5LAzd2cVLON1Pfy1xkx490Wxak,47
113
- boris_behav_obs-8.27.10.dist-info/top_level.txt,sha256=fJSgm62S7WesiwTorGbOO4nNN0yzgZ3klgfGi3Px4qI,6
114
- boris_behav_obs-8.27.10.dist-info/RECORD,,