Source code for simba.ui.pop_ups.batch_preprocess_pop_up

__author__ = "Simon Nilsson; sronilsson@gmail.com"

import os
from tkinter import *

from simba.mixins.pop_up_mixin import PopUpMixin
from simba.ui.tkinter_functions import (CreateLabelFrameWithIcon, FolderSelect,
                                        SimbaButton)
from simba.utils.enums import Formats, Keys, Links
from simba.utils.errors import DuplicationError, NotDirectoryError
from simba.video_processors.batch_process_menus import BatchProcessFrame


[docs]class BatchPreProcessPopUp(PopUpMixin): """ :example: >>> BatchPreProcessPopUp() """ def __init__(self): PopUpMixin.__init__(self, title="BATCH PROCESS VIDEO", size=(600, 400), icon='stack') selections_frm = CreateLabelFrameWithIcon(parent=self.main_frm, header="SELECTIONS", icon_name=Keys.DOCUMENTATION.value, icon_link=Links.BATCH_PREPROCESS.value,) self.input_folder_select = FolderSelect(selections_frm, "INPUT VIDEO DIRECTORY:", title="Select Folder with Input Videos", lblwidth=30, lbl_icon='folder_video', tooltip_key='VIDEO_DIR') self.output_folder_select = FolderSelect(selections_frm, "OUTPUT VIDEO DIRECTORY:", title="Select Folder for Output videos", lblwidth=30, lbl_icon='folder_2', tooltip_key='SAVE_DIR') confirm_btn = SimbaButton(parent=selections_frm, txt="CONFIRM", img='tick', txt_clr='blue', font=Formats.FONT_REGULAR.value, cmd=self.run) selections_frm.grid(row=0, column=0, sticky=NW) self.input_folder_select.grid(row=0, column=0, sticky=NW) self.output_folder_select.grid(row=1, column=0, sticky=NW) confirm_btn.grid(row=2, column=0, sticky=NW) self.main_frm.mainloop()
[docs] def run(self): if not os.path.isdir(self.input_folder_select.folder_path): raise NotDirectoryError(msg=f"INPUT folder dir ({self.input_folder_select.folder_path}) is not a valid directory.", source=self.__class__.__name__,) if not os.path.isdir(self.output_folder_select.folder_path): raise NotDirectoryError(msg=f"OUTPUT folder dir ({self.output_folder_select.folder_path}) is not a valid directory.", source=self.__class__.__name__) if (self.output_folder_select.folder_path == self.input_folder_select.folder_path): raise DuplicationError(msg="The INPUT directory and OUTPUT directory CANNOT be the same folder", source=self.__class__.__name__,) else: batch_preprocessor = BatchProcessFrame(input_dir=self.input_folder_select.folder_path, output_dir=self.output_folder_select.folder_path) batch_preprocessor.create_main_window() batch_preprocessor.create_video_table_headings() batch_preprocessor.create_video_rows() batch_preprocessor.create_execute_btn() batch_preprocessor.main_frm.mainloop()
#BatchPreProcessPopUp()