boris-behav-obs 8.27.10__py2.py3-none-any.whl → 9.0.2__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/about.py +7 -5
- boris/add_modifier.py +35 -35
- boris/add_modifier_ui.py +229 -129
- boris/advanced_event_filtering.py +3 -3
- boris/analysis_plugins/__init__.py +0 -0
- boris/analysis_plugins/number_of_occurences.py +60 -0
- boris/analysis_plugins/number_of_occurences_by_independent_variable.py +72 -0
- boris/analysis_plugins/time_budget.py +95 -0
- boris/behav_coding_map_creator.py +103 -108
- boris/behavior_binary_table.py +1 -1
- boris/behaviors_coding_map.py +8 -8
- boris/coding_pad.py +6 -6
- boris/config.py +6 -0
- boris/config_file.py +1 -1
- boris/connections.py +4 -2
- boris/converters.py +2 -3
- boris/converters_ui.py +187 -110
- boris/cooccurence.py +2 -2
- boris/core.py +341 -94
- boris/core_qrc.py +16088 -13246
- boris/core_ui.py +922 -812
- boris/dialog.py +14 -13
- boris/duration_widget.py +5 -5
- boris/edit_event.py +1 -1
- boris/edit_event_ui.py +162 -88
- boris/event_operations.py +4 -25
- boris/events_cursor.py +17 -9
- boris/events_snapshots.py +5 -5
- boris/exclusion_matrix.py +1 -1
- boris/export_events.py +38 -28
- boris/export_observation.py +1 -1
- boris/external_processes.py +3 -5
- boris/geometric_measurement.py +49 -26
- boris/gui_utilities.py +31 -30
- boris/import_observations.py +2 -4
- boris/irr.py +1 -1
- boris/latency.py +1 -1
- boris/map_creator.py +77 -89
- boris/measurement_widget.py +4 -4
- boris/media_file.py +2 -4
- boris/menu_options.py +1 -3
- boris/modifiers_coding_map.py +4 -4
- boris/mpv2.py +0 -2
- boris/observation.py +124 -29
- boris/observation_operations.py +18 -40
- boris/observation_ui.py +566 -374
- boris/observations_list.py +6 -6
- boris/param_panel.py +2 -2
- boris/param_panel_ui.py +246 -141
- boris/player_dock_widget.py +16 -21
- boris/plot_data_module.py +6 -6
- boris/plot_events_rt.py +7 -8
- boris/plot_spectrogram_rt.py +7 -8
- boris/plot_waveform_rt.py +6 -7
- boris/plugins.py +79 -0
- boris/preferences.py +127 -17
- boris/preferences_ui.py +464 -240
- boris/project.py +69 -72
- boris/project_functions.py +233 -31
- boris/project_import_export.py +59 -67
- boris/project_ui.py +672 -440
- boris/qrc_boris.py +6 -3
- boris/qrc_boris5.py +6 -3
- boris/select_modifiers.py +2 -2
- boris/select_observations.py +2 -2
- boris/select_subj_behav.py +3 -3
- boris/state_events.py +1 -1
- boris/subjects_pad.py +5 -5
- boris/synthetic_time_budget.py +2 -2
- boris/time_budget_functions.py +15 -0
- boris/time_budget_widget.py +4 -4
- boris/transitions.py +34 -25
- boris/utilities.py +96 -3
- boris/version.py +2 -2
- boris/video_equalizer.py +4 -4
- boris/video_equalizer_ui.py +199 -130
- boris/video_operations.py +1 -1
- boris/view_df.py +106 -0
- boris/view_df_ui.py +75 -0
- boris/write_event.py +9 -1
- {boris_behav_obs-8.27.10.dist-info → boris_behav_obs-9.0.2.dist-info}/METADATA +5 -5
- boris_behav_obs-9.0.2.dist-info/RECORD +103 -0
- {boris_behav_obs-8.27.10.dist-info → boris_behav_obs-9.0.2.dist-info}/WHEEL +1 -1
- boris/qdarkstyle/__init__.py +0 -479
- boris/qdarkstyle/__main__.py +0 -66
- boris/qdarkstyle/colorsystem.py +0 -38
- boris/qdarkstyle/dark/__init__.py +0 -1
- boris/qdarkstyle/dark/darkstyle_rc.py +0 -11379
- boris/qdarkstyle/dark/palette.py +0 -38
- boris/qdarkstyle/example/__init__.py +0 -4
- boris/qdarkstyle/example/__main__.py +0 -386
- boris/qdarkstyle/example/ui/__init__.py +0 -4
- boris/qdarkstyle/light/__init__.py +0 -1
- boris/qdarkstyle/light/lightstyle_rc.py +0 -11305
- boris/qdarkstyle/light/palette.py +0 -37
- boris/qdarkstyle/palette.py +0 -102
- boris/qdarkstyle/utils/__init__.py +0 -73
- boris/qdarkstyle/utils/__main__.py +0 -96
- boris/qdarkstyle/utils/images.py +0 -449
- boris/qdarkstyle/utils/scss.py +0 -318
- boris/vlc_local.py +0 -83
- boris_behav_obs-8.27.10.dist-info/RECORD +0 -114
- {boris_behav_obs-8.27.10.dist-info → boris_behav_obs-9.0.2.dist-info}/LICENSE.TXT +0 -0
- {boris_behav_obs-8.27.10.dist-info → boris_behav_obs-9.0.2.dist-info}/entry_points.txt +0 -0
- {boris_behav_obs-8.27.10.dist-info → boris_behav_obs-9.0.2.dist-info}/top_level.txt +0 -0
boris/qdarkstyle/utils/scss.py
DELETED
|
@@ -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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|