simba-uw-tf-dev 4.6.7__py3-none-any.whl → 4.6.9__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 (29) hide show
  1. simba/assets/.recent_projects.txt +1 -0
  2. simba/data_processors/circling_detector.py +30 -13
  3. simba/data_processors/cuda/image.py +42 -18
  4. simba/data_processors/cuda/statistics.py +2 -3
  5. simba/data_processors/freezing_detector.py +55 -47
  6. simba/feature_extractors/mitra_feature_extractor.py +2 -2
  7. simba/mixins/config_reader.py +5 -2
  8. simba/mixins/plotting_mixin.py +28 -10
  9. simba/outlier_tools/skip_outlier_correction.py +1 -1
  10. simba/plotting/gantt_creator.py +29 -10
  11. simba/plotting/gantt_creator_mp.py +50 -17
  12. simba/sandbox/analyze_runtimes.py +30 -30
  13. simba/sandbox/test_directionality.py +47 -47
  14. simba/sandbox/test_nonstatic_directionality.py +27 -27
  15. simba/sandbox/test_pycharm_cuda.py +51 -51
  16. simba/sandbox/test_simba_install.py +41 -41
  17. simba/sandbox/test_static_directionality.py +26 -26
  18. simba/sandbox/test_static_directionality_2d.py +26 -26
  19. simba/sandbox/verify_env.py +42 -42
  20. simba/ui/pop_ups/clf_plot_pop_up.py +2 -2
  21. simba/ui/pop_ups/gantt_pop_up.py +31 -6
  22. simba/ui/pop_ups/video_processing_pop_up.py +1 -1
  23. simba/video_processors/video_processing.py +2 -2
  24. {simba_uw_tf_dev-4.6.7.dist-info → simba_uw_tf_dev-4.6.9.dist-info}/METADATA +1 -1
  25. {simba_uw_tf_dev-4.6.7.dist-info → simba_uw_tf_dev-4.6.9.dist-info}/RECORD +29 -29
  26. {simba_uw_tf_dev-4.6.7.dist-info → simba_uw_tf_dev-4.6.9.dist-info}/LICENSE +0 -0
  27. {simba_uw_tf_dev-4.6.7.dist-info → simba_uw_tf_dev-4.6.9.dist-info}/WHEEL +0 -0
  28. {simba_uw_tf_dev-4.6.7.dist-info → simba_uw_tf_dev-4.6.9.dist-info}/entry_points.txt +0 -0
  29. {simba_uw_tf_dev-4.6.7.dist-info → simba_uw_tf_dev-4.6.9.dist-info}/top_level.txt +0 -0
@@ -1,42 +1,42 @@
1
- """Verify CUDA environment is properly configured"""
2
- from numba import cuda
3
- import cupy as cp
4
- import numba
5
-
6
- print("="*60)
7
- print("CUDA Environment Verification")
8
- print("="*60)
9
- print(f"Numba version: {numba.__version__}")
10
- print(f"CuPy version: {cp.__version__}")
11
- print(f"CUDA available: {cuda.is_available()}")
12
- if cuda.is_available():
13
- print(f"CUDA devices: {len(cuda.gpus)}")
14
- for i, gpu in enumerate(cuda.gpus):
15
- print(f" GPU {i}: {gpu}")
16
-
17
- # Test the function
18
- print("\n" + "="*60)
19
- print("Testing directionality_to_nonstatic_target...")
20
- try:
21
- from simba.data_processors.cuda.geometry import directionality_to_nonstatic_target
22
- import numpy as np
23
-
24
- left_ear = np.random.randint(0, 500, (10, 2)).astype(np.int32)
25
- right_ear = np.random.randint(0, 500, (10, 2)).astype(np.int32)
26
- nose = np.random.randint(0, 500, (10, 2)).astype(np.int32)
27
- target = np.random.randint(0, 500, (10, 2)).astype(np.int32)
28
-
29
- result = directionality_to_nonstatic_target(
30
- left_ear=left_ear,
31
- right_ear=right_ear,
32
- nose=nose,
33
- target=target
34
- )
35
- print(f"✓ Function works! Result shape: {result.shape}")
36
- except Exception as e:
37
- print(f"✗ Error: {e}")
38
- import traceback
39
- traceback.print_exc()
40
-
41
- print("\n" + "="*60)
42
- print("Environment is ready!")
1
+ """Verify CUDA environment is properly configured"""
2
+ from numba import cuda
3
+ import cupy as cp
4
+ import numba
5
+
6
+ print("="*60)
7
+ print("CUDA Environment Verification")
8
+ print("="*60)
9
+ print(f"Numba version: {numba.__version__}")
10
+ print(f"CuPy version: {cp.__version__}")
11
+ print(f"CUDA available: {cuda.is_available()}")
12
+ if cuda.is_available():
13
+ print(f"CUDA devices: {len(cuda.gpus)}")
14
+ for i, gpu in enumerate(cuda.gpus):
15
+ print(f" GPU {i}: {gpu}")
16
+
17
+ # Test the function
18
+ print("\n" + "="*60)
19
+ print("Testing directionality_to_nonstatic_target...")
20
+ try:
21
+ from simba.data_processors.cuda.geometry import directionality_to_nonstatic_target
22
+ import numpy as np
23
+
24
+ left_ear = np.random.randint(0, 500, (10, 2)).astype(np.int32)
25
+ right_ear = np.random.randint(0, 500, (10, 2)).astype(np.int32)
26
+ nose = np.random.randint(0, 500, (10, 2)).astype(np.int32)
27
+ target = np.random.randint(0, 500, (10, 2)).astype(np.int32)
28
+
29
+ result = directionality_to_nonstatic_target(
30
+ left_ear=left_ear,
31
+ right_ear=right_ear,
32
+ nose=nose,
33
+ target=target
34
+ )
35
+ print(f"✓ Function works! Result shape: {result.shape}")
36
+ except Exception as e:
37
+ print(f"✗ Error: {e}")
38
+ import traceback
39
+ traceback.print_exc()
40
+
41
+ print("\n" + "="*60)
42
+ print("Environment is ready!")
@@ -49,8 +49,8 @@ class SklearnVisualizationPopUp(PopUpMixin, ConfigReader):
49
49
  pose_palettes = Options.PALETTE_OPTIONS_CATEGORICAL.value + Options.PALETTE_OPTIONS.value
50
50
  PopUpMixin.__init__(self, title="VISUALIZE CLASSIFICATION (SKLEARN) RESULTS", icon='photos')
51
51
  bp_threshold_frm = CreateLabelFrameWithIcon(parent=self.main_frm, header="BODY-PART VISUALIZATION THRESHOLD", icon_name='threshold', icon_link=Links.SKLEARN_PLOTS.value, padx=5, pady=5, relief='solid')
52
- self.bp_threshold_lbl = SimBALabel(parent=bp_threshold_frm, txt="Body-parts detected below the set threshold won't be shown in the output videos.", font=Formats.FONT_REGULAR_ITALICS.value)
53
- self.bp_threshold_entry = Entry_Box(parent=bp_threshold_frm, fileDescription='BODY-PART PROBABILITY THRESHOLD: ', labelwidth=40, entry_box_width=15, value=0.00, img='green_dice')
52
+ self.bp_threshold_lbl = SimBALabel(parent=bp_threshold_frm, txt="Body-parts detected below the set threshold won't be shown in the output videos (use 0.0 to see all body-part predictions)", font=Formats.FONT_REGULAR_ITALICS.value)
53
+ self.bp_threshold_entry = Entry_Box(parent=bp_threshold_frm, fileDescription='BODY-PART PROBABILITY THRESHOLD: ', labelwidth=40, entry_box_width=15, value=0.00, img='green_dice', justify='center')
54
54
  self.get_bp_probability_threshold()
55
55
 
56
56
  bp_threshold_frm.grid(row=0, column=0, sticky=NW)
@@ -13,6 +13,7 @@ from simba.ui.tkinter_functions import (CreateLabelFrameWithIcon, SimbaButton,
13
13
  from simba.utils.checks import check_if_filepath_list_is_empty
14
14
  from simba.utils.enums import Formats, Links, Options
15
15
  from simba.utils.errors import NoSpecifiedOutputError
16
+ from simba.utils.lookups import get_fonts
16
17
  from simba.utils.read_write import find_files_of_filetypes_in_directory
17
18
 
18
19
 
@@ -29,7 +30,9 @@ class GanttPlotPopUp(PopUpMixin, ConfigReader):
29
30
  check_if_filepath_list_is_empty(filepaths=self.machine_results_paths,error_msg=f"SIMBA ERROR: Zero files found in the {self.machine_results_dir} directory. Create classification results before visualizing gantt charts",)
30
31
  palettes = Options.PALETTE_OPTIONS_CATEGORICAL.value + Options.PALETTE_OPTIONS.value
31
32
  self.data_paths = find_files_of_filetypes_in_directory(directory=self.machine_results_dir, extensions=[f'.{self.file_type}'], as_dict=True)
32
- max_file_name_len = max(len(k) for k in self.data_paths) + 5
33
+ max_file_name_len, fonts = max(len(k) for k in self.data_paths) + 5, list(get_fonts(sort_alphabetically=True).keys())
34
+ fonts.insert(0, 'AUTO')
35
+ default_font = 'Arial' if 'Arial' in fonts else 'AUTO'
33
36
  PopUpMixin.__init__(self, config_path=config_path, title="VISUALIZE GANTT PLOTS", icon='gantt_small')
34
37
 
35
38
  self.style_settings_frm = CreateLabelFrameWithIcon(parent=self.main_frm, header="STYLE SETTINGS", icon_name='settings', icon_link=Links.GANTT_PLOTS.value, relief='solid', padx=5, pady=5)
@@ -39,6 +42,15 @@ class GanttPlotPopUp(PopUpMixin, ConfigReader):
39
42
  self.palette_dropdown = SimBADropDown(parent=self.style_settings_frm, dropdown_options=palettes, label='COLOR PALETTE: ', label_width=30, dropdown_width=30, value='Set1', img='palette_small')
40
43
  self.time_format_dropdown = SimBADropDown(parent=self.style_settings_frm, dropdown_options=['SECONDS', 'HH:MM:SS'], label='X-AXIS TIME FORMAT: ', label_width=30, dropdown_width=30, value='SECONDS', img='timer_2')
41
44
  self.core_dropdown = SimBADropDown(parent=self.style_settings_frm, dropdown_options=list(range(1, self.cpu_cnt+1)), label='CPU CORES: ', label_width=30, dropdown_width=30, value=int(self.cpu_cnt/2), img='cpu_small')
45
+ self.font_dropdown = SimBADropDown(parent=self.style_settings_frm, dropdown_options=fonts, label='FONT: ', label_width=30, dropdown_width=30, value=default_font, img='font')
46
+
47
+
48
+ self.clf_frm = CreateLabelFrameWithIcon(parent=self.main_frm, header="BEHAVIORS", icon_name='forest', icon_link=Links.GANTT_PLOTS.value, relief='solid', padx=5, pady=5)
49
+ self.clf_choices = {}
50
+ for cnt, clf_name in enumerate(self.clf_names):
51
+ gantt_frames_cb, self.gantt_frames_var = SimbaCheckbox(parent=self.clf_frm, txt=clf_name, val=True)
52
+ self.clf_choices[clf_name] = self.gantt_frames_var
53
+ gantt_frames_cb.grid(row=cnt, column=0, sticky=NW)
42
54
 
43
55
  self.settings_frm = CreateLabelFrameWithIcon(parent=self.main_frm, header="VISUALIZATION SETTINGS", icon_name='eye', icon_link=Links.GANTT_PLOTS.value, relief='solid', padx=5, pady=5)
44
56
  gantt_frames_cb, self.gantt_frames_var = SimbaCheckbox(parent=self.settings_frm, txt='CREATE FRAMES', txt_img='frames', val=False)
@@ -57,18 +69,20 @@ class GanttPlotPopUp(PopUpMixin, ConfigReader):
57
69
  self.font_rotation_dropdown.grid(row=2, sticky=NW)
58
70
  self.palette_dropdown.grid(row=3, sticky=NW)
59
71
  self.time_format_dropdown.grid(row=4, sticky=NW)
60
- self.core_dropdown.grid(row=5, sticky=NW)
72
+ self.font_dropdown.grid(row=5, sticky=NW)
73
+ self.core_dropdown.grid(row=6, sticky=NW)
61
74
 
62
- self.settings_frm.grid(row=1, sticky=NW, padx=10, pady=10)
75
+ self.clf_frm.grid(row=1, sticky=NW, padx=10, pady=10)
76
+ self.settings_frm.grid(row=2, sticky=NW, padx=10, pady=10)
63
77
  gantt_videos_cb.grid(row=0, sticky=NW)
64
78
  gantt_frames_cb.grid(row=1, sticky=W)
65
79
  gantt_last_frame_cb.grid(row=2, sticky=NW)
66
80
 
67
- self.run_single_video_frm.grid(row=2, sticky=NW)
81
+ self.run_single_video_frm.grid(row=3, sticky=NW)
68
82
  self.run_single_video_btn.grid(row=0, sticky=NW)
69
83
  self.single_video_dropdown.grid(row=0, column=1, sticky=NW)
70
84
 
71
- self.run_multiple_videos.grid(row=3, sticky=NW)
85
+ self.run_multiple_videos.grid(row=4, sticky=NW)
72
86
  self.run_multiple_video_btn.grid(row=0, sticky=NW)
73
87
 
74
88
  self.main_frm.mainloop()
@@ -85,8 +99,14 @@ class GanttPlotPopUp(PopUpMixin, ConfigReader):
85
99
  video_setting = self.gantt_videos_var.get()
86
100
  last_frm_setting = self.gantt_last_frame_var.get()
87
101
  palette = self.palette_dropdown.get_value()
102
+ font = self.font_dropdown.get_value()
103
+ font = None if font == 'AUTO' else font
88
104
  hhmmss = True if self.time_format_dropdown.get_value() == 'HH:MM:SS' else False
89
-
105
+ clf_names = []
106
+ for clf_name, clf_val in self.clf_choices.items():
107
+ if clf_val.get(): clf_names.append(clf_name)
108
+ if len(clf_names) < 1:
109
+ raise NoSpecifiedOutputError(msg="Select AT LEAST one behavior name.")
90
110
  if not frame_setting and not video_setting and not last_frm_setting:
91
111
  raise NoSpecifiedOutputError(msg="SIMBA ERROR: Please select gantt videos, frames, and/or last frame.")
92
112
 
@@ -103,6 +123,8 @@ class GanttPlotPopUp(PopUpMixin, ConfigReader):
103
123
  data_paths=data_paths,
104
124
  width=width,
105
125
  height=height,
126
+ font=font,
127
+ clf_names=clf_names,
106
128
  font_size=font_size,
107
129
  font_rotation=font_rotation,
108
130
  core_cnt=core_cnt,
@@ -116,7 +138,9 @@ class GanttPlotPopUp(PopUpMixin, ConfigReader):
116
138
  last_frm_setting=last_frm_setting,
117
139
  data_paths=data_paths,
118
140
  width=width,
141
+ font=font,
119
142
  height=height,
143
+ clf_names=clf_names,
120
144
  font_size=font_size,
121
145
  font_rotation=font_rotation,
122
146
  palette=palette)
@@ -124,6 +148,7 @@ class GanttPlotPopUp(PopUpMixin, ConfigReader):
124
148
 
125
149
 
126
150
  #_ = GanttPlotPopUp(config_path=r"D:\troubleshooting\maplight_ri\project_folder\project_config.ini")
151
+ #_ = GanttPlotPopUp(config_path=r"C:\troubleshooting\mitra\project_folder\project_config.ini")
127
152
  # _ = GanttPlotPopUp(config_path=r"/Users/simon/Desktop/envs/simba/troubleshooting/two_black_animals_14bp/project_folder/project_config.ini")
128
153
 
129
154
  # _ = GanttPlotPopUp(config_path=r"C:\troubleshooting\RAT_NOR\project_folder\project_config.ini")
@@ -1708,7 +1708,7 @@ class ClipMultipleVideosByTimestamps(PopUpMixin):
1708
1708
  check_that_hhmmss_start_is_before_end(start_time=start, end_time=end, name=video_name)
1709
1709
  check_if_hhmmss_timestamp_is_valid_part_of_video(timestamp=start, video_path=self.video_paths[video_name])
1710
1710
  check_if_hhmmss_timestamp_is_valid_part_of_video(timestamp=end, video_path=self.video_paths[video_name])
1711
- clip_video_in_range(file_path=self.video_paths[video_name], start_time=start, end_time=end, out_dir=self.save_dir, overwrite=True, include_clip_time_in_filename=False, gpu=gpu, quality=quality_pct)
1711
+ clip_video_in_range(file_path=self.video_paths[video_name], start_time=start, end_time=end, out_dir=self.save_dir, overwrite=True, include_clip_time_in_filename=False, gpu=gpu, quality=quality_pct, codec='libx264', verbose=True)
1712
1712
  timer.stop_timer()
1713
1713
  stdout_success(msg=f"{len(self.entry_boxes)} videos clipped by time-stamps and saved in {self.save_dir}", elapsed_time=timer.elapsed_time_str,)
1714
1714
 
@@ -1187,11 +1187,11 @@ def clip_video_in_range(file_path: Union[str, os.PathLike],
1187
1187
  raise FileExistError(msg=f"SIMBA ERROR: The outfile file already exist: {save_name}.", source=clip_video_in_range.__name__)
1188
1188
 
1189
1189
  if gpu:
1190
- cmd = f'ffmpeg -hwaccel auto -c:v h264_cuvid -i "{file_path}" -ss {start_time} -to {end_time} -async 1 -rc vbr -cq {quality_crf} "{save_name}" -loglevel error -stats -hide_banner -y'
1190
+ cmd = f'ffmpeg -hwaccel auto -c:v h264_cuvid -i "{file_path}" -ss {start_time} -to {end_time} -async 1 -c:v h264_nvenc -rc vbr -cq {quality_crf} "{save_name}" -loglevel error -stats -hide_banner -y'
1191
1191
  else:
1192
1192
  cmd = f'ffmpeg -i "{file_path}" -ss {start_time} -to {end_time} -async 1 -c:v {codec} -crf {quality_crf} "{save_name}" -loglevel error -stats -hide_banner -y'
1193
1193
  if verbose: print(f"Clipping video {file_name} between {start_time} and {end_time}... ")
1194
- subprocess.call(cmd, shell=True, stdout=subprocess.PIPE)
1194
+ subprocess.call(cmd, shell=True)
1195
1195
  timer.stop_timer()
1196
1196
  if verbose: stdout_success(msg=f"Video converted! {save_name} generated!", elapsed_time=timer.elapsed_time_str, source=clip_video_in_range.__name__)
1197
1197
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: simba-uw-tf-dev
3
- Version: 4.6.7
3
+ Version: 4.6.9
4
4
  Summary: Toolkit for computer classification and analysis of behaviors in experimental animals
5
5
  Home-page: https://github.com/sgoldenlab/simba
6
6
  Author: Simon Nilsson, Jia Jie Choong, Sophia Hwang
@@ -13,7 +13,7 @@ simba/__init__.py,sha256=Zbw277SaA4dLpF3IDQnIjzOb-GWKgF-V6caod95b4YA,539
13
13
  simba/requirements.txt,sha256=Ou1KKYqIsOaqQ10UeqxTPorpHWBH5rTMGzpFif1VRWc,2072
14
14
  simba/assets/.DS_Store,sha256=ElS4pjNueynnfN3F6ibhpIe9tS-jrVEx88jASA9_DYo,14340
15
15
  simba/assets/.env,sha256=bI_XK4TDnRDnV1M5SyZrEfeayi9ZK7rX2lrYQcJnH0s,538
16
- simba/assets/.recent_projects.txt,sha256=eLf1Tm1n8YEK7s4eI0KiVei7gwVHZdBGEY-7Lfgvda4,123
16
+ simba/assets/.recent_projects.txt,sha256=iUE8T6XQxOEGrK-r53XVeuz3xdjHgxeQPBogS4yZIyk,193
17
17
  simba/assets/TheGoldenLab.PNG,sha256=Dwg7zXASz_XDhJ_gDgKyBmAINxLL-Zkg-3xzy94YEsc,31812
18
18
  simba/assets/UbuntuMono-Regular.ttf,sha256=N0xTF4v7xLE_m2rVu8gaQ5OqZSZf_H0zqnvYnxKjDfg,189004
19
19
  simba/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -518,7 +518,7 @@ simba/data_processors/agg_clf_calculator.py,sha256=QR94LzQxrJ8eEyMZy4O5pSTgVUwrU
518
518
  simba/data_processors/agg_clf_counter_mp.py,sha256=rjjdJUGh6ODjwY3BtPK4AuK8XsoCoZHHxYtbE6q-vGk,19982
519
519
  simba/data_processors/blob_location_computer.py,sha256=5Uc83h5t55OWXBePS1lQ3bAmivXYJ19AEdnGYb62D9s,7812
520
520
  simba/data_processors/boolean_conditional_calculator.py,sha256=_uDuznm3JS7npqcNcmieH53ZOzoJ7mDqX8QwSaAWlIc,9685
521
- simba/data_processors/circling_detector.py,sha256=LLHulslIy6S1BdoCB40MxWmy8M25qscH7qmmrqv-Qc8,8936
521
+ simba/data_processors/circling_detector.py,sha256=dG6JuqwCsuB_J_JL05TGVQmpfv_iZms4Yzr9GqIDblM,9877
522
522
  simba/data_processors/cue_light_analyzer.py,sha256=NeiYq5gUKxsZrmIewfpyPjivwRQis0vKaVyRPHd8vs4,15082
523
523
  simba/data_processors/cue_light_clf_statistics.py,sha256=Msv1xe3tq4yn3j5sFswso-vS8UegcFC8wR4Ln0RgIoA,8582
524
524
  simba/data_processors/cue_light_movement_statistics.py,sha256=xQKJNdA2i1MOhMwct-MdTbJPPP75O-aOnHT292Zl1c4,9058
@@ -526,7 +526,7 @@ simba/data_processors/directing_animal_to_bodypart.py,sha256=xsB5jiAUg4sIYBhEyIN
526
526
  simba/data_processors/directing_other_animals_calculator.py,sha256=Ikif_lPh0RfOj7q5ijMcPGh5kEBLse1P91gaz30UXcs,18234
527
527
  simba/data_processors/egocentric_aligner.py,sha256=SwLQiisC66_-HCnB06ei4uYICtf9PKVIXNaoI1MlWr4,13265
528
528
  simba/data_processors/find_animal_blob_location.py,sha256=whSxaCSLtRQGZchMBffYSlTI7LIFE7YphNaztmMzMv0,27698
529
- simba/data_processors/freezing_detector.py,sha256=p9H44jfyzkuEFCHyAKee-xcvFNrw_a5vSSZm9FMLaZk,10199
529
+ simba/data_processors/freezing_detector.py,sha256=r6ac0z5vJyl2HNL2TvgAX-Jwwujcs4LcIEOE4Tg-7IQ,12167
530
530
  simba/data_processors/fsttc_calculator.py,sha256=fW09KZ62GiBNgwEPV1n5SsIImRzPpbiP0yiNeTiexL0,20639
531
531
  simba/data_processors/gibbs_sampler.py,sha256=Lj3lJJ0LWYLoeMRU2oniTHJSRpdG8oMIENm7FA4gJ3w,9241
532
532
  simba/data_processors/interpolate.py,sha256=GaLvrqS-iVB9TA0eEsCO3dnUCxVD_0KwWqWYZsRlyOM,8006
@@ -552,8 +552,8 @@ simba/data_processors/cuda/circular_statistics.py,sha256=EYhnkL0Fe_Ec9PU2kciv7Ry
552
552
  simba/data_processors/cuda/create_shap_log.py,sha256=yQlWb1RKjagwCKtahifSw8Esr4VOVsTuCAx7fLSfSvU,9603
553
553
  simba/data_processors/cuda/data.py,sha256=tZLunARZVlk1plh7atR3PY5QADMPZXfbYE92uvYkx1g,11831
554
554
  simba/data_processors/cuda/geometry.py,sha256=jkocYwWcweQ1U6DxVDxP3vifuZdxpyZHQ5_J_GeNgGU,25522
555
- simba/data_processors/cuda/image.py,sha256=7WW-0o8E8_P2BSVGdPUzrAmHOqaE-1On55UEgIKb2YM,84881
556
- simba/data_processors/cuda/statistics.py,sha256=cMQyPlpyIc2M0AxWG1iHm7cZvOT6FaKZgy8ywCFEoJc,49153
555
+ simba/data_processors/cuda/image.py,sha256=YpYWO9OdMKuvdQp_tvWlnuU9FWiN1d7VIiBCBZ6eGnc,86107
556
+ simba/data_processors/cuda/statistics.py,sha256=ZEGoMMJVQ_Keui6h6G2jj6ngT8wsH0T3WdL_j3ipkfc,49151
557
557
  simba/data_processors/cuda/timeseries.py,sha256=pcOoc14iTh_ofnh0rw-G5HI0PZFdyc3c9e4HX2exZNg,16415
558
558
  simba/data_processors/cuda/utils.py,sha256=0Z51kEItgDl9MfPQ9_jvClzR2_pvIWxFkLcjb3xdDE8,8584
559
559
  simba/feature_extractors/.DS_Store,sha256=SiyR4U0h7Ehg8KGJf5cXr85BYdcZfvGGcRmp1GMVuzQ,6148
@@ -572,7 +572,7 @@ simba/feature_extractors/feature_extractor_9bp.py,sha256=dMzigppwKODXpVPKwkqZobo
572
572
  simba/feature_extractors/feature_extractor_user_defined.py,sha256=w8hgtYGk6Ux_X1mIYleEABVmxkLPUf23TfWYe-G75UI,9917
573
573
  simba/feature_extractors/feature_subsets.py,sha256=axA_cjqXMOjoUynqR9K67HD4cv4xSPAf11lXn30odlo,27471
574
574
  simba/feature_extractors/gerbil_featurizer.py,sha256=EeBlAXiTsM2oHMfs0M1wlm9LWrQVZuLUY2WuOQIDMnw,11994
575
- simba/feature_extractors/mitra_feature_extractor.py,sha256=pmLp2A5jfkia6wtD7X39TmMDukeCxbmUPmdVFgmCUZ4,30027
575
+ simba/feature_extractors/mitra_feature_extractor.py,sha256=q9A8uMeu_ZJVZtwt8NcpLDadQXk2UEg5wQaEOqtgTpg,30037
576
576
  simba/feature_extractors/perimeter_jit.py,sha256=Pe7IlxeGTEQfpkt9iiAq97OG9r0mQ4kE6VderLyNFmg,8621
577
577
  simba/feature_extractors/rat_social_featurizer.py,sha256=eOJt6O4QR8kY0fJ2tAmRGLYAQSLkZoc3VoQ5F6MSN90,7345
578
578
  simba/feature_extractors/riptortus_featurizer.py,sha256=3XA_GfxmcuZOSkC1HxOebcGh5Y47pZtgaFR8Kb6lexQ,34518
@@ -615,13 +615,13 @@ simba/mixins/__init__.py,sha256=ll2tlUV4MCtu58dno-wM26r2uUmVuxnx3mQKb6QElx8,1052
615
615
  simba/mixins/abstract_classes.py,sha256=umpVIU7EG_jZ1DU8x5zkTb8A-KH46jlCISowfrT4PMY,391
616
616
  simba/mixins/annotator_mixin.py,sha256=TQWqBZ5UVR5blI5CUyr3nuxsB3HyrxYimPg3rXcOHfU,40917
617
617
  simba/mixins/circular_statistics.py,sha256=yzYRKsuY3xK_LgDC7rpu4OQnbSQpjXO0EiLv4kH6cp8,77336
618
- simba/mixins/config_reader.py,sha256=oXxrIm09k236EIuLTd5I7hzOclk-atPwaqc2g8PFmTI,52050
618
+ simba/mixins/config_reader.py,sha256=9su8ZGnGWghk5bAl12iaTQdqIOVfcW2ZQcxeEXmXtcI,52362
619
619
  simba/mixins/feature_extraction_mixin.py,sha256=rUwHEG3wKpyreme8nXAeBEhktHG_Q75v3OJI2aFOOOA,59587
620
620
  simba/mixins/feature_extraction_supplement_mixin.py,sha256=6dPi1WFi26y-rmccsMgDe5sULm4fTQaBcSiH91DEkN0,44770
621
621
  simba/mixins/geometry_mixin.py,sha256=pBOCFZvq_AF2Snmmy8izmtOG6xy6KOu1td0lm5c6uNg,234551
622
622
  simba/mixins/image_mixin.py,sha256=CLhtCeDzLPVeRWUEzybBVG9-1Ll8Nl2OgN2PTfTZybM,117953
623
623
  simba/mixins/network_mixin.py,sha256=s_OsF6VSlsa2vb5sysDQKErLp4D5EfBF1MVQ_yKWC_Y,41125
624
- simba/mixins/plotting_mixin.py,sha256=3sgEYn-tVTRzrg_k5eFGeyp0Xb2c8HnEnyqE16cV0Pw,94837
624
+ simba/mixins/plotting_mixin.py,sha256=br3nWggOM776Ki30kq71P2geoGGgCLDn4MjDuiJ5IWs,95714
625
625
  simba/mixins/pop_up_mixin.py,sha256=tAKC3Axp1jgQ8VH2GfvKO5HbLUpZzo_aWou2xS-SYxc,24701
626
626
  simba/mixins/pose_importer_mixin.py,sha256=bYl17qQcJAdd93_q-tDof8V1f5-OGeI9id7K8YGmN1E,22358
627
627
  simba/mixins/statistics_mixin.py,sha256=nVrTwxPnRY-SkPqcIfG5Oxm85AkWGTbCN-kxfRBGhHw,272831
@@ -654,7 +654,7 @@ simba/outlier_tools/outlier_corrector_location_mp.py,sha256=1ihvGk2DJvvztFRjnRcJ
654
654
  simba/outlier_tools/outlier_corrector_movement.py,sha256=e30nD2tmdkvk7f5TV2YP71XDORCkVRwh5cg0X7l51iE,7913
655
655
  simba/outlier_tools/outlier_corrector_movement_advanced.py,sha256=r2a8RJv5rJ3bQfiHwPCJHTTVdUki4zFgm2DjIoJOwqE,13273
656
656
  simba/outlier_tools/outlier_corrector_movement_mp.py,sha256=FVtEFt3rZIFDWl7ljddPeYblvhtfHMBXo8DxldaIP40,9587
657
- simba/outlier_tools/skip_outlier_correction.py,sha256=KNVSnhpJ7kROa0jALgZJv8lJjN8DN5lNGMLNXpasvyw,2584
657
+ simba/outlier_tools/skip_outlier_correction.py,sha256=GE7J6xhBxbYRajBt6KwcfMWkGd9AwBXF6Bg9EU4TQ-I,2571
658
658
  simba/plotting/.DS_Store,sha256=ypUfSvW8NoWzmtXtzErKXxo-mQf4-T8F8B8mrpnPrEY,6148
659
659
  simba/plotting/ROI_feature_visualizer.py,sha256=evDHQ-OEp4Lt-mBHoaA4StRSiVWyqm2CIyKdFxEt1L0,19025
660
660
  simba/plotting/ROI_feature_visualizer_mp.py,sha256=bscn29if3ZMfMXlAZpaNEG3kLVm0TIuoqFmiLEwkCDg,27387
@@ -674,8 +674,8 @@ simba/plotting/distance_plotter.py,sha256=Qa4sVjw43NTnaqW-ge9dDx4i0_ElSmoYBI-C1t
674
674
  simba/plotting/distance_plotter_mp.py,sha256=7tbp63Jn9JGkox0fCaqeunE3027pEl0xI7uNK51cMH8,17422
675
675
  simba/plotting/ez_path_plot.py,sha256=OSQSniIKdr55iO5-BMqmrgnEOfLIjxq0-ojrJn1y7lE,10350
676
676
  simba/plotting/frame_mergerer_ffmpeg.py,sha256=AqfUQ_Lx83VfOZbz89qa1tM1WK8ETNhNITPTjnTqqeY,8485
677
- simba/plotting/gantt_creator.py,sha256=mbTonMIbhdHHGh9e4zzaLljp2haoKWxgwfWwZ2IVh0s,11297
678
- simba/plotting/gantt_creator_mp.py,sha256=a5ZBWaV0pl-PcgtePBC4mZR9v6NU8WQ2waD3xBomy5k,16668
677
+ simba/plotting/gantt_creator.py,sha256=myEcLFzXhEWjC-CPbFLUJJLkbpv3NoH20J8d8ftKub4,12415
678
+ simba/plotting/gantt_creator_mp.py,sha256=5d3-O8yp8bUnULMhgSKVdBmzu97APLuymIJg9aQJPdk,18125
679
679
  simba/plotting/gantt_plotly.py,sha256=s727fBblZnMksHvJpmbb4_G_Eq8J3bMhlNzyL1xap_M,8406
680
680
  simba/plotting/geometry_plotter.py,sha256=Jsl_695-ZWcba9_c3MiXq6S8MufWsKUcaGbCv9HYSoo,15499
681
681
  simba/plotting/heat_mapper_clf.py,sha256=rYFWuBS3v8v14EnXhaKKzPml4lJzkPBP5FJ8RxdnKik,10675
@@ -794,7 +794,7 @@ simba/sandbox/advanced_smoothing.py,sha256=Rd81XwiF2m4C6qGGPIVAvHs5K1dH0I7Bnm3xR
794
794
  simba/sandbox/ahe.py,sha256=guLnY_VWEt_2iXzg6J4nw3FAh7i6AJgaso36Z0Y3B4s,2428
795
795
  simba/sandbox/alyssa_ethan.py,sha256=U8xjTQd8UV94DBskjxUZwh7VwUhQPCmJtencVsqAEqo,27192
796
796
  simba/sandbox/amber_featurizer.py,sha256=O5ePbbb0non5JV9Mwoa9N3PxZVEHtXt4R4yjjHVoObw,69423
797
- simba/sandbox/analyze_runtimes.py,sha256=9GxOJp4omUEWMMCmcCZ7Sb5hzvPq2H1aoC7kmzKNzns,1072
797
+ simba/sandbox/analyze_runtimes.py,sha256=pkKQXTdxNUWgWzprVe9AdS3mmky-M2b2Zi3bhDk1mwI,1102
798
798
  simba/sandbox/angle_3pt.py,sha256=QZ41V_mS1QEzn2j17uKcFD8soagSlK-R7pff0mdz4ZI,2672
799
799
  simba/sandbox/annotations_mitra.py,sha256=lvDhulY_7WwiRy1eGTTxxHMv4qrAUPiwnyC3Eu0SQ9Q,1904
800
800
  simba/sandbox/append_targets'.py,sha256=f8lB0FFdJy97uZuEyfWsJYOf2Uw05skSGjH3uiLFtrQ,4106
@@ -1202,12 +1202,12 @@ simba/sandbox/superimpose_text.py,sha256=TfNwIdFF8e8lCdBhDi6-26x10JLYqHR8Bu1Bua5
1202
1202
  simba/sandbox/superpixels.py,sha256=QaRXX-axJKprBG1NyHr4xi09oH7v8B1U4x96QP37FSs,1671
1203
1203
  simba/sandbox/temporal_align.py,sha256=SIA_GxLakCzREVUKWUwXJtprO6bq5gAvbmYuiCg5QHg,3866
1204
1204
  simba/sandbox/test_camera_movement.py,sha256=dKzjT8l14U1bjiM7-Pt7AkCdpaBK_1vmXs3zBWf-xCQ,2567
1205
- simba/sandbox/test_directionality.py,sha256=O0IIdW8D8mfOQAZXi5SWD4D2eFAcGQ-2mdHH42sa0cE,1466
1206
- simba/sandbox/test_nonstatic_directionality.py,sha256=oe2_dSxYpiWbK3iXlLq4FXX2prSQQ4sn8L0iM9N7tTQ,948
1207
- simba/sandbox/test_pycharm_cuda.py,sha256=duAUQ74jjI76iWmTd37dwX72o4iCrlwKMvgt7LSroa8,1549
1208
- simba/sandbox/test_simba_install.py,sha256=2IOin2Nh0pY6F1VfG7MlhndJ4h8gNp3rQP1KSJCuzzk,1164
1209
- simba/sandbox/test_static_directionality.py,sha256=MSLQRmRcxhQJ-6hrQtX0b5isaTu0O6_Lyc6XHD_mKJM,846
1210
- simba/sandbox/test_static_directionality_2d.py,sha256=1mDM6Gy2swVVfp5S3OSNNHRAW0p7UFDTGs7_rwoAcKg,931
1205
+ simba/sandbox/test_directionality.py,sha256=40d2u6wLqRoK4TXccs6DRJ-YqZ7gdEmuqGvOONRsqBM,1513
1206
+ simba/sandbox/test_nonstatic_directionality.py,sha256=Ol359G3TnAnKyPVUquTD5HaF99QEGmiHn2rvkOfjPkw,975
1207
+ simba/sandbox/test_pycharm_cuda.py,sha256=MvU2oOMcPHlCoL1JySaAtetjKpWAXhLQDGwJyWskaTE,1600
1208
+ simba/sandbox/test_simba_install.py,sha256=eBpP1YxUy4gHEJ-t3ZXoy7WYsR8Z4u4cPJnXFiwAS5g,1205
1209
+ simba/sandbox/test_static_directionality.py,sha256=v8pJX_P7PuIXvT8LMdZ0xOzwQCkSeqxDAJZBbvmSk0E,872
1210
+ simba/sandbox/test_static_directionality_2d.py,sha256=huXC3NVdfWziiZqStmlme_Mrq3nV2gmguAde3CxJqqE,957
1211
1211
  simba/sandbox/testss.py,sha256=M4S9S-bEJeA_t5CZEuqMwhMy678_Gv6V3iPMmO-iKns,182
1212
1212
  simba/sandbox/time_stamp_calculator.py,sha256=iMVc7c6uAuXsrV8ywZU6Xovl_iTFAB4vjlLYsHaZtuc,1613
1213
1213
  simba/sandbox/time_stitching.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1221,7 +1221,7 @@ simba/sandbox/unsupervised_lof.py,sha256=fEkcIa2qEeWm7cwKIoIwCyEEQQLLwBRiMYtQOBE
1221
1221
  simba/sandbox/unsupervised_outliers.py,sha256=WIVgsuXSWcqmCBy13rH54habSyyw3_ORMPDHx09utl4,16328
1222
1222
  simba/sandbox/update_merge_coco_kp.py,sha256=3fuiGJym9CpBpPPgdp9w1UK1dYhn9wzmec29X6vfCaY,7724
1223
1223
  simba/sandbox/velocity_aggregator.py,sha256=3OmDUv5F8vv0WacxQofezHWHV833Or_lP1XAvnVAfzM,4655
1224
- simba/sandbox/verify_env.py,sha256=3ycvI_61uJloCTieg5iK8Oqv-eW0vAlXuoKdT8V3G_Q,1305
1224
+ simba/sandbox/verify_env.py,sha256=E3Tx8a8uDzcZQdwvmYs2bp7x-hac_im5I9uVZv9wAZE,1347
1225
1225
  simba/sandbox/vertical_video_concatenator.py,sha256=kCkcIcHcptw-awBcNiuM1Gztb3L8qozjwd__BO9gzkU,4232
1226
1226
  simba/sandbox/video_color.py,sha256=Tl1x6ZbkB5PGj1D7QGTqXuZxIkbogLggYbfvqGumxJg,2893
1227
1227
  simba/sandbox/video_meta_data_get.py,sha256=foTzEuuqd0gYCVz54fWF4bITpANfBfCglNdLvRdpXj0,1979
@@ -1384,7 +1384,7 @@ simba/ui/pop_ups/clf_annotation_counts_pop_up.py,sha256=8HeTc4XJt_yHwm7UqoKAQmXS
1384
1384
  simba/ui/pop_ups/clf_by_roi_pop_up.py,sha256=95oTHZXchehmuOrP9cxJkBzyLqDcN8ZJLqUSZ0Yh98k,8709
1385
1385
  simba/ui/pop_ups/clf_by_timebins_pop_up.py,sha256=1MHhaQWEytt0EEioa40nDiGfooUGo89GSO4DTNJ1rJc,7791
1386
1386
  simba/ui/pop_ups/clf_descriptive_statistics_pop_up.py,sha256=A6zr1h__mnpPreufvKIJebHyhvWwdvxXLzBfRKxV8B4,10641
1387
- simba/ui/pop_ups/clf_plot_pop_up.py,sha256=DQxWxN0uhfeYkfrkMCPdIzaJE062sLVWh_0OSKRSGv0,16851
1387
+ simba/ui/pop_ups/clf_plot_pop_up.py,sha256=zxhrrEz239aTpuUwnI4V5oLWKEZZuzt6uCPIozc170c,16911
1388
1388
  simba/ui/pop_ups/clf_probability_plot_pop_up.py,sha256=5wlVxKlkEa0ldR2hlZohkmcYKYgC78KEq_BKqj-YjLU,11278
1389
1389
  simba/ui/pop_ups/clf_validation_plot_pop_up.py,sha256=Fvc3d8jbaE3anfogMHojI6CcDzUpa6OJosFs6VlZshk,6826
1390
1390
  simba/ui/pop_ups/coco_keypoints_to_yolo_popup.py,sha256=TftQitbTxn1TA0Wm3TZGY9lVCqiOEb4E49rmcJeWZ8Y,3834
@@ -1409,7 +1409,7 @@ simba/ui/pop_ups/duplicate_rois_by_source_target_popup.py,sha256=VRJ29FxkYQOCQ8G
1409
1409
  simba/ui/pop_ups/egocentric_alignment_pop_up.py,sha256=BJEQXOxo0yuyj4nEiH0YeYuSsq5-3KfaE_DXUEcmU-Y,7085
1410
1410
  simba/ui/pop_ups/extract_annotation_frames_pop_up.py,sha256=IxSed3wZoDftHs7YfykJzHgg8_SiCqU1t_1Us9XGgWg,5975
1411
1411
  simba/ui/pop_ups/fsttc_pop_up.py,sha256=0wckzGasbU1ef2bFJK5AlKQkIgMOV0iotBwC9vI5yfw,3700
1412
- simba/ui/pop_ups/gantt_pop_up.py,sha256=gkqg74sxjHsaB-FHLIXW-275wuZMwjC7cPKfrn0jVOA,9234
1412
+ simba/ui/pop_ups/gantt_pop_up.py,sha256=pJNB2qTg5VcpE5jqi5WsH3SjMvK5rQGePpj3BRDfhZg,10969
1413
1413
  simba/ui/pop_ups/heatmap_clf_pop_up.py,sha256=uyYQI-R3jswkB2LI3UYRiPySNDcmv_Cn_sSjJQK3uSA,8519
1414
1414
  simba/ui/pop_ups/heatmap_location_pop_up.py,sha256=LeQPzcjLSCCn8my-dvIIQ9DDTNtblxPSmCp7x4Ob7YY,8645
1415
1415
  simba/ui/pop_ups/helpers.py,sha256=wjxintf8wqKfm8SqfDDLVqDGlwKkWbXVtF-e5HwauVs,656
@@ -1461,7 +1461,7 @@ simba/ui/pop_ups/subset_feature_extractor_pop_up.py,sha256=M24iJSqh-DpYdpw1pSaIm
1461
1461
  simba/ui/pop_ups/targeted_annotation_clips_pop_up.py,sha256=PFh5ua2f_OMQ1Pth9Ha8Fo5lTPZNQV3bMnRGEoAPhTQ,6997
1462
1462
  simba/ui/pop_ups/third_party_annotator_appender_pop_up.py,sha256=Xnha2UwM-08djObCkL_EXK2L4pernyipzbyNKQvX5aQ,7694
1463
1463
  simba/ui/pop_ups/validation_plot_pop_up.py,sha256=yIo_el2dR_84ZAh_-2fYFg-BJDG0Eip_P_o9vzTQRkk,12174
1464
- simba/ui/pop_ups/video_processing_pop_up.py,sha256=KEvZ8HuquNFg0fNx3Apgp2GD7Y9GAeFxQ0IVwj8RDLE,237373
1464
+ simba/ui/pop_ups/video_processing_pop_up.py,sha256=1cbEVafa164vfkES1tOEDJhtsa83ZxGxqbiwCb6XHVo,237404
1465
1465
  simba/ui/pop_ups/visualize_pose_in_dir_pop_up.py,sha256=PpFs0zaqF4dnHJ_yH-PqYgsjAyxYPVP427Soj-kYtM0,8838
1466
1466
  simba/ui/pop_ups/yolo_inference_popup.py,sha256=Ymi3QZVkVwUc6gNtG8kZwETpiMjT_tY3HE4Y3293Z6k,14676
1467
1467
  simba/ui/pop_ups/yolo_plot_results.py,sha256=yi9D3WquDu4L8PWJLZsODulojgakfy7Dzh_CpYK6Vgk,10096
@@ -1531,11 +1531,11 @@ simba/video_processors/multi_cropper.py,sha256=1BI0Ami4kB9rdMUHR0EistmIKqc-E5FK5
1531
1531
  simba/video_processors/roi_selector.py,sha256=5N3s0Bi1Ub6c9gjE_-mV7AWr8Fqg7HQKdBKBF6whurg,8522
1532
1532
  simba/video_processors/roi_selector_circle.py,sha256=SD_lv6V3MGiIQd0VtUFSKe83ySW_qvE1t8xsgAlr2hI,6436
1533
1533
  simba/video_processors/roi_selector_polygon.py,sha256=DMtilt__gGwNu6VV73CWbnPqrPBXkan1_akUqGEzfGw,6742
1534
- simba/video_processors/video_processing.py,sha256=ieXIKve8lAW7ByRVr5k4B2LebYgYh5ayPYwiXN7qqjU,319269
1534
+ simba/video_processors/video_processing.py,sha256=cWkMbUCUHH49lUrzHG_aamgTdZxjHFKEvkWnrjq1f5M,319261
1535
1535
  simba/video_processors/videos_to_frames.py,sha256=8hltNZpwUfb3GFi-63D0PsySmD5l59pbzQGJx8SscgU,7818
1536
- simba_uw_tf_dev-4.6.7.dist-info/LICENSE,sha256=Sjn362upcvYFypam-b-ziOXU1Wl5GGuTt5ICrGimzyA,1720
1537
- simba_uw_tf_dev-4.6.7.dist-info/METADATA,sha256=WAEf6hdow1zsfofdLpSqNpCOUgmdLa6sfDZjlnAbuI8,11432
1538
- simba_uw_tf_dev-4.6.7.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
1539
- simba_uw_tf_dev-4.6.7.dist-info/entry_points.txt,sha256=Nfh_EbfDGdKftLjCnGWtQrBHENiDYMdgupwLyLpU5dc,44
1540
- simba_uw_tf_dev-4.6.7.dist-info/top_level.txt,sha256=ogtimvlqDxDTOBAPfT2WaQ2pGAAbKRXG8z8eUTzf6TU,14
1541
- simba_uw_tf_dev-4.6.7.dist-info/RECORD,,
1536
+ simba_uw_tf_dev-4.6.9.dist-info/LICENSE,sha256=Sjn362upcvYFypam-b-ziOXU1Wl5GGuTt5ICrGimzyA,1720
1537
+ simba_uw_tf_dev-4.6.9.dist-info/METADATA,sha256=7ORRwQdVadLvvAKsKvFU7uZg7myMabWMzM8VJHCFKCg,11432
1538
+ simba_uw_tf_dev-4.6.9.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
1539
+ simba_uw_tf_dev-4.6.9.dist-info/entry_points.txt,sha256=Nfh_EbfDGdKftLjCnGWtQrBHENiDYMdgupwLyLpU5dc,44
1540
+ simba_uw_tf_dev-4.6.9.dist-info/top_level.txt,sha256=ogtimvlqDxDTOBAPfT2WaQ2pGAAbKRXG8z8eUTzf6TU,14
1541
+ simba_uw_tf_dev-4.6.9.dist-info/RECORD,,